Files
SnowLuma/.pnpm-store/v11/files/f8/38d7fefcd8f5300620026e3a737970870a8ade4886fd78ca34b2f005257f712fb9b98fe46de6c191523c7fb27ee0a3ee9a1792350edd975030a4694c44db11
T
TanTan 2a69b23b47
Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

1071 lines
42 KiB
Plaintext

import { i as jsonSchemaValidator, n as JsonSchemaValidator, t as JsonSchemaType } from "./types-mS0yxCL0.mjs";
//#region ../core-internal/src/validators/fastUriShim.d.ts
/**
* dts-bundling shim for `fast-uri`.
*
* ajv@8.18.0's published .d.ts does `import { URIComponent } from "fast-uri"`,
* but fast-uri ships its types as `export = namespace`, which rolldown's dts
* bundler can't destructure into a named import — it drops the import and
* leaves a dangling `URIComponent` reference in the bundled .d.mts (TS2304 for
* downstream consumers with `skipLibCheck: false`).
*
* The server/client tsdown configs map `fast-uri` to this file via
* `dts.compilerOptions.paths` so the type is inlined as a plain named export.
* Runtime code is unaffected (this is a `.d.ts`; the path mapping is dts-only).
*/
// Field-for-field copy of fast-uri@3.1.0's URIComponent (types/index.d.ts).
// Keep in sync when bumping fast-uri/ajv.
interface URIComponent {
scheme?: string;
userinfo?: string;
host?: string;
port?: number | string;
path?: string;
query?: string;
fragment?: string;
reference?: string;
nid?: string;
nss?: string;
resourceName?: string;
secure?: boolean;
uuid?: string;
error?: string;
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/code.d.ts
declare abstract class _CodeOrName {
abstract readonly str: string;
abstract readonly names: UsedNames;
abstract toString(): string;
abstract emptyStr(): boolean;
}
declare class Name extends _CodeOrName {
readonly str: string;
constructor(s: string);
toString(): string;
emptyStr(): boolean;
get names(): UsedNames;
}
declare class _Code extends _CodeOrName {
readonly _items: readonly CodeItem[];
private _str?;
private _names?;
constructor(code: string | readonly CodeItem[]);
toString(): string;
emptyStr(): boolean;
get str(): string;
get names(): UsedNames;
}
type CodeItem = Name | string | number | boolean | null;
type UsedNames = Record<string, number | undefined>;
type Code = _Code | Name;
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/scope.d.ts
interface NameGroup {
prefix: string;
index: number;
}
interface NameValue {
ref: ValueReference;
key?: unknown;
code?: Code;
}
type ValueReference = unknown;
interface ScopeOptions {
prefixes?: Set<string>;
parent?: Scope;
}
interface ValueScopeOptions extends ScopeOptions {
scope: ScopeStore;
es5?: boolean;
lines?: boolean;
}
type ScopeStore = Record<string, ValueReference[] | undefined>;
type ScopeValues = { [Prefix in string]?: Map<unknown, ValueScopeName> };
type ScopeValueSets = { [Prefix in string]?: Set<ValueScopeName> };
declare enum UsedValueState {
Started = 0,
Completed = 1,
}
type UsedScopeValues = { [Prefix in string]?: Map<ValueScopeName, UsedValueState | undefined> };
declare class Scope {
protected readonly _names: { [Prefix in string]?: NameGroup };
protected readonly _prefixes?: Set<string>;
protected readonly _parent?: Scope;
constructor({
prefixes,
parent
}?: ScopeOptions);
toName(nameOrPrefix: Name | string): Name;
name(prefix: string): Name;
protected _newName(prefix: string): string;
private _nameGroup;
}
interface ScopePath {
property: string;
itemIndex: number;
}
declare class ValueScopeName extends Name {
readonly prefix: string;
value?: NameValue;
scopePath?: Code;
constructor(prefix: string, nameStr: string);
setValue(value: NameValue, {
property,
itemIndex
}: ScopePath): void;
}
interface VSOptions extends ValueScopeOptions {
_n: Code;
}
declare class ValueScope extends Scope {
protected readonly _values: ScopeValues;
protected readonly _scope: ScopeStore;
readonly opts: VSOptions;
constructor(opts: ValueScopeOptions);
get(): ScopeStore;
name(prefix: string): ValueScopeName;
value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName;
getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined;
scopeRefs(scopeName: Name, values?: ScopeValues | ScopeValueSets): Code;
scopeCode(values?: ScopeValues | ScopeValueSets, usedValues?: UsedScopeValues, getCode?: (n: ValueScopeName) => Code | undefined): Code;
private _reduceValues;
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/index.d.ts
type SafeExpr = Code | number | boolean | null;
type Block = Code | (() => void);
interface CodeGenOptions {
es5?: boolean;
lines?: boolean;
ownProperties?: boolean;
}
declare class CodeGen {
readonly _scope: Scope;
readonly _extScope: ValueScope;
readonly _values: ScopeValueSets;
private readonly _nodes;
private readonly _blockStarts;
private readonly _constants;
private readonly opts;
constructor(extScope: ValueScope, opts?: CodeGenOptions);
toString(): string;
name(prefix: string): Name;
scopeName(prefix: string): ValueScopeName;
scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name;
getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined;
scopeRefs(scopeName: Name): Code;
scopeCode(): Code;
private _def;
const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name;
let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name;
var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name;
assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen;
add(lhs: Code, rhs: SafeExpr): CodeGen;
code(c: Block | SafeExpr): CodeGen;
object(...keyValues: [Name | string, SafeExpr | string][]): _Code;
if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen;
elseIf(condition: Code | boolean): CodeGen;
else(): CodeGen;
endIf(): CodeGen;
private _for;
for(iteration: Code, forBody?: Block): CodeGen;
forRange(nameOrPrefix: Name | string, from: SafeExpr, to: SafeExpr, forBody: (index: Name) => void, varKind?: Code): CodeGen;
forOf(nameOrPrefix: Name | string, iterable: Code, forBody: (item: Name) => void, varKind?: Code): CodeGen;
forIn(nameOrPrefix: Name | string, obj: Code, forBody: (item: Name) => void, varKind?: Code): CodeGen;
endFor(): CodeGen;
label(label: Name): CodeGen;
break(label?: Code): CodeGen;
return(value: Block | SafeExpr): CodeGen;
try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen;
throw(error: Code): CodeGen;
block(body?: Block, nodeCount?: number): CodeGen;
endBlock(nodeCount?: number): CodeGen;
func(name: Name, args?: Code, async?: boolean, funcBody?: Block): CodeGen;
endFunc(): CodeGen;
optimize(n?: number): void;
private _leafNode;
private _blockNode;
private _endBlockNode;
private _elseNode;
private get _root();
private get _currNode();
private set _currNode(value);
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/rules.d.ts
declare const _jsonTypes: readonly ["string", "number", "integer", "boolean", "null", "object", "array"];
type JSONType$1 = (typeof _jsonTypes)[number];
type ValidationTypes = { [K in JSONType$1]: boolean | RuleGroup | undefined };
interface ValidationRules {
rules: RuleGroup[];
post: RuleGroup;
all: { [Key in string]?: boolean | Rule };
keywords: { [Key in string]?: boolean };
types: ValidationTypes;
}
interface RuleGroup {
type?: JSONType$1;
rules: Rule[];
}
interface Rule {
keyword: string;
definition: AddedKeywordDefinition;
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/util.d.ts
declare enum Type {
Num = 0,
Str = 1,
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/subschema.d.ts
type SubschemaArgs = Partial<{
keyword: string;
schemaProp: string | number;
schema: AnySchema;
schemaPath: Code;
errSchemaPath: string;
topSchemaRef: Code;
data: Name | Code;
dataProp: Code | string | number;
dataTypes: JSONType$1[];
definedProperties: Set<string>;
propertyName: Name;
dataPropType: Type;
jtdDiscriminator: string;
jtdMetadata: boolean;
compositeRule: true;
createErrors: boolean;
allErrors: boolean;
}>;
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/errors.d.ts
interface ErrorPaths {
instancePath?: Code;
schemaPath?: string;
parentSchema?: boolean;
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/index.d.ts
declare class KeywordCxt implements KeywordErrorCxt {
readonly gen: CodeGen;
readonly allErrors?: boolean;
readonly keyword: string;
readonly data: Name;
readonly $data?: string | false;
schema: any;
readonly schemaValue: Code | number | boolean;
readonly schemaCode: Code | number | boolean;
readonly schemaType: JSONType$1[];
readonly parentSchema: AnySchemaObject;
readonly errsCount?: Name;
params: KeywordCxtParams;
readonly it: SchemaObjCxt;
readonly def: AddedKeywordDefinition;
constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string);
result(condition: Code, successAction?: () => void, failAction?: () => void): void;
failResult(condition: Code, successAction?: () => void, failAction?: () => void): void;
pass(condition: Code, failAction?: () => void): void;
fail(condition?: Code): void;
fail$data(condition: Code): void;
error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void;
private _error;
$dataError(): void;
reset(): void;
ok(cond: Code | boolean): void;
setParams(obj: KeywordCxtParams, assign?: true): void;
block$data(valid: Name, codeBlock: () => void, $dataValid?: Code): void;
check$data(valid?: Name, $dataValid?: Code): void;
invalid$data(): Code;
subschema(appl: SubschemaArgs, valid: Name): SchemaCxt;
mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void;
mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void;
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/types/json-schema.d.ts
type StrictNullChecksWrapper<Name$1 extends string, Type$1> = undefined extends null ? `strictNullChecks must be true in tsconfig to use ${Name$1}` : Type$1;
type UnionToIntersection<U> = (U extends any ? (_: U) => void : never) extends ((_: infer I) => void) ? I : never;
type UncheckedPartialSchema<T> = Partial<UncheckedJSONSchemaType<T, true>>;
type JSONType<T extends string, IsPartial extends boolean> = IsPartial extends true ? T | undefined : T;
interface NumberKeywords {
minimum?: number;
maximum?: number;
exclusiveMinimum?: number;
exclusiveMaximum?: number;
multipleOf?: number;
format?: string;
}
interface StringKeywords {
minLength?: number;
maxLength?: number;
pattern?: string;
format?: string;
}
type UncheckedJSONSchemaType<T, IsPartial extends boolean> = (
// these two unions allow arbitrary unions of types
{
anyOf: readonly UncheckedJSONSchemaType<T, IsPartial>[];
} | {
oneOf: readonly UncheckedJSONSchemaType<T, IsPartial>[];
} | ({
type: readonly (T extends number ? JSONType<"number" | "integer", IsPartial> : T extends string ? JSONType<"string", IsPartial> : T extends boolean ? JSONType<"boolean", IsPartial> : never)[];
} & UnionToIntersection<T extends number ? NumberKeywords : T extends string ? StringKeywords : T extends boolean ? {} : never>) | ((T extends number ? {
type: JSONType<"number" | "integer", IsPartial>;
} & NumberKeywords : T extends string ? {
type: JSONType<"string", IsPartial>;
} & StringKeywords : T extends boolean ? {
type: JSONType<"boolean", IsPartial>;
} : T extends readonly [any, ...any[]] ? {
type: JSONType<"array", IsPartial>;
items: { readonly [K in keyof T]-?: UncheckedJSONSchemaType<T[K], false> & Nullable<T[K]> } & {
length: T["length"];
};
minItems: T["length"];
} & ({
maxItems: T["length"];
} | {
additionalItems: false;
}) : T extends readonly any[] ? {
type: JSONType<"array", IsPartial>;
items: UncheckedJSONSchemaType<T[0], false>;
contains?: UncheckedPartialSchema<T[0]>;
minItems?: number;
maxItems?: number;
minContains?: number;
maxContains?: number;
uniqueItems?: true;
additionalItems?: never;
} : T extends Record<string, any> ? {
type: JSONType<"object", IsPartial>;
additionalProperties?: boolean | UncheckedJSONSchemaType<T[string], false>;
unevaluatedProperties?: boolean | UncheckedJSONSchemaType<T[string], false>;
properties?: IsPartial extends true ? Partial<UncheckedPropertiesSchema<T>> : UncheckedPropertiesSchema<T>;
patternProperties?: Record<string, UncheckedJSONSchemaType<T[string], false>>;
propertyNames?: Omit<UncheckedJSONSchemaType<string, false>, "type"> & {
type?: "string";
};
dependencies?: { [K in keyof T]?: readonly (keyof T)[] | UncheckedPartialSchema<T> };
dependentRequired?: { [K in keyof T]?: readonly (keyof T)[] };
dependentSchemas?: { [K in keyof T]?: UncheckedPartialSchema<T> };
minProperties?: number;
maxProperties?: number;
} & (IsPartial extends true ? {
required: readonly (keyof T)[];
} : [UncheckedRequiredMembers<T>] extends [never] ? {
required?: readonly UncheckedRequiredMembers<T>[];
} : {
required: readonly UncheckedRequiredMembers<T>[];
}) : T extends null ? {
type: JSONType<"null", IsPartial>;
nullable: true;
} : never) & {
allOf?: readonly UncheckedPartialSchema<T>[];
anyOf?: readonly UncheckedPartialSchema<T>[];
oneOf?: readonly UncheckedPartialSchema<T>[];
if?: UncheckedPartialSchema<T>;
then?: UncheckedPartialSchema<T>;
else?: UncheckedPartialSchema<T>;
not?: UncheckedPartialSchema<T>;
})) & {
[keyword: string]: any;
$id?: string;
$ref?: string;
$defs?: Record<string, UncheckedJSONSchemaType<Known, true>>;
definitions?: Record<string, UncheckedJSONSchemaType<Known, true>>;
};
type JSONSchemaType<T> = StrictNullChecksWrapper<"JSONSchemaType", UncheckedJSONSchemaType<T, false>>;
type Known = {
[key: string]: Known;
} | [Known, ...Known[]] | Known[] | number | string | boolean | null;
type UncheckedPropertiesSchema<T> = { [K in keyof T]-?: (UncheckedJSONSchemaType<T[K], false> & Nullable<T[K]>) | {
$ref: string;
} };
type UncheckedRequiredMembers<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];
type Nullable<T> = undefined extends T ? {
nullable: true;
const?: null;
enum?: readonly (T | null)[];
default?: T | null;
} : {
nullable?: false;
const?: T;
enum?: readonly T[];
default?: T;
};
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/types/jtd-schema.d.ts
/** numeric strings */
type NumberType = "float32" | "float64" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32";
/** string strings */
type StringType = "string" | "timestamp";
/** Generic JTD Schema without inference of the represented type */
type SomeJTDSchemaType = (
// ref
{
ref: string;
} | {
type: NumberType | StringType | "boolean";
} | {
enum: string[];
} | {
elements: SomeJTDSchemaType;
} | {
values: SomeJTDSchemaType;
} | {
properties: Record<string, SomeJTDSchemaType>;
optionalProperties?: Record<string, SomeJTDSchemaType>;
additionalProperties?: boolean;
} | {
properties?: Record<string, SomeJTDSchemaType>;
optionalProperties: Record<string, SomeJTDSchemaType>;
additionalProperties?: boolean;
} | {
discriminator: string;
mapping: Record<string, SomeJTDSchemaType>;
} | {}) & {
nullable?: boolean;
metadata?: Record<string, unknown>;
definitions?: Record<string, SomeJTDSchemaType>;
};
/** required keys of an object, not undefined */
type RequiredKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? never : K }[keyof T];
/** optional or undifined-able keys of an object */
type OptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? K : never }[keyof T];
/** type is true if T is a union type */
type IsUnion_<T, U extends T = T> = false extends (T extends unknown ? ([U] extends [T] ? false : true) : never) ? false : true;
type IsUnion<T> = IsUnion_<T>;
/** type is true if T is identically E */
type TypeEquality<T, E$1> = [T] extends [E$1] ? ([E$1] extends [T] ? true : false) : false;
/** type is true if T or null is identically E or null*/
type NullTypeEquality<T, E$1> = TypeEquality<T | null, E$1 | null>;
/** gets only the string literals of a type or null if a type isn't a string literal */
type EnumString<T> = [T] extends [never] ? null : T extends string ? string extends T ? null : T : null;
/** true if type is a union of string literals */
type IsEnum<T> = null extends EnumString<T> ? false : true;
/** true only if all types are array types (not tuples) */
type IsElements<T> = false extends IsUnion<T> ? [T] extends [readonly unknown[]] ? undefined extends T[0.5] ? false : true : false : false;
/** true if the the type is a values type */
type IsValues<T> = false extends IsUnion<T> ? TypeEquality<keyof T, string> : false;
/** true if type is a properties type and Union is false, or type is a discriminator type and Union is true */
type IsRecord<T, Union extends boolean> = Union extends IsUnion<T> ? null extends EnumString<keyof T> ? false : true : false;
/** true if type represents an empty record */
type IsEmptyRecord<T> = [T] extends [Record<string, never>] ? [T] extends [never] ? false : true : false;
/** actual schema */
type JTDSchemaType<T, D extends Record<string, unknown> = Record<string, never>> = (
// refs - where null wasn't specified, must match exactly
(null extends EnumString<keyof D> ? never : ({ [K in keyof D]: [T] extends [D[K]] ? {
ref: K;
} : never }[keyof D] & {
nullable?: false;
}) | (null extends T ? { [K in keyof D]: [Exclude<T, null>] extends [Exclude<D[K], null>] ? {
ref: K;
} : never }[keyof D] & {
nullable: true;
} : never)) | (unknown extends T ? {
nullable?: boolean;
} : never) | ((true extends NullTypeEquality<T, number> ? {
type: NumberType;
} : true extends NullTypeEquality<T, boolean> ? {
type: "boolean";
} : true extends NullTypeEquality<T, string> ? {
type: StringType;
} : true extends NullTypeEquality<T, Date> ? {
type: "timestamp";
} : true extends IsEnum<Exclude<T, null>> ? {
enum: EnumString<Exclude<T, null>>[];
} : true extends IsElements<Exclude<T, null>> ? T extends readonly (infer E)[] ? {
elements: JTDSchemaType<E, D>;
} : never : true extends IsEmptyRecord<Exclude<T, null>> ? {
properties: Record<string, never>;
optionalProperties?: Record<string, never>;
} | {
optionalProperties: Record<string, never>;
} : true extends IsValues<Exclude<T, null>> ? T extends Record<string, infer V> ? {
values: JTDSchemaType<V, D>;
} : never : true extends IsRecord<Exclude<T, null>, false> ? ([RequiredKeys<Exclude<T, null>>] extends [never] ? {
properties?: Record<string, never>;
} : {
properties: { [K in RequiredKeys<T>]: JTDSchemaType<T[K], D> };
}) & ([OptionalKeys<Exclude<T, null>>] extends [never] ? {
optionalProperties?: Record<string, never>;
} : {
optionalProperties: { [K in OptionalKeys<T>]: JTDSchemaType<Exclude<T[K], undefined>, D> };
}) & {
additionalProperties?: boolean;
} : true extends IsRecord<Exclude<T, null>, true> ? { [K in keyof Exclude<T, null>]-?: Exclude<T, null>[K] extends string ? {
discriminator: K;
mapping: { [M in Exclude<T, null>[K]]: JTDSchemaType<Omit<T extends Record<K, M> ? T : never, K>, D> };
} : never }[keyof Exclude<T, null>] : never) & (null extends T ? {
nullable: true;
} : {
nullable?: false;
}))) & {
metadata?: Record<string, unknown>;
definitions?: { [K in keyof D]: JTDSchemaType<D[K], D> };
};
type JTDDataDef<S, D extends Record<string, unknown>> =
// ref
(S extends {
ref: string;
} ? D extends { [K in S["ref"]]: infer V } ? JTDDataDef<V, D> : never : S extends {
type: NumberType;
} ? number : S extends {
type: "boolean";
} ? boolean : S extends {
type: "string";
} ? string : S extends {
type: "timestamp";
} ? string | Date : S extends {
enum: readonly (infer E)[];
} ? string extends E ? never : [E] extends [string] ? E : never : S extends {
elements: infer E;
} ? JTDDataDef<E, D>[] : S extends {
properties: Record<string, unknown>;
optionalProperties?: Record<string, unknown>;
additionalProperties?: boolean;
} ? { -readonly [K in keyof S["properties"]]-?: JTDDataDef<S["properties"][K], D> } & { -readonly [K in keyof S["optionalProperties"]]+?: JTDDataDef<S["optionalProperties"][K], D> } & ([S["additionalProperties"]] extends [true] ? Record<string, unknown> : unknown) : S extends {
properties?: Record<string, unknown>;
optionalProperties: Record<string, unknown>;
additionalProperties?: boolean;
} ? { -readonly [K in keyof S["properties"]]-?: JTDDataDef<S["properties"][K], D> } & { -readonly [K in keyof S["optionalProperties"]]+?: JTDDataDef<S["optionalProperties"][K], D> } & ([S["additionalProperties"]] extends [true] ? Record<string, unknown> : unknown) : S extends {
values: infer V;
} ? Record<string, JTDDataDef<V, D>> : S extends {
discriminator: infer M;
mapping: Record<string, unknown>;
} ? [M] extends [string] ? { [K in keyof S["mapping"]]: JTDDataDef<S["mapping"][K], D> & { [KM in M]: K } }[keyof S["mapping"]] : never : unknown) | (S extends {
nullable: true;
} ? null : never);
type JTDDataType<S> = S extends {
definitions: Record<string, unknown>;
} ? JTDDataDef<S, S["definitions"]> : JTDDataDef<S, Record<string, never>>;
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/validation_error.d.ts
declare class ValidationError extends Error {
readonly errors: Partial<ErrorObject>[];
readonly ajv: true;
readonly validation: true;
constructor(errors: Partial<ErrorObject>[]);
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/ref_error.d.ts
declare class MissingRefError extends Error {
readonly missingRef: string;
readonly missingSchema: string;
constructor(resolver: UriResolver, baseId: string, ref: string, msg?: string);
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/core.d.ts
interface Plugin<Opts> {
(ajv: Ajv$2, options?: Opts): Ajv$2;
[prop: string]: any;
}
type Options = CurrentOptions & DeprecatedOptions;
interface CurrentOptions {
strict?: boolean | "log";
strictSchema?: boolean | "log";
strictNumbers?: boolean | "log";
strictTypes?: boolean | "log";
strictTuples?: boolean | "log";
strictRequired?: boolean | "log";
allowMatchingProperties?: boolean;
allowUnionTypes?: boolean;
validateFormats?: boolean;
$data?: boolean;
allErrors?: boolean;
verbose?: boolean;
discriminator?: boolean;
unicodeRegExp?: boolean;
timestamp?: "string" | "date";
parseDate?: boolean;
allowDate?: boolean;
specialNumbers?: "fast" | "null";
$comment?: true | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown);
formats?: { [Name in string]?: Format };
keywords?: Vocabulary;
schemas?: AnySchema[] | { [Key in string]?: AnySchema };
logger?: Logger | false;
loadSchema?: (uri: string) => Promise<AnySchemaObject>;
removeAdditional?: boolean | "all" | "failing";
useDefaults?: boolean | "empty";
coerceTypes?: boolean | "array";
next?: boolean;
unevaluated?: boolean;
dynamicRef?: boolean;
schemaId?: "id" | "$id";
jtd?: boolean;
meta?: SchemaObject | boolean;
defaultMeta?: string | AnySchemaObject;
validateSchema?: boolean | "log";
addUsedSchema?: boolean;
inlineRefs?: boolean | number;
passContext?: boolean;
loopRequired?: number;
loopEnum?: number;
ownProperties?: boolean;
multipleOfPrecision?: number;
int32range?: boolean;
messages?: boolean;
code?: CodeOptions;
uriResolver?: UriResolver;
}
interface CodeOptions {
es5?: boolean;
esm?: boolean;
lines?: boolean;
optimize?: boolean | number;
formats?: Code;
source?: boolean;
process?: (code: string, schema?: SchemaEnv) => string;
regExp?: RegExpEngine;
}
interface InstanceCodeOptions extends CodeOptions {
regExp: RegExpEngine;
optimize: number;
}
interface DeprecatedOptions {
/** @deprecated */
ignoreKeywordsWithRef?: boolean;
/** @deprecated */
jsPropertySyntax?: boolean;
/** @deprecated */
unicode?: boolean;
}
type RequiredInstanceOptions = { [K in "strictSchema" | "strictNumbers" | "strictTypes" | "strictTuples" | "strictRequired" | "inlineRefs" | "loopRequired" | "loopEnum" | "meta" | "messages" | "schemaId" | "addUsedSchema" | "validateSchema" | "validateFormats" | "int32range" | "unicodeRegExp" | "uriResolver"]: NonNullable<Options[K]> } & {
code: InstanceCodeOptions;
};
type InstanceOptions = Options & RequiredInstanceOptions;
interface Logger {
log(...args: unknown[]): unknown;
warn(...args: unknown[]): unknown;
error(...args: unknown[]): unknown;
}
declare class Ajv$2 {
opts: InstanceOptions;
errors?: ErrorObject[] | null;
logger: Logger;
readonly scope: ValueScope;
readonly schemas: { [Key in string]?: SchemaEnv };
readonly refs: { [Ref in string]?: SchemaEnv | string };
readonly formats: { [Name in string]?: AddedFormat };
readonly RULES: ValidationRules;
readonly _compilations: Set<SchemaEnv>;
private readonly _loading;
private readonly _cache;
private readonly _metaOpts;
static ValidationError: typeof ValidationError;
static MissingRefError: typeof MissingRefError;
constructor(opts?: Options);
_addVocabularies(): void;
_addDefaultMetaSchema(): void;
defaultMeta(): string | AnySchemaObject | undefined;
validate(schema: Schema | string, data: unknown): boolean;
validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise<unknown>;
validate<T>(schema: Schema | JSONSchemaType<T> | string, data: unknown): data is T;
validate<T>(schema: JTDSchemaType<T>, data: unknown): data is T;
validate<N extends never, T extends SomeJTDSchemaType>(schema: T, data: unknown): data is JTDDataType<T>;
validate<T>(schema: AsyncSchema, data: unknown | T): Promise<T>;
validate<T>(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise<T>;
compile<T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean): ValidateFunction<T>;
compile<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): ValidateFunction<T>;
compile<N extends never, T extends SomeJTDSchemaType>(schema: T, _meta?: boolean): ValidateFunction<JTDDataType<T>>;
compile<T = unknown>(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction<T>;
compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T>;
compileAsync<T = unknown>(schema: SchemaObject | JSONSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>;
compileAsync<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>;
compileAsync<T = unknown>(schema: AsyncSchema, meta?: boolean): Promise<AsyncValidateFunction<T>>;
compileAsync<T = unknown>(schema: AnySchemaObject, meta?: boolean): Promise<AnyValidateFunction<T>>;
addSchema(schema: AnySchema | AnySchema[],
// If array is passed, `key` will be ignored
key?: string,
// Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.
_meta?: boolean,
// true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.
_validateSchema?: boolean | "log"): Ajv$2;
addMetaSchema(schema: AnySchemaObject, key?: string,
// schema key
_validateSchema?: boolean | "log"): Ajv$2;
validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise<unknown>;
getSchema<T = unknown>(keyRef: string): AnyValidateFunction<T> | undefined;
removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv$2;
addVocabulary(definitions: Vocabulary): Ajv$2;
addKeyword(kwdOrDef: string | KeywordDefinition, def?: KeywordDefinition): Ajv$2;
getKeyword(keyword: string): AddedKeywordDefinition | boolean;
removeKeyword(keyword: string): Ajv$2;
addFormat(name: string, format: Format): Ajv$2;
errorsText(errors?: ErrorObject[] | null | undefined,
// optional array of validation errors
{
separator,
dataVar
}?: ErrorsTextOptions): string;
$dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject;
private _removeAllSchemas;
_addSchema(schema: AnySchema, meta?: boolean, baseId?: string, validateSchema?: boolean | "log", addSchema?: boolean): SchemaEnv;
private _checkUnique;
private _compileSchemaEnv;
private _compileMetaSchema;
}
interface ErrorsTextOptions {
separator?: string;
dataVar?: string;
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/resolve.d.ts
type LocalRefs = { [Ref in string]?: AnySchemaObject };
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/index.d.ts
type SchemaRefs = { [Ref in string]?: SchemaEnv | AnySchema };
interface SchemaCxt {
readonly gen: CodeGen;
readonly allErrors?: boolean;
readonly data: Name;
readonly parentData: Name;
readonly parentDataProperty: Code | number;
readonly dataNames: Name[];
readonly dataPathArr: (Code | number)[];
readonly dataLevel: number;
dataTypes: JSONType$1[];
definedProperties: Set<string>;
readonly topSchemaRef: Code;
readonly validateName: Name;
evaluated?: Name;
readonly ValidationError?: Name;
readonly schema: AnySchema;
readonly schemaEnv: SchemaEnv;
readonly rootId: string;
baseId: string;
readonly schemaPath: Code;
readonly errSchemaPath: string;
readonly errorPath: Code;
readonly propertyName?: Name;
readonly compositeRule?: boolean;
props?: EvaluatedProperties | Name;
items?: EvaluatedItems | Name;
jtdDiscriminator?: string;
jtdMetadata?: boolean;
readonly createErrors?: boolean;
readonly opts: InstanceOptions;
readonly self: Ajv$2;
}
interface SchemaObjCxt extends SchemaCxt {
readonly schema: AnySchemaObject;
}
interface SchemaEnvArgs {
readonly schema: AnySchema;
readonly schemaId?: "$id" | "id";
readonly root?: SchemaEnv;
readonly baseId?: string;
readonly schemaPath?: string;
readonly localRefs?: LocalRefs;
readonly meta?: boolean;
}
declare class SchemaEnv implements SchemaEnvArgs {
readonly schema: AnySchema;
readonly schemaId?: "$id" | "id";
readonly root: SchemaEnv;
baseId: string;
schemaPath?: string;
localRefs?: LocalRefs;
readonly meta?: boolean;
readonly $async?: boolean;
readonly refs: SchemaRefs;
readonly dynamicAnchors: { [Ref in string]?: true };
validate?: AnyValidateFunction;
validateName?: ValueScopeName;
serialize?: (data: unknown) => string;
serializeName?: ValueScopeName;
parse?: (data: string) => unknown;
parseName?: ValueScopeName;
constructor(env: SchemaEnvArgs);
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/types/index.d.ts
interface _SchemaObject {
id?: string;
$id?: string;
$schema?: string;
[x: string]: any;
}
interface SchemaObject extends _SchemaObject {
id?: string;
$id?: string;
$schema?: string;
$async?: false;
[x: string]: any;
}
interface AsyncSchema extends _SchemaObject {
$async: true;
}
type AnySchemaObject = SchemaObject | AsyncSchema;
type Schema = SchemaObject | boolean;
type AnySchema = Schema | AsyncSchema;
interface SourceCode {
validateName: ValueScopeName;
validateCode: string;
scopeValues: ScopeValueSets;
evaluated?: Code;
}
interface DataValidationCxt<T extends string | number = string | number> {
instancePath: string;
parentData: { [K in T]: any };
parentDataProperty: T;
rootData: Record<string, any> | any[];
dynamicAnchors: { [Ref in string]?: ValidateFunction };
}
interface ValidateFunction<T = unknown> {
(this: Ajv$2 | any, data: any, dataCxt?: DataValidationCxt): data is T;
errors?: null | ErrorObject[];
evaluated?: Evaluated;
schema: AnySchema;
schemaEnv: SchemaEnv;
source?: SourceCode;
}
type EvaluatedProperties = { [K in string]?: true } | true;
type EvaluatedItems = number | true;
interface Evaluated {
props?: EvaluatedProperties;
items?: EvaluatedItems;
dynamicProps: boolean;
dynamicItems: boolean;
}
interface AsyncValidateFunction<T = unknown> extends ValidateFunction<T> {
(...args: Parameters<ValidateFunction<T>>): Promise<T>;
$async: true;
}
type AnyValidateFunction<T = any> = ValidateFunction<T> | AsyncValidateFunction<T>;
interface ErrorObject<K$1 extends string = string, P = Record<string, any>, S = unknown> {
keyword: K$1;
instancePath: string;
schemaPath: string;
params: P;
propertyName?: string;
message?: string;
schema?: S;
parentSchema?: AnySchemaObject;
data?: unknown;
}
interface _KeywordDef {
keyword: string | string[];
type?: JSONType$1 | JSONType$1[];
schemaType?: JSONType$1 | JSONType$1[];
allowUndefined?: boolean;
$data?: boolean;
implements?: string[];
before?: string;
post?: boolean;
metaSchema?: AnySchemaObject;
validateSchema?: AnyValidateFunction;
dependencies?: string[];
error?: KeywordErrorDefinition;
$dataError?: KeywordErrorDefinition;
}
interface CodeKeywordDefinition extends _KeywordDef {
code: (cxt: KeywordCxt, ruleType?: string) => void;
trackErrors?: boolean;
}
type MacroKeywordFunc = (schema: any, parentSchema: AnySchemaObject, it: SchemaCxt) => AnySchema;
type CompileKeywordFunc = (schema: any, parentSchema: AnySchemaObject, it: SchemaObjCxt) => DataValidateFunction;
interface DataValidateFunction {
(...args: Parameters<ValidateFunction>): boolean | Promise<any>;
errors?: Partial<ErrorObject>[];
}
interface SchemaValidateFunction {
(schema: any, data: any, parentSchema?: AnySchemaObject, dataCxt?: DataValidationCxt): boolean | Promise<any>;
errors?: Partial<ErrorObject>[];
}
interface FuncKeywordDefinition extends _KeywordDef {
validate?: SchemaValidateFunction | DataValidateFunction;
compile?: CompileKeywordFunc;
schema?: boolean;
modifying?: boolean;
async?: boolean;
valid?: boolean;
errors?: boolean | "full";
}
interface MacroKeywordDefinition extends FuncKeywordDefinition {
macro: MacroKeywordFunc;
}
type KeywordDefinition = CodeKeywordDefinition | FuncKeywordDefinition | MacroKeywordDefinition;
type AddedKeywordDefinition = KeywordDefinition & {
type: JSONType$1[];
schemaType: JSONType$1[];
};
interface KeywordErrorDefinition {
message: string | Code | ((cxt: KeywordErrorCxt) => string | Code);
params?: Code | ((cxt: KeywordErrorCxt) => Code);
}
type Vocabulary = (KeywordDefinition | string)[];
interface KeywordErrorCxt {
gen: CodeGen;
keyword: string;
data: Name;
$data?: string | false;
schema: any;
parentSchema?: AnySchemaObject;
schemaCode: Code | number | boolean;
schemaValue: Code | number | boolean;
schemaType?: JSONType$1[];
errsCount?: Name;
params: KeywordCxtParams;
it: SchemaCxt;
}
type KeywordCxtParams = { [P in string]?: Code | string | number };
type FormatValidator<T extends string | number> = (data: T) => boolean;
type FormatCompare<T extends string | number> = (data1: T, data2: T) => number | undefined;
type AsyncFormatValidator<T extends string | number> = (data: T) => Promise<boolean>;
interface FormatDefinition<T extends string | number> {
type?: T extends string ? "string" | undefined : "number";
validate: FormatValidator<T> | (T extends string ? string | RegExp : never);
async?: false | undefined;
compare?: FormatCompare<T>;
}
interface AsyncFormatDefinition<T extends string | number> {
type?: T extends string ? "string" | undefined : "number";
validate: AsyncFormatValidator<T>;
async: true;
compare?: FormatCompare<T>;
}
type AddedFormat = true | RegExp | FormatValidator<string> | FormatDefinition<string> | FormatDefinition<number> | AsyncFormatDefinition<string> | AsyncFormatDefinition<number>;
type Format = AddedFormat | string;
interface RegExpEngine {
(pattern: string, u: string): RegExpLike;
code: string;
}
interface RegExpLike {
test: (s: string) => boolean;
}
interface UriResolver {
parse(uri: string): URIComponent;
resolve(base: string, path: string): string;
serialize(component: URIComponent): string;
}
//#endregion
//#region ../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/ajv.d.ts
declare class Ajv$1 extends Ajv$2 {
_addVocabularies(): void;
_addDefaultMetaSchema(): void;
defaultMeta(): string | AnySchemaObject | undefined;
}
//#endregion
//#region ../../node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/formats.d.ts
type FormatMode = "fast" | "full";
type FormatName = "date" | "time" | "date-time" | "iso-time" | "iso-date-time" | "duration" | "uri" | "uri-reference" | "uri-template" | "url" | "email" | "hostname" | "ipv4" | "ipv6" | "regex" | "uuid" | "json-pointer" | "json-pointer-uri-fragment" | "relative-json-pointer" | "byte" | "int32" | "int64" | "float" | "double" | "password" | "binary";
//#endregion
//#region ../../node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/index.d.ts
interface FormatOptions {
mode?: FormatMode;
formats?: FormatName[];
keywords?: boolean;
}
type FormatsPluginOptions = FormatName[] | FormatOptions;
interface FormatsPlugin extends Plugin<FormatsPluginOptions> {
get: (format: FormatName, mode?: FormatMode) => Format;
}
declare const formatsPlugin: FormatsPlugin;
//#endregion
//#region ../core-internal/src/validators/ajvProvider.d.ts
/** Structural subset of the AJV interface used by {@link AjvJsonSchemaValidator}. */
interface AjvLike {
compile: (schema: unknown) => AjvValidateFunction;
getSchema: (keyRef: string) => AjvValidateFunction | undefined;
errorsText: (errors?: any) => string;
}
interface AjvValidateFunction {
(input: unknown): boolean;
errors?: any;
}
/** `ajv-formats` default export, normalised through the CJS/ESM interop wrapper. */
declare const addFormats: typeof formatsPlugin.default;
/**
* AJV-backed JSON Schema validator. See `@modelcontextprotocol/{client,server}/validators/ajv`
* for the customisation entry point (re-exports `Ajv` and `addFormats` from the bundled copy).
*
* Default dispatches on the schema's declared dialect: no `$schema` or 2020-12 → `Ajv2020`
* (SEP-1613); 2019-09 → `Ajv2019`; draft-07 or draft-06 → the classic draft-07 `Ajv` class
* (draft-07's changes over draft-06 are additive, so one engine covers both). Known draft-07 deviation: classic Ajv
* evaluates keywords adjacent to `$ref` (stricter than draft-07's ignore-siblings rule, matching
* v1's default engine), while the cfworker provider ignores them per spec.
* Schemas declaring any other `$schema` are
* rejected with a plain `Error`; pass a pre-configured Ajv instance to validate
* other dialects. The SDK bundles ajv internally but does not re-export `Ajv2020` (its type
* graph tips downstream declaration bundling — see #2339). To construct a custom 2020-12
* instance, add `ajv` to your own dependencies (matching the SDK's pinned version) and
* `import { Ajv2020 } from 'ajv/dist/2020.js'` — `new Ajv(...)` is the draft-07 class and would
* silently downgrade dialect.
*
* @example Use with default configuration
* ```ts source="./ajvProvider.examples.ts#AjvJsonSchemaValidator_default"
* const validator = new AjvJsonSchemaValidator();
* ```
*
* @example Use with a custom AJV instance
* ```ts source="./ajvProvider.examples.ts#AjvJsonSchemaValidator_customInstance"
* // import { Ajv2020 } from 'ajv/dist/2020.js';
* const ajv = new Ajv2020({ strict: false, validateSchema: false, allErrors: true });
* const validator = new AjvJsonSchemaValidator(ajv);
* ```
*
* @example Register ajv-formats
* ```ts source="./ajvProvider.examples.ts#AjvJsonSchemaValidator_withFormats"
* // import { Ajv2020 } from 'ajv/dist/2020.js';
* const ajv = new Ajv2020({ strict: false, validateSchema: false, allErrors: true });
* addFormats(ajv);
* const validator = new AjvJsonSchemaValidator(ajv);
* ```
*/
declare class AjvJsonSchemaValidator implements jsonSchemaValidator {
private _ajv;
/** Lazy classic (draft-07) engine, built on the first draft-07/draft-06-declared schema. */
private _ajvDraft7;
/** Lazy 2019-09 engine, built on the first 2019-09-declared schema. */
private _ajv2019;
/** True iff the constructor received a caller-supplied engine; the `$schema` dispatch is skipped. */
private readonly _userAjv;
/**
* @param ajv - Optional pre-configured AJV-compatible instance. When supplied, this instance is
* used for **every** schema regardless of its declared `$schema` (the caller owns dialect
* choice). When omitted, the provider constructs per-dialect engines (`Ajv2020`, `Ajv2019`,
* and the classic draft-07 `Ajv` for draft-07/06-declared schemas) with
* `strict: false`, `validateFormats: true`, `validateSchema: false`, `allErrors: true`, and
* `ajv-formats` registered — **lazily, on the first {@linkcode getValidator} call needing each**, so
* constructing the provider (e.g. as the default validator of a `Client`/`Server` that never
* validates a JSON Schema) does not pay the ajv + ajv-formats instantiation cost. The parameter
* is typed structurally so consumers who don't pass an instance need not have `ajv` installed.
*/
constructor(ajv?: AjvLike);
/** The underlying 2020-12 engine — the default instance is created on first use. */
private get ajv();
/**
* Pick the engine for a schema's declared dialect. A caller-supplied engine is used for
* every schema — do not second-guess by `$schema` (bring-your-own-validator means
* bring-your-own-dialect). Otherwise: no `$schema` or 2020-12 → `Ajv2020`; 2019-09 →
* `Ajv2019`; draft-07 or draft-06 → classic `Ajv`; anything else → `Error`.
*/
private _engineFor;
getValidator<T>(schema: JsonSchemaType): JsonSchemaValidator<T>;
}
/**
* Draft-07 AJV class, re-exported for consumers who need to opt back to the pre-SEP-1613 default.
* The full v1-equivalent construction is:
*
* ```ts
* const ajv = new Ajv({ strict: false, validateFormats: true, validateSchema: false, allErrors: true });
* addFormats(ajv);
* new AjvJsonSchemaValidator(ajv);
* ```
*
* (omitting `validateSchema: false` makes a 2020-12-stamped `$schema` fail with an opaque
* "no schema with key or ref …" engine error; omitting `addFormats` silently drops `format`
* validation that the v1 default had).
*
* The SDK bundles ajv internally but does not re-export `Ajv2020` (its type graph tips downstream
* declaration bundling — see #2339). To construct a custom 2020-12 instance, add `ajv` to your own
* dependencies (matching the SDK's pinned version) and `import { Ajv2020 } from 'ajv/dist/2020.js'`.
*/
declare const Ajv: typeof Ajv$1;
//#endregion
export { AjvJsonSchemaValidator as n, addFormats as r, Ajv as t };
//# sourceMappingURL=ajvProvider-INpkxUi1.d.mts.map