@vielzeug/spell 3.0.0 → 3.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["/* -------------------- Error Codes -------------------- */\n\nexport const ErrorCode = {\n custom: 'custom',\n invalid_base64: 'invalid_base64',\n invalid_date: 'invalid_date',\n invalid_duration: 'invalid_duration',\n invalid_enum: 'invalid_enum',\n invalid_finite: 'invalid_finite',\n invalid_integer: 'invalid_integer',\n invalid_keys: 'invalid_keys',\n invalid_length: 'invalid_length',\n invalid_literal: 'invalid_literal',\n invalid_multiple_of: 'invalid_multiple_of',\n invalid_safe: 'invalid_safe',\n invalid_string: 'invalid_string',\n invalid_type: 'invalid_type',\n invalid_union: 'invalid_union',\n invalid_unique: 'invalid_unique',\n invalid_url: 'invalid_url',\n invalid_variant: 'invalid_variant',\n too_big: 'too_big',\n too_small: 'too_small',\n} as const;\n\nexport type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];\n\n/* -------------------- Messages -------------------- */\n\n/**\n * A validation message — either a static string or a function that receives context and returns a string.\n * **Note:** Static string values are used verbatim with no interpolation. Use the function form\n * for context-dependent messages (e.g. `(ctx) => \\`Must be at least ${ctx.min}\\``).\n */\nexport type MessageFn<Ctx extends Record<string, unknown> = Record<string, unknown>> = string | ((ctx: Ctx) => string);\n\n/* -------------------- JSON Schema -------------------- */\n\n/** Plain JSON Schema object (targeting JSON Schema 2020-12). */\nexport type JsonSchema = Record<string, unknown>;\n\nexport interface StandardSchemaV1<Input = unknown, Output = Input> {\n readonly '~standard': StandardSchemaV1.Props<Input, Output>;\n}\n\nexport declare namespace StandardSchemaV1 {\n interface Props<Input = unknown, Output = Input> {\n readonly types?: Types<Input, Output> | undefined;\n readonly validate: (value: unknown, options?: Options | undefined) => Result<Output> | Promise<Result<Output>>;\n readonly vendor: string;\n readonly version: 1;\n }\n\n type Result<Output> = { readonly issues: readonly Issue[] } | { readonly issues?: undefined; readonly value: Output };\n\n interface Options {\n readonly libraryOptions?: Record<string, unknown> | undefined;\n }\n\n interface Issue {\n readonly message: string;\n readonly path?: readonly (PropertyKey | PathSegment)[] | undefined;\n }\n\n interface PathSegment {\n readonly key: PropertyKey;\n }\n\n interface Types<Input = unknown, Output = Input> {\n readonly input: Input;\n readonly output: Output;\n }\n\n type InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['input'];\n type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];\n}\n\n/* -------------------- Issues -------------------- */\n\n/**\n * A typed discriminated union of all issues emitted by built-in validators.\n *\n * Narrowing on `code` gives precise access to `params`:\n * ```ts\n * if (error.code === 'too_small') {\n * const min = error.params.min; // number | bigint | Date\n * }\n * ```\n */\nexport type Issue =\n | { code: 'custom'; message: string; params?: Record<string, unknown>; path: (string | number)[] }\n | { code: 'invalid_base64'; message: string; params: { format: string }; path: (string | number)[] }\n | { code: 'invalid_date'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_duration'; message: string; params: { format: string }; path: (string | number)[] }\n | { code: 'invalid_enum'; message: string; params: { values: readonly unknown[] }; path: (string | number)[] }\n | { code: 'invalid_finite'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_integer'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_keys'; message: string; params: { keys: string[] }; path: (string | number)[] }\n | { code: 'invalid_length'; message: string; params: { exact: number }; path: (string | number)[] }\n | { code: 'invalid_literal'; message: string; params: { expected: unknown }; path: (string | number)[] }\n | { code: 'invalid_multiple_of'; message: string; params: { step: number | bigint }; path: (string | number)[] }\n | { code: 'invalid_safe'; message: string; params?: undefined; path: (string | number)[] }\n | {\n code: 'invalid_string';\n message: string;\n params: { format?: string; includes?: string; pattern?: string; prefix?: string; suffix?: string };\n path: (string | number)[];\n }\n | { code: 'invalid_type'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_union'; message: string; params: { errors: Issue[][] }; path: (string | number)[] }\n | { code: 'invalid_unique'; message: string; params: { unique: true }; path: (string | number)[] }\n | { code: 'invalid_url'; message: string; params: { format: string }; path: (string | number)[] }\n | {\n code: 'invalid_variant';\n message: string;\n params: { discriminator: string; expected: string[] };\n path: (string | number)[];\n }\n | {\n code: 'too_big';\n message: string;\n params: { exclusive?: boolean; max: number | bigint | Date };\n path: (string | number)[];\n }\n | {\n code: 'too_small';\n message: string;\n params: { exclusive?: boolean; min: number | bigint | Date };\n path: (string | number)[];\n }\n | { code: string & {}; message: string; params?: Record<string, unknown>; path: (string | number)[] };\n\n/** ParseContext carries the active message set through the parse pipeline. */\nexport type ParseContext = {\n messages: import('./messages').Messages;\n};\n\n/**\n * Validator function. Receives the value after type-checking and the active ParseContext.\n * Returns an Issue array on failure, null on success, or a Promise for async validators.\n */\nexport type ValidateFn = (value: unknown, ctx?: ParseContext) => Issue[] | null | Promise<Issue[] | null>;\n\nexport type CheckContext = {\n addIssue: (issue: {\n code: string;\n message: string;\n params?: Record<string, unknown>;\n path?: (string | number)[];\n }) => void;\n};\n\n/**\n * Return type of a `check()` callback.\n * - `string` — validation failed; the string becomes the error message.\n * - `false` — validation failed with no message (use `addIssue` for a message).\n * - `true` / `null` / `void` — validation passed.\n *\n * The shorthand `condition || 'message'` works naturally:\n * ```ts\n * s.string().check((value) => value.length > 0 || 'Cannot be empty')\n * ```\n */\nexport type ValidateResult = boolean | null | undefined | string;\n\n/** Re-exported from errors for convenience — defined there. */\nexport type { FlatError, FlatErrorFirst } from './errors';\n\n/* -------------------- Schema Introspection -------------------- */\n\n/**\n * Visitor map for schema.walk(). Container handlers receive already-walked children (type R).\n * All handlers are optional — unmatched kinds return `null` unless an `unknown` fallback is provided.\n *\n * Each handler receives the concrete schema type for that kind, enabling access to\n * schema-specific properties (e.g. `ArraySchema.itemSchema`) without casting.\n */\nexport type SchemaWalker<R> = {\n array?: <T extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/array').ArraySchema<T, Mode>,\n item: R | null,\n ) => R;\n bigint?: <Input, Mode extends SchemaMode>(schema: import('./schemas/bigint').BigIntSchema<Input, Mode>) => R;\n boolean?: <Input, Mode extends SchemaMode>(schema: import('./schemas/boolean').BooleanSchema<Input, Mode>) => R;\n date?: <Input, Mode extends SchemaMode>(schema: import('./schemas/date').DateSchema<Input, Mode>) => R;\n enum?: <T extends import('./schemas/enum').EnumValues, Mode extends SchemaMode>(\n schema: import('./schemas/enum').EnumSchema<T, Mode>,\n ) => R;\n instanceof?: <T, Mode extends SchemaMode>(schema: import('./schemas/instanceof').InstanceOfSchema<T, Mode>) => R;\n intersect?: <T extends readonly AnySchema[], Mode extends SchemaMode>(\n schema: import('./schemas/intersect').IntersectSchema<T, Mode>,\n branches: (R | null)[],\n ) => R;\n lazy?: <T, Input, Mode extends SchemaMode>(schema: import('./schemas/lazy').LazySchema<T, Input, Mode>) => R;\n literal?: <T extends string | number | boolean | null | undefined, Mode extends SchemaMode>(\n schema: import('./schemas/literal').LiteralSchema<T, Mode>,\n ) => R;\n map?: <K extends AnySchema, V extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/map').MapSchema<K, V, Mode>,\n key: R | null,\n value: R | null,\n ) => R;\n never?: <Mode extends SchemaMode>(schema: import('./schemas/never').NeverSchema<Mode>) => R;\n number?: <Input, Mode extends SchemaMode>(schema: import('./schemas/number').NumberSchema<Input, Mode>) => R;\n object?: <T extends import('./schemas/object').ObjectShape, Mode extends SchemaMode>(\n schema: import('./schemas/object').ObjectSchema<T, Mode>,\n fields: Record<string, R | null>,\n ) => R;\n pipe?: <To extends AnySchema, From extends AnySchema, Mode extends SchemaMode>(\n schema: import('./core').PipeSchema<To, From, Mode>,\n from: R | null,\n to: R | null,\n ) => R;\n record?: <K extends AnySchema, V extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/record').RecordSchema<K, V, Mode>,\n key: R | null,\n value: R | null,\n ) => R;\n set?: <T extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/set').SetSchema<T, Mode>,\n item: R | null,\n ) => R;\n string?: <Input, Mode extends SchemaMode>(schema: import('./schemas/string').StringSchema<Input, Mode>) => R;\n tuple?: <T extends import('./schemas/tuple').TupleSchemas, Rest extends AnySchema | null, Mode extends SchemaMode>(\n schema: import('./schemas/tuple').TupleSchema<T, Rest, Mode>,\n items: (R | null)[],\n rest: R | null,\n ) => R;\n union?: <T extends readonly AnySchema[], Mode extends SchemaMode>(\n schema: import('./schemas/union').UnionSchema<T, Mode>,\n branches: (R | null)[],\n ) => R;\n unknown?: (schema: AnySchema) => R;\n variant?: <\n K extends string,\n M extends Record<string, import('./schemas/object').ObjectSchema<any, any>>,\n Mode extends SchemaMode,\n >(\n schema: import('./schemas/variant').VariantSchema<K, M, Mode>,\n branches: Record<string, R | null>,\n ) => R;\n};\n\ntype BaseDescriptor = {\n description?: string;\n isNullable?: boolean;\n isOptional?: boolean;\n};\n\nexport type SchemaDescriptor = BaseDescriptor &\n (\n | { kind: 'unknown' | 'never' | 'boolean' | 'bigint' | 'date' | 'lazy' }\n | { className: string; kind: 'instanceof' }\n | {\n contentEncoding?: string;\n format?: string;\n kind: 'string';\n maxLength?: number;\n minLength?: number;\n pattern?: string | null;\n }\n | {\n exclusiveMaximum?: number;\n exclusiveMinimum?: number;\n kind: 'number';\n maximum?: number;\n minimum?: number;\n multipleOf?: number;\n typeHint?: 'integer';\n }\n | { kind: 'literal'; value: string | number | boolean | null | undefined }\n | { kind: 'enum'; values: readonly (string | number)[] }\n | { items: SchemaDescriptor; kind: 'array'; maxItems?: number; minItems?: number }\n | { items: SchemaDescriptor[]; kind: 'tuple'; rest: SchemaDescriptor | null }\n | { fields: Record<string, SchemaDescriptor>; kind: 'object'; strict: boolean }\n | { key: SchemaDescriptor; kind: 'record'; value: SchemaDescriptor }\n | { items: SchemaDescriptor; kind: 'set' }\n | { key: SchemaDescriptor; kind: 'map'; value: SchemaDescriptor }\n | { branches: SchemaDescriptor[]; kind: 'union' | 'intersect' }\n | { branches: Record<string, SchemaDescriptor>; discriminator: string; kind: 'variant' }\n | { from: SchemaDescriptor; kind: 'pipe'; to: SchemaDescriptor }\n );\n\n/* -------------------- ParseResult (forward-references SpellValidationError) -------------------- */\n\nimport type { Schema } from './core';\n// Import only the type to avoid circular dependencies\nimport type { SpellValidationError } from './errors';\n\nexport type ParseResult<T> = { data: T; success: true } | { error: SpellValidationError; success: false };\n\n/* -------------------- Schema execution mode / Infer (forward-references Schema) -------------------- */\n\n/** @internal */\nexport const schemaInput = Symbol('spell.schemaInput');\n/** Public structural marker for a schema's parsing capability. */\nexport const schemaMode = Symbol('spell.schemaMode');\n/** @internal */\nexport const schemaOutput = Symbol('spell.schemaOutput');\nexport declare const schemaAcceptsMissing: unique symbol;\nexport type AcceptsMissing = { readonly [schemaAcceptsMissing]: true };\n\n/** Whether a schema can be parsed synchronously or requires asynchronous parsing. */\nexport type SchemaMode = 'async' | 'sync';\n\n/** A structural schema surface accepted by composition helpers. */\nexport type SchemaSurface<Output = unknown, Input = Output, Mode extends SchemaMode = SchemaMode> = {\n /** @internal */\n _parseFullAsync(value: unknown, ctx?: ParseContext): Promise<{ data: unknown; issues: Issue[] }>;\n /** @internal */\n _parseFullSync(value: unknown, ctx?: ParseContext): { data: unknown; issues: Issue[] };\n safeParseAsync(value: unknown, ctx?: ParseContext): Promise<ParseResult<Output>>;\n definition(): SchemaDescriptor;\n isOptional: boolean;\n optional(): SchemaSurface<Output | undefined, Input | undefined, Mode>;\n required(): SchemaSurface<Exclude<Output, undefined>, Exclude<Input, undefined>, Mode>;\n readonly [schemaInput]: Input;\n readonly [schemaMode]: Mode;\n readonly [schemaOutput]: Output;\n walk<R>(visitor: SchemaWalker<R>): R | null;\n};\n\nexport type AnySchema<Output = unknown, Input = Output, Mode extends SchemaMode = SchemaMode> = SchemaSurface<\n Output,\n Input,\n Mode\n>;\n\n/** Extracts a schema's parsing capability. */\nexport type InferSchemaMode<T> = T extends { readonly [schemaMode]: infer Mode extends SchemaMode } ? Mode : never;\n\n/** Selects async mode when any member of a schema collection is async. */\nexport type MergeSchemaModes<Modes extends SchemaMode> = 'async' extends Modes ? 'async' : 'sync';\n\nexport type InferOutput<T> =\n T extends Schema<infer Output, unknown, SchemaMode>\n ? Output\n : T extends { readonly [schemaOutput]: infer Output }\n ? Output\n : never;\ntype RawInferInput<T> = T extends { readonly [schemaInput]: infer Input } ? Input : unknown;\nexport type InferInput<T> = T extends AcceptsMissing ? RawInferInput<T> | undefined : RawInferInput<T>;\nexport type Infer<T> = InferOutput<T>;\n\n/** Re-exported for convenience — defined in messages.ts. */\nexport type { Messages } from './messages';\n"],"mappings":"AAEA,IAAa,EAAY,CACvB,OAAQ,SACR,eAAgB,iBAChB,aAAc,eACd,iBAAkB,mBAClB,aAAc,eACd,eAAgB,iBAChB,gBAAiB,kBACjB,aAAc,eACd,eAAgB,iBAChB,gBAAiB,kBACjB,oBAAqB,sBACrB,aAAc,eACd,eAAgB,iBAChB,aAAc,eACd,cAAe,gBACf,eAAgB,iBAChB,YAAa,cACb,gBAAiB,kBACjB,QAAS,UACT,UAAW,WACb"}
1
+ {"version":3,"file":"types.cjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["/* -------------------- Error Codes -------------------- */\n\nexport const ErrorCode = {\n custom: 'custom',\n invalid_base64: 'invalid_base64',\n invalid_date: 'invalid_date',\n invalid_duration: 'invalid_duration',\n invalid_enum: 'invalid_enum',\n invalid_finite: 'invalid_finite',\n invalid_integer: 'invalid_integer',\n invalid_keys: 'invalid_keys',\n invalid_length: 'invalid_length',\n invalid_literal: 'invalid_literal',\n invalid_multiple_of: 'invalid_multiple_of',\n invalid_safe: 'invalid_safe',\n invalid_string: 'invalid_string',\n invalid_type: 'invalid_type',\n invalid_union: 'invalid_union',\n invalid_unique: 'invalid_unique',\n invalid_url: 'invalid_url',\n invalid_variant: 'invalid_variant',\n too_big: 'too_big',\n too_small: 'too_small',\n} as const;\n\nexport type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];\n\n/* -------------------- Messages -------------------- */\n\n/**\n * A validation message — either a static string or a function that receives context and returns a string.\n * **Note:** Static string values are used verbatim with no interpolation. Use the function form\n * for context-dependent messages (e.g. `(ctx) => \\`Must be at least ${ctx.min}\\``).\n */\nexport type MessageFn<Ctx extends Record<string, unknown> = Record<string, unknown>> = string | ((ctx: Ctx) => string);\n\n/* -------------------- JSON Schema -------------------- */\n\n/** Plain JSON Schema object (targeting JSON Schema 2020-12). */\nexport type JsonSchema = Record<string, unknown>;\n\nexport interface StandardSchemaV1<Input = unknown, Output = Input> {\n readonly '~standard': StandardSchemaV1.Props<Input, Output>;\n}\n\nexport declare namespace StandardSchemaV1 {\n interface Props<Input = unknown, Output = Input> {\n readonly types?: Types<Input, Output> | undefined;\n readonly validate: (value: unknown, options?: Options | undefined) => Result<Output> | Promise<Result<Output>>;\n readonly vendor: string;\n readonly version: 1;\n }\n\n type Result<Output> = { readonly issues: readonly Issue[] } | { readonly issues?: undefined; readonly value: Output };\n\n interface Options {\n readonly libraryOptions?: Record<string, unknown> | undefined;\n }\n\n interface Issue {\n readonly message: string;\n readonly path?: readonly (PropertyKey | PathSegment)[] | undefined;\n }\n\n interface PathSegment {\n readonly key: PropertyKey;\n }\n\n interface Types<Input = unknown, Output = Input> {\n readonly input: Input;\n readonly output: Output;\n }\n\n type InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['input'];\n type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];\n}\n\n/* -------------------- Issues -------------------- */\n\n/**\n * A typed discriminated union of all issues emitted by built-in validators.\n *\n * Narrowing on `code` gives precise access to `params`:\n * ```ts\n * if (error.code === 'too_small') {\n * const min = error.params.min; // number | bigint | Date\n * }\n * ```\n */\nexport type Issue =\n | { code: 'custom'; message: string; params?: Record<string, unknown>; path: (string | number)[] }\n | { code: 'invalid_base64'; message: string; params: { format: string }; path: (string | number)[] }\n | { code: 'invalid_date'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_duration'; message: string; params: { format: string }; path: (string | number)[] }\n | { code: 'invalid_enum'; message: string; params: { values: readonly unknown[] }; path: (string | number)[] }\n | { code: 'invalid_finite'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_integer'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_keys'; message: string; params: { keys: string[] }; path: (string | number)[] }\n | { code: 'invalid_length'; message: string; params: { exact: number }; path: (string | number)[] }\n | { code: 'invalid_literal'; message: string; params: { expected: unknown }; path: (string | number)[] }\n | { code: 'invalid_multiple_of'; message: string; params: { step: number | bigint }; path: (string | number)[] }\n | { code: 'invalid_safe'; message: string; params?: undefined; path: (string | number)[] }\n | {\n code: 'invalid_string';\n message: string;\n params: { format?: string; includes?: string; pattern?: string; prefix?: string; suffix?: string };\n path: (string | number)[];\n }\n | { code: 'invalid_type'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_union'; message: string; params: { errors: Issue[][] }; path: (string | number)[] }\n | { code: 'invalid_unique'; message: string; params: { unique: true }; path: (string | number)[] }\n | { code: 'invalid_url'; message: string; params: { format: string }; path: (string | number)[] }\n | {\n code: 'invalid_variant';\n message: string;\n params: { discriminator: string; expected: string[] };\n path: (string | number)[];\n }\n | {\n code: 'too_big';\n message: string;\n params: { exclusive?: boolean; max: number | bigint | Date };\n path: (string | number)[];\n }\n | {\n code: 'too_small';\n message: string;\n params: { exclusive?: boolean; min: number | bigint | Date };\n path: (string | number)[];\n }\n | { code: string & {}; message: string; params?: Record<string, unknown>; path: (string | number)[] };\n\n/** ParseContext carries the active message set through the parse pipeline. */\nexport type ParseContext = {\n messages: import('./messages').Messages;\n};\n\n/**\n * Validator function. Receives the value after type-checking and the active ParseContext.\n * Returns an Issue array on failure, null on success, or a Promise for async validators.\n */\nexport type ValidateFn = (value: unknown, ctx?: ParseContext) => Issue[] | null | Promise<Issue[] | null>;\n\nexport type CheckContext = {\n addIssue: (issue: {\n code: string;\n message: string;\n params?: Record<string, unknown>;\n path?: (string | number)[];\n }) => void;\n};\n\n/**\n * Return type of a `check()` callback.\n * - `string` — validation failed; the string becomes the error message.\n * - `false` — validation failed with no message (use `addIssue` for a message).\n * - `true` / `null` / `void` — validation passed.\n *\n * The shorthand `condition || 'message'` works naturally:\n * ```ts\n * s.string().check((value) => value.length > 0 || 'Cannot be empty')\n * ```\n */\nexport type ValidateResult = boolean | null | undefined | string;\n\n/** Re-exported from errors for convenience — defined there. */\nexport type { FlatError, FlatErrorFirst } from './errors';\n\n/* -------------------- Schema Introspection -------------------- */\n\n/**\n * Visitor map for schema.walk(). Container handlers receive already-walked children (type R).\n * All handlers are optional — unmatched kinds return `null` unless an `unknown` fallback is provided.\n *\n * Each handler receives the concrete schema type for that kind, enabling access to\n * schema-specific properties (e.g. `ArraySchema.itemSchema`) without casting.\n */\nexport type SchemaWalker<R> = {\n array?: <T extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/array').ArraySchema<T, Mode>,\n item: R | null,\n ) => R;\n bigint?: <Input, Mode extends SchemaMode>(schema: import('./schemas/bigint').BigIntSchema<Input, Mode>) => R;\n boolean?: <Input, Mode extends SchemaMode>(schema: import('./schemas/boolean').BooleanSchema<Input, Mode>) => R;\n date?: <Input, Mode extends SchemaMode>(schema: import('./schemas/date').DateSchema<Input, Mode>) => R;\n enum?: <T extends import('./schemas/enum').EnumValues, Mode extends SchemaMode>(\n schema: import('./schemas/enum').EnumSchema<T, Mode>,\n ) => R;\n instanceof?: <T, Mode extends SchemaMode>(schema: import('./schemas/instanceof').InstanceOfSchema<T, Mode>) => R;\n intersect?: <T extends readonly AnySchema[], Mode extends SchemaMode>(\n schema: import('./schemas/intersect').IntersectSchema<T, Mode>,\n branches: (R | null)[],\n ) => R;\n lazy?: <T, Input, Mode extends SchemaMode>(schema: import('./schemas/lazy').LazySchema<T, Input, Mode>) => R;\n literal?: <T extends string | number | boolean | null | undefined, Mode extends SchemaMode>(\n schema: import('./schemas/literal').LiteralSchema<T, Mode>,\n ) => R;\n map?: <K extends AnySchema, V extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/map').MapSchema<K, V, Mode>,\n key: R | null,\n value: R | null,\n ) => R;\n never?: <Mode extends SchemaMode>(schema: import('./schemas/never').NeverSchema<Mode>) => R;\n number?: <Input, Mode extends SchemaMode>(schema: import('./schemas/number').NumberSchema<Input, Mode>) => R;\n object?: <T extends import('./schemas/object').ObjectShape, Mode extends SchemaMode>(\n schema: import('./schemas/object').ObjectSchema<T, Mode>,\n fields: Record<string, R | null>,\n ) => R;\n pipe?: <To extends AnySchema, From extends AnySchema, Mode extends SchemaMode>(\n schema: import('./core').PipeSchema<To, From, Mode>,\n from: R | null,\n to: R | null,\n ) => R;\n record?: <K extends AnySchema, V extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/record').RecordSchema<K, V, Mode>,\n key: R | null,\n value: R | null,\n ) => R;\n set?: <T extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/set').SetSchema<T, Mode>,\n item: R | null,\n ) => R;\n string?: <Input, Mode extends SchemaMode>(schema: import('./schemas/string').StringSchema<Input, Mode>) => R;\n tuple?: <T extends import('./schemas/tuple').TupleSchemas, Rest extends AnySchema | null, Mode extends SchemaMode>(\n schema: import('./schemas/tuple').TupleSchema<T, Rest, Mode>,\n items: (R | null)[],\n rest: R | null,\n ) => R;\n union?: <T extends readonly AnySchema[], Mode extends SchemaMode>(\n schema: import('./schemas/union').UnionSchema<T, Mode>,\n branches: (R | null)[],\n ) => R;\n unknown?: (schema: AnySchema) => R;\n variant?: <\n K extends string,\n M extends Record<string, import('./schemas/object').ObjectSchema<any, any>>,\n Mode extends SchemaMode,\n >(\n schema: import('./schemas/variant').VariantSchema<K, M, Mode>,\n branches: Record<string, R | null>,\n ) => R;\n};\n\ntype BaseDescriptor = {\n description?: string;\n isNullable?: boolean;\n isOptional?: boolean;\n};\n\nexport type SchemaDescriptor = BaseDescriptor &\n (\n | { kind: 'unknown' | 'never' | 'boolean' | 'bigint' | 'date' | 'lazy' }\n | { className: string; kind: 'instanceof' }\n | {\n contentEncoding?: string;\n format?: string;\n kind: 'string';\n maxLength?: number;\n minLength?: number;\n pattern?: string | null;\n }\n | {\n exclusiveMaximum?: number;\n exclusiveMinimum?: number;\n kind: 'number';\n maximum?: number;\n minimum?: number;\n multipleOf?: number;\n typeHint?: 'integer';\n }\n | { kind: 'literal'; value: string | number | boolean | null | undefined }\n | { kind: 'enum'; values: readonly (string | number)[] }\n | { items: SchemaDescriptor; kind: 'array'; maxItems?: number; minItems?: number }\n | { items: SchemaDescriptor[]; kind: 'tuple'; rest: SchemaDescriptor | null }\n | { fields: Record<string, SchemaDescriptor>; kind: 'object'; strict: boolean }\n | { key: SchemaDescriptor; kind: 'record'; value: SchemaDescriptor }\n | { items: SchemaDescriptor; kind: 'set' }\n | { key: SchemaDescriptor; kind: 'map'; value: SchemaDescriptor }\n | { branches: SchemaDescriptor[]; kind: 'union' | 'intersect' }\n | { branches: Record<string, SchemaDescriptor>; discriminator: string; kind: 'variant' }\n | { from: SchemaDescriptor; kind: 'pipe'; to: SchemaDescriptor }\n );\n\n/* -------------------- ParseResult (forward-references SpellValidationError) -------------------- */\n\nimport type { Schema } from './core';\n// Import only the type to avoid circular dependencies\nimport type { SpellValidationError } from './errors';\n\nexport type ParseResult<T> = { data: T; success: true } | { error: SpellValidationError; success: false };\n\n/* -------------------- Schema execution mode / Infer (forward-references Schema) -------------------- */\n\n/** @internal */\nexport const schemaInput = Symbol('spell.schemaInput');\n/** Public structural marker for a schema's parsing capability. */\nexport const schemaMode = Symbol('spell.schemaMode');\n/** @internal */\nexport const schemaOutput = Symbol('spell.schemaOutput');\nexport declare const schemaAcceptsMissing: unique symbol;\nexport type AcceptsMissing = { readonly [schemaAcceptsMissing]: true };\n\n/** Whether a schema can be parsed synchronously or requires asynchronous parsing. */\nexport type SchemaMode = 'async' | 'sync';\n\n/** A structural schema surface accepted by composition helpers. */\nexport type SchemaSurface<Output = unknown, Input = Output, Mode extends SchemaMode = SchemaMode> = {\n /** @internal */\n _parseFullAsync(value: unknown, ctx?: ParseContext): Promise<{ data: unknown; issues: Issue[] }>;\n /** @internal */\n _parseFullSync(value: unknown, ctx?: ParseContext): { data: unknown; issues: Issue[] };\n safeParseAsync(value: unknown, ctx?: ParseContext): Promise<ParseResult<Output>>;\n definition(): SchemaDescriptor;\n isOptional: boolean;\n optional(): SchemaSurface<Output | undefined, Input | undefined, Mode>;\n required(): SchemaSurface<Exclude<Output, undefined>, Exclude<Input, undefined>, Mode>;\n readonly [schemaInput]: Input;\n readonly [schemaMode]: Mode;\n readonly [schemaOutput]: Output;\n walk<R>(visitor: SchemaWalker<R>): R | null;\n};\n\nexport type AnySchema<Output = unknown, Input = Output, Mode extends SchemaMode = SchemaMode> = SchemaSurface<\n Output,\n Input,\n Mode\n>;\n\n/**\n * The synchronous parse capability every sync schema carries. UI adapters that accept\n * `AnySchema` cannot call `safeParse` on it (the surface type omits it); type adapter\n * parameters against this instead.\n *\n * The shape is structural, so an async-only schema is assignable to it; calling `safeParse`\n * on one returns a failed `ParseResult` (\"parse() cannot evaluate async checks\"). When the\n * schema's mode is not statically known, narrow with `InferSchemaMode` and use\n * `safeParseAsync` for async members.\n */\nexport type SyncParsable<T = unknown> = { safeParse(value: unknown): ParseResult<T> };\n\n/**\n * An issue path in either shape: spell-native `(string | number)[]` or the\n * Standard Schema `(PropertyKey | { key })[]` format.\n */\nexport type IssuePathSegment = PropertyKey | { readonly key: PropertyKey };\nexport type IssuePath = readonly IssuePathSegment[];\n\n/** Extracts a schema's parsing capability. */\nexport type InferSchemaMode<T> = T extends { readonly [schemaMode]: infer Mode extends SchemaMode } ? Mode : never;\n\n/** Selects async mode when any member of a schema collection is async. */\nexport type MergeSchemaModes<Modes extends SchemaMode> = 'async' extends Modes ? 'async' : 'sync';\n\nexport type InferOutput<T> =\n T extends Schema<infer Output, unknown, SchemaMode>\n ? Output\n : T extends { readonly [schemaOutput]: infer Output }\n ? Output\n : never;\ntype RawInferInput<T> = T extends { readonly [schemaInput]: infer Input } ? Input : unknown;\nexport type InferInput<T> = T extends AcceptsMissing ? RawInferInput<T> | undefined : RawInferInput<T>;\nexport type Infer<T> = InferOutput<T>;\n\n/** Re-exported for convenience — defined in messages.ts. */\nexport type { Messages } from './messages';\n"],"mappings":"AAEA,IAAa,EAAY,CACvB,OAAQ,SACR,eAAgB,iBAChB,aAAc,eACd,iBAAkB,mBAClB,aAAc,eACd,eAAgB,iBAChB,gBAAiB,kBACjB,aAAc,eACd,eAAgB,iBAChB,gBAAiB,kBACjB,oBAAqB,sBACrB,aAAc,eACd,eAAgB,iBAChB,aAAc,eACd,cAAe,gBACf,eAAgB,iBAChB,YAAa,cACb,gBAAiB,kBACjB,QAAS,UACT,UAAW,WACb"}
package/dist/types.d.ts CHANGED
@@ -371,6 +371,27 @@ export type SchemaSurface<Output = unknown, Input = Output, Mode extends SchemaM
371
371
  walk<R>(visitor: SchemaWalker<R>): R | null;
372
372
  };
373
373
  export type AnySchema<Output = unknown, Input = Output, Mode extends SchemaMode = SchemaMode> = SchemaSurface<Output, Input, Mode>;
374
+ /**
375
+ * The synchronous parse capability every sync schema carries. UI adapters that accept
376
+ * `AnySchema` cannot call `safeParse` on it (the surface type omits it); type adapter
377
+ * parameters against this instead.
378
+ *
379
+ * The shape is structural, so an async-only schema is assignable to it; calling `safeParse`
380
+ * on one returns a failed `ParseResult` ("parse() cannot evaluate async checks"). When the
381
+ * schema's mode is not statically known, narrow with `InferSchemaMode` and use
382
+ * `safeParseAsync` for async members.
383
+ */
384
+ export type SyncParsable<T = unknown> = {
385
+ safeParse(value: unknown): ParseResult<T>;
386
+ };
387
+ /**
388
+ * An issue path in either shape: spell-native `(string | number)[]` or the
389
+ * Standard Schema `(PropertyKey | { key })[]` format.
390
+ */
391
+ export type IssuePathSegment = PropertyKey | {
392
+ readonly key: PropertyKey;
393
+ };
394
+ export type IssuePath = readonly IssuePathSegment[];
374
395
  /** Extracts a schema's parsing capability. */
375
396
  export type InferSchemaMode<T> = T extends {
376
397
  readonly [schemaMode]: infer Mode extends SchemaMode;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["/* -------------------- Error Codes -------------------- */\n\nexport const ErrorCode = {\n custom: 'custom',\n invalid_base64: 'invalid_base64',\n invalid_date: 'invalid_date',\n invalid_duration: 'invalid_duration',\n invalid_enum: 'invalid_enum',\n invalid_finite: 'invalid_finite',\n invalid_integer: 'invalid_integer',\n invalid_keys: 'invalid_keys',\n invalid_length: 'invalid_length',\n invalid_literal: 'invalid_literal',\n invalid_multiple_of: 'invalid_multiple_of',\n invalid_safe: 'invalid_safe',\n invalid_string: 'invalid_string',\n invalid_type: 'invalid_type',\n invalid_union: 'invalid_union',\n invalid_unique: 'invalid_unique',\n invalid_url: 'invalid_url',\n invalid_variant: 'invalid_variant',\n too_big: 'too_big',\n too_small: 'too_small',\n} as const;\n\nexport type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];\n\n/* -------------------- Messages -------------------- */\n\n/**\n * A validation message — either a static string or a function that receives context and returns a string.\n * **Note:** Static string values are used verbatim with no interpolation. Use the function form\n * for context-dependent messages (e.g. `(ctx) => \\`Must be at least ${ctx.min}\\``).\n */\nexport type MessageFn<Ctx extends Record<string, unknown> = Record<string, unknown>> = string | ((ctx: Ctx) => string);\n\n/* -------------------- JSON Schema -------------------- */\n\n/** Plain JSON Schema object (targeting JSON Schema 2020-12). */\nexport type JsonSchema = Record<string, unknown>;\n\nexport interface StandardSchemaV1<Input = unknown, Output = Input> {\n readonly '~standard': StandardSchemaV1.Props<Input, Output>;\n}\n\nexport declare namespace StandardSchemaV1 {\n interface Props<Input = unknown, Output = Input> {\n readonly types?: Types<Input, Output> | undefined;\n readonly validate: (value: unknown, options?: Options | undefined) => Result<Output> | Promise<Result<Output>>;\n readonly vendor: string;\n readonly version: 1;\n }\n\n type Result<Output> = { readonly issues: readonly Issue[] } | { readonly issues?: undefined; readonly value: Output };\n\n interface Options {\n readonly libraryOptions?: Record<string, unknown> | undefined;\n }\n\n interface Issue {\n readonly message: string;\n readonly path?: readonly (PropertyKey | PathSegment)[] | undefined;\n }\n\n interface PathSegment {\n readonly key: PropertyKey;\n }\n\n interface Types<Input = unknown, Output = Input> {\n readonly input: Input;\n readonly output: Output;\n }\n\n type InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['input'];\n type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];\n}\n\n/* -------------------- Issues -------------------- */\n\n/**\n * A typed discriminated union of all issues emitted by built-in validators.\n *\n * Narrowing on `code` gives precise access to `params`:\n * ```ts\n * if (error.code === 'too_small') {\n * const min = error.params.min; // number | bigint | Date\n * }\n * ```\n */\nexport type Issue =\n | { code: 'custom'; message: string; params?: Record<string, unknown>; path: (string | number)[] }\n | { code: 'invalid_base64'; message: string; params: { format: string }; path: (string | number)[] }\n | { code: 'invalid_date'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_duration'; message: string; params: { format: string }; path: (string | number)[] }\n | { code: 'invalid_enum'; message: string; params: { values: readonly unknown[] }; path: (string | number)[] }\n | { code: 'invalid_finite'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_integer'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_keys'; message: string; params: { keys: string[] }; path: (string | number)[] }\n | { code: 'invalid_length'; message: string; params: { exact: number }; path: (string | number)[] }\n | { code: 'invalid_literal'; message: string; params: { expected: unknown }; path: (string | number)[] }\n | { code: 'invalid_multiple_of'; message: string; params: { step: number | bigint }; path: (string | number)[] }\n | { code: 'invalid_safe'; message: string; params?: undefined; path: (string | number)[] }\n | {\n code: 'invalid_string';\n message: string;\n params: { format?: string; includes?: string; pattern?: string; prefix?: string; suffix?: string };\n path: (string | number)[];\n }\n | { code: 'invalid_type'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_union'; message: string; params: { errors: Issue[][] }; path: (string | number)[] }\n | { code: 'invalid_unique'; message: string; params: { unique: true }; path: (string | number)[] }\n | { code: 'invalid_url'; message: string; params: { format: string }; path: (string | number)[] }\n | {\n code: 'invalid_variant';\n message: string;\n params: { discriminator: string; expected: string[] };\n path: (string | number)[];\n }\n | {\n code: 'too_big';\n message: string;\n params: { exclusive?: boolean; max: number | bigint | Date };\n path: (string | number)[];\n }\n | {\n code: 'too_small';\n message: string;\n params: { exclusive?: boolean; min: number | bigint | Date };\n path: (string | number)[];\n }\n | { code: string & {}; message: string; params?: Record<string, unknown>; path: (string | number)[] };\n\n/** ParseContext carries the active message set through the parse pipeline. */\nexport type ParseContext = {\n messages: import('./messages').Messages;\n};\n\n/**\n * Validator function. Receives the value after type-checking and the active ParseContext.\n * Returns an Issue array on failure, null on success, or a Promise for async validators.\n */\nexport type ValidateFn = (value: unknown, ctx?: ParseContext) => Issue[] | null | Promise<Issue[] | null>;\n\nexport type CheckContext = {\n addIssue: (issue: {\n code: string;\n message: string;\n params?: Record<string, unknown>;\n path?: (string | number)[];\n }) => void;\n};\n\n/**\n * Return type of a `check()` callback.\n * - `string` — validation failed; the string becomes the error message.\n * - `false` — validation failed with no message (use `addIssue` for a message).\n * - `true` / `null` / `void` — validation passed.\n *\n * The shorthand `condition || 'message'` works naturally:\n * ```ts\n * s.string().check((value) => value.length > 0 || 'Cannot be empty')\n * ```\n */\nexport type ValidateResult = boolean | null | undefined | string;\n\n/** Re-exported from errors for convenience — defined there. */\nexport type { FlatError, FlatErrorFirst } from './errors';\n\n/* -------------------- Schema Introspection -------------------- */\n\n/**\n * Visitor map for schema.walk(). Container handlers receive already-walked children (type R).\n * All handlers are optional — unmatched kinds return `null` unless an `unknown` fallback is provided.\n *\n * Each handler receives the concrete schema type for that kind, enabling access to\n * schema-specific properties (e.g. `ArraySchema.itemSchema`) without casting.\n */\nexport type SchemaWalker<R> = {\n array?: <T extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/array').ArraySchema<T, Mode>,\n item: R | null,\n ) => R;\n bigint?: <Input, Mode extends SchemaMode>(schema: import('./schemas/bigint').BigIntSchema<Input, Mode>) => R;\n boolean?: <Input, Mode extends SchemaMode>(schema: import('./schemas/boolean').BooleanSchema<Input, Mode>) => R;\n date?: <Input, Mode extends SchemaMode>(schema: import('./schemas/date').DateSchema<Input, Mode>) => R;\n enum?: <T extends import('./schemas/enum').EnumValues, Mode extends SchemaMode>(\n schema: import('./schemas/enum').EnumSchema<T, Mode>,\n ) => R;\n instanceof?: <T, Mode extends SchemaMode>(schema: import('./schemas/instanceof').InstanceOfSchema<T, Mode>) => R;\n intersect?: <T extends readonly AnySchema[], Mode extends SchemaMode>(\n schema: import('./schemas/intersect').IntersectSchema<T, Mode>,\n branches: (R | null)[],\n ) => R;\n lazy?: <T, Input, Mode extends SchemaMode>(schema: import('./schemas/lazy').LazySchema<T, Input, Mode>) => R;\n literal?: <T extends string | number | boolean | null | undefined, Mode extends SchemaMode>(\n schema: import('./schemas/literal').LiteralSchema<T, Mode>,\n ) => R;\n map?: <K extends AnySchema, V extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/map').MapSchema<K, V, Mode>,\n key: R | null,\n value: R | null,\n ) => R;\n never?: <Mode extends SchemaMode>(schema: import('./schemas/never').NeverSchema<Mode>) => R;\n number?: <Input, Mode extends SchemaMode>(schema: import('./schemas/number').NumberSchema<Input, Mode>) => R;\n object?: <T extends import('./schemas/object').ObjectShape, Mode extends SchemaMode>(\n schema: import('./schemas/object').ObjectSchema<T, Mode>,\n fields: Record<string, R | null>,\n ) => R;\n pipe?: <To extends AnySchema, From extends AnySchema, Mode extends SchemaMode>(\n schema: import('./core').PipeSchema<To, From, Mode>,\n from: R | null,\n to: R | null,\n ) => R;\n record?: <K extends AnySchema, V extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/record').RecordSchema<K, V, Mode>,\n key: R | null,\n value: R | null,\n ) => R;\n set?: <T extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/set').SetSchema<T, Mode>,\n item: R | null,\n ) => R;\n string?: <Input, Mode extends SchemaMode>(schema: import('./schemas/string').StringSchema<Input, Mode>) => R;\n tuple?: <T extends import('./schemas/tuple').TupleSchemas, Rest extends AnySchema | null, Mode extends SchemaMode>(\n schema: import('./schemas/tuple').TupleSchema<T, Rest, Mode>,\n items: (R | null)[],\n rest: R | null,\n ) => R;\n union?: <T extends readonly AnySchema[], Mode extends SchemaMode>(\n schema: import('./schemas/union').UnionSchema<T, Mode>,\n branches: (R | null)[],\n ) => R;\n unknown?: (schema: AnySchema) => R;\n variant?: <\n K extends string,\n M extends Record<string, import('./schemas/object').ObjectSchema<any, any>>,\n Mode extends SchemaMode,\n >(\n schema: import('./schemas/variant').VariantSchema<K, M, Mode>,\n branches: Record<string, R | null>,\n ) => R;\n};\n\ntype BaseDescriptor = {\n description?: string;\n isNullable?: boolean;\n isOptional?: boolean;\n};\n\nexport type SchemaDescriptor = BaseDescriptor &\n (\n | { kind: 'unknown' | 'never' | 'boolean' | 'bigint' | 'date' | 'lazy' }\n | { className: string; kind: 'instanceof' }\n | {\n contentEncoding?: string;\n format?: string;\n kind: 'string';\n maxLength?: number;\n minLength?: number;\n pattern?: string | null;\n }\n | {\n exclusiveMaximum?: number;\n exclusiveMinimum?: number;\n kind: 'number';\n maximum?: number;\n minimum?: number;\n multipleOf?: number;\n typeHint?: 'integer';\n }\n | { kind: 'literal'; value: string | number | boolean | null | undefined }\n | { kind: 'enum'; values: readonly (string | number)[] }\n | { items: SchemaDescriptor; kind: 'array'; maxItems?: number; minItems?: number }\n | { items: SchemaDescriptor[]; kind: 'tuple'; rest: SchemaDescriptor | null }\n | { fields: Record<string, SchemaDescriptor>; kind: 'object'; strict: boolean }\n | { key: SchemaDescriptor; kind: 'record'; value: SchemaDescriptor }\n | { items: SchemaDescriptor; kind: 'set' }\n | { key: SchemaDescriptor; kind: 'map'; value: SchemaDescriptor }\n | { branches: SchemaDescriptor[]; kind: 'union' | 'intersect' }\n | { branches: Record<string, SchemaDescriptor>; discriminator: string; kind: 'variant' }\n | { from: SchemaDescriptor; kind: 'pipe'; to: SchemaDescriptor }\n );\n\n/* -------------------- ParseResult (forward-references SpellValidationError) -------------------- */\n\nimport type { Schema } from './core';\n// Import only the type to avoid circular dependencies\nimport type { SpellValidationError } from './errors';\n\nexport type ParseResult<T> = { data: T; success: true } | { error: SpellValidationError; success: false };\n\n/* -------------------- Schema execution mode / Infer (forward-references Schema) -------------------- */\n\n/** @internal */\nexport const schemaInput = Symbol('spell.schemaInput');\n/** Public structural marker for a schema's parsing capability. */\nexport const schemaMode = Symbol('spell.schemaMode');\n/** @internal */\nexport const schemaOutput = Symbol('spell.schemaOutput');\nexport declare const schemaAcceptsMissing: unique symbol;\nexport type AcceptsMissing = { readonly [schemaAcceptsMissing]: true };\n\n/** Whether a schema can be parsed synchronously or requires asynchronous parsing. */\nexport type SchemaMode = 'async' | 'sync';\n\n/** A structural schema surface accepted by composition helpers. */\nexport type SchemaSurface<Output = unknown, Input = Output, Mode extends SchemaMode = SchemaMode> = {\n /** @internal */\n _parseFullAsync(value: unknown, ctx?: ParseContext): Promise<{ data: unknown; issues: Issue[] }>;\n /** @internal */\n _parseFullSync(value: unknown, ctx?: ParseContext): { data: unknown; issues: Issue[] };\n safeParseAsync(value: unknown, ctx?: ParseContext): Promise<ParseResult<Output>>;\n definition(): SchemaDescriptor;\n isOptional: boolean;\n optional(): SchemaSurface<Output | undefined, Input | undefined, Mode>;\n required(): SchemaSurface<Exclude<Output, undefined>, Exclude<Input, undefined>, Mode>;\n readonly [schemaInput]: Input;\n readonly [schemaMode]: Mode;\n readonly [schemaOutput]: Output;\n walk<R>(visitor: SchemaWalker<R>): R | null;\n};\n\nexport type AnySchema<Output = unknown, Input = Output, Mode extends SchemaMode = SchemaMode> = SchemaSurface<\n Output,\n Input,\n Mode\n>;\n\n/** Extracts a schema's parsing capability. */\nexport type InferSchemaMode<T> = T extends { readonly [schemaMode]: infer Mode extends SchemaMode } ? Mode : never;\n\n/** Selects async mode when any member of a schema collection is async. */\nexport type MergeSchemaModes<Modes extends SchemaMode> = 'async' extends Modes ? 'async' : 'sync';\n\nexport type InferOutput<T> =\n T extends Schema<infer Output, unknown, SchemaMode>\n ? Output\n : T extends { readonly [schemaOutput]: infer Output }\n ? Output\n : never;\ntype RawInferInput<T> = T extends { readonly [schemaInput]: infer Input } ? Input : unknown;\nexport type InferInput<T> = T extends AcceptsMissing ? RawInferInput<T> | undefined : RawInferInput<T>;\nexport type Infer<T> = InferOutput<T>;\n\n/** Re-exported for convenience — defined in messages.ts. */\nexport type { Messages } from './messages';\n"],"mappings":"AAEA,IAAa,EAAY,CACvB,OAAQ,SACR,eAAgB,iBAChB,aAAc,eACd,iBAAkB,mBAClB,aAAc,eACd,eAAgB,iBAChB,gBAAiB,kBACjB,aAAc,eACd,eAAgB,iBAChB,gBAAiB,kBACjB,oBAAqB,sBACrB,aAAc,eACd,eAAgB,iBAChB,aAAc,eACd,cAAe,gBACf,eAAgB,iBAChB,YAAa,cACb,gBAAiB,kBACjB,QAAS,UACT,UAAW,WACb"}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["/* -------------------- Error Codes -------------------- */\n\nexport const ErrorCode = {\n custom: 'custom',\n invalid_base64: 'invalid_base64',\n invalid_date: 'invalid_date',\n invalid_duration: 'invalid_duration',\n invalid_enum: 'invalid_enum',\n invalid_finite: 'invalid_finite',\n invalid_integer: 'invalid_integer',\n invalid_keys: 'invalid_keys',\n invalid_length: 'invalid_length',\n invalid_literal: 'invalid_literal',\n invalid_multiple_of: 'invalid_multiple_of',\n invalid_safe: 'invalid_safe',\n invalid_string: 'invalid_string',\n invalid_type: 'invalid_type',\n invalid_union: 'invalid_union',\n invalid_unique: 'invalid_unique',\n invalid_url: 'invalid_url',\n invalid_variant: 'invalid_variant',\n too_big: 'too_big',\n too_small: 'too_small',\n} as const;\n\nexport type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];\n\n/* -------------------- Messages -------------------- */\n\n/**\n * A validation message — either a static string or a function that receives context and returns a string.\n * **Note:** Static string values are used verbatim with no interpolation. Use the function form\n * for context-dependent messages (e.g. `(ctx) => \\`Must be at least ${ctx.min}\\``).\n */\nexport type MessageFn<Ctx extends Record<string, unknown> = Record<string, unknown>> = string | ((ctx: Ctx) => string);\n\n/* -------------------- JSON Schema -------------------- */\n\n/** Plain JSON Schema object (targeting JSON Schema 2020-12). */\nexport type JsonSchema = Record<string, unknown>;\n\nexport interface StandardSchemaV1<Input = unknown, Output = Input> {\n readonly '~standard': StandardSchemaV1.Props<Input, Output>;\n}\n\nexport declare namespace StandardSchemaV1 {\n interface Props<Input = unknown, Output = Input> {\n readonly types?: Types<Input, Output> | undefined;\n readonly validate: (value: unknown, options?: Options | undefined) => Result<Output> | Promise<Result<Output>>;\n readonly vendor: string;\n readonly version: 1;\n }\n\n type Result<Output> = { readonly issues: readonly Issue[] } | { readonly issues?: undefined; readonly value: Output };\n\n interface Options {\n readonly libraryOptions?: Record<string, unknown> | undefined;\n }\n\n interface Issue {\n readonly message: string;\n readonly path?: readonly (PropertyKey | PathSegment)[] | undefined;\n }\n\n interface PathSegment {\n readonly key: PropertyKey;\n }\n\n interface Types<Input = unknown, Output = Input> {\n readonly input: Input;\n readonly output: Output;\n }\n\n type InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['input'];\n type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];\n}\n\n/* -------------------- Issues -------------------- */\n\n/**\n * A typed discriminated union of all issues emitted by built-in validators.\n *\n * Narrowing on `code` gives precise access to `params`:\n * ```ts\n * if (error.code === 'too_small') {\n * const min = error.params.min; // number | bigint | Date\n * }\n * ```\n */\nexport type Issue =\n | { code: 'custom'; message: string; params?: Record<string, unknown>; path: (string | number)[] }\n | { code: 'invalid_base64'; message: string; params: { format: string }; path: (string | number)[] }\n | { code: 'invalid_date'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_duration'; message: string; params: { format: string }; path: (string | number)[] }\n | { code: 'invalid_enum'; message: string; params: { values: readonly unknown[] }; path: (string | number)[] }\n | { code: 'invalid_finite'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_integer'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_keys'; message: string; params: { keys: string[] }; path: (string | number)[] }\n | { code: 'invalid_length'; message: string; params: { exact: number }; path: (string | number)[] }\n | { code: 'invalid_literal'; message: string; params: { expected: unknown }; path: (string | number)[] }\n | { code: 'invalid_multiple_of'; message: string; params: { step: number | bigint }; path: (string | number)[] }\n | { code: 'invalid_safe'; message: string; params?: undefined; path: (string | number)[] }\n | {\n code: 'invalid_string';\n message: string;\n params: { format?: string; includes?: string; pattern?: string; prefix?: string; suffix?: string };\n path: (string | number)[];\n }\n | { code: 'invalid_type'; message: string; params?: undefined; path: (string | number)[] }\n | { code: 'invalid_union'; message: string; params: { errors: Issue[][] }; path: (string | number)[] }\n | { code: 'invalid_unique'; message: string; params: { unique: true }; path: (string | number)[] }\n | { code: 'invalid_url'; message: string; params: { format: string }; path: (string | number)[] }\n | {\n code: 'invalid_variant';\n message: string;\n params: { discriminator: string; expected: string[] };\n path: (string | number)[];\n }\n | {\n code: 'too_big';\n message: string;\n params: { exclusive?: boolean; max: number | bigint | Date };\n path: (string | number)[];\n }\n | {\n code: 'too_small';\n message: string;\n params: { exclusive?: boolean; min: number | bigint | Date };\n path: (string | number)[];\n }\n | { code: string & {}; message: string; params?: Record<string, unknown>; path: (string | number)[] };\n\n/** ParseContext carries the active message set through the parse pipeline. */\nexport type ParseContext = {\n messages: import('./messages').Messages;\n};\n\n/**\n * Validator function. Receives the value after type-checking and the active ParseContext.\n * Returns an Issue array on failure, null on success, or a Promise for async validators.\n */\nexport type ValidateFn = (value: unknown, ctx?: ParseContext) => Issue[] | null | Promise<Issue[] | null>;\n\nexport type CheckContext = {\n addIssue: (issue: {\n code: string;\n message: string;\n params?: Record<string, unknown>;\n path?: (string | number)[];\n }) => void;\n};\n\n/**\n * Return type of a `check()` callback.\n * - `string` — validation failed; the string becomes the error message.\n * - `false` — validation failed with no message (use `addIssue` for a message).\n * - `true` / `null` / `void` — validation passed.\n *\n * The shorthand `condition || 'message'` works naturally:\n * ```ts\n * s.string().check((value) => value.length > 0 || 'Cannot be empty')\n * ```\n */\nexport type ValidateResult = boolean | null | undefined | string;\n\n/** Re-exported from errors for convenience — defined there. */\nexport type { FlatError, FlatErrorFirst } from './errors';\n\n/* -------------------- Schema Introspection -------------------- */\n\n/**\n * Visitor map for schema.walk(). Container handlers receive already-walked children (type R).\n * All handlers are optional — unmatched kinds return `null` unless an `unknown` fallback is provided.\n *\n * Each handler receives the concrete schema type for that kind, enabling access to\n * schema-specific properties (e.g. `ArraySchema.itemSchema`) without casting.\n */\nexport type SchemaWalker<R> = {\n array?: <T extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/array').ArraySchema<T, Mode>,\n item: R | null,\n ) => R;\n bigint?: <Input, Mode extends SchemaMode>(schema: import('./schemas/bigint').BigIntSchema<Input, Mode>) => R;\n boolean?: <Input, Mode extends SchemaMode>(schema: import('./schemas/boolean').BooleanSchema<Input, Mode>) => R;\n date?: <Input, Mode extends SchemaMode>(schema: import('./schemas/date').DateSchema<Input, Mode>) => R;\n enum?: <T extends import('./schemas/enum').EnumValues, Mode extends SchemaMode>(\n schema: import('./schemas/enum').EnumSchema<T, Mode>,\n ) => R;\n instanceof?: <T, Mode extends SchemaMode>(schema: import('./schemas/instanceof').InstanceOfSchema<T, Mode>) => R;\n intersect?: <T extends readonly AnySchema[], Mode extends SchemaMode>(\n schema: import('./schemas/intersect').IntersectSchema<T, Mode>,\n branches: (R | null)[],\n ) => R;\n lazy?: <T, Input, Mode extends SchemaMode>(schema: import('./schemas/lazy').LazySchema<T, Input, Mode>) => R;\n literal?: <T extends string | number | boolean | null | undefined, Mode extends SchemaMode>(\n schema: import('./schemas/literal').LiteralSchema<T, Mode>,\n ) => R;\n map?: <K extends AnySchema, V extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/map').MapSchema<K, V, Mode>,\n key: R | null,\n value: R | null,\n ) => R;\n never?: <Mode extends SchemaMode>(schema: import('./schemas/never').NeverSchema<Mode>) => R;\n number?: <Input, Mode extends SchemaMode>(schema: import('./schemas/number').NumberSchema<Input, Mode>) => R;\n object?: <T extends import('./schemas/object').ObjectShape, Mode extends SchemaMode>(\n schema: import('./schemas/object').ObjectSchema<T, Mode>,\n fields: Record<string, R | null>,\n ) => R;\n pipe?: <To extends AnySchema, From extends AnySchema, Mode extends SchemaMode>(\n schema: import('./core').PipeSchema<To, From, Mode>,\n from: R | null,\n to: R | null,\n ) => R;\n record?: <K extends AnySchema, V extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/record').RecordSchema<K, V, Mode>,\n key: R | null,\n value: R | null,\n ) => R;\n set?: <T extends AnySchema, Mode extends SchemaMode>(\n schema: import('./schemas/set').SetSchema<T, Mode>,\n item: R | null,\n ) => R;\n string?: <Input, Mode extends SchemaMode>(schema: import('./schemas/string').StringSchema<Input, Mode>) => R;\n tuple?: <T extends import('./schemas/tuple').TupleSchemas, Rest extends AnySchema | null, Mode extends SchemaMode>(\n schema: import('./schemas/tuple').TupleSchema<T, Rest, Mode>,\n items: (R | null)[],\n rest: R | null,\n ) => R;\n union?: <T extends readonly AnySchema[], Mode extends SchemaMode>(\n schema: import('./schemas/union').UnionSchema<T, Mode>,\n branches: (R | null)[],\n ) => R;\n unknown?: (schema: AnySchema) => R;\n variant?: <\n K extends string,\n M extends Record<string, import('./schemas/object').ObjectSchema<any, any>>,\n Mode extends SchemaMode,\n >(\n schema: import('./schemas/variant').VariantSchema<K, M, Mode>,\n branches: Record<string, R | null>,\n ) => R;\n};\n\ntype BaseDescriptor = {\n description?: string;\n isNullable?: boolean;\n isOptional?: boolean;\n};\n\nexport type SchemaDescriptor = BaseDescriptor &\n (\n | { kind: 'unknown' | 'never' | 'boolean' | 'bigint' | 'date' | 'lazy' }\n | { className: string; kind: 'instanceof' }\n | {\n contentEncoding?: string;\n format?: string;\n kind: 'string';\n maxLength?: number;\n minLength?: number;\n pattern?: string | null;\n }\n | {\n exclusiveMaximum?: number;\n exclusiveMinimum?: number;\n kind: 'number';\n maximum?: number;\n minimum?: number;\n multipleOf?: number;\n typeHint?: 'integer';\n }\n | { kind: 'literal'; value: string | number | boolean | null | undefined }\n | { kind: 'enum'; values: readonly (string | number)[] }\n | { items: SchemaDescriptor; kind: 'array'; maxItems?: number; minItems?: number }\n | { items: SchemaDescriptor[]; kind: 'tuple'; rest: SchemaDescriptor | null }\n | { fields: Record<string, SchemaDescriptor>; kind: 'object'; strict: boolean }\n | { key: SchemaDescriptor; kind: 'record'; value: SchemaDescriptor }\n | { items: SchemaDescriptor; kind: 'set' }\n | { key: SchemaDescriptor; kind: 'map'; value: SchemaDescriptor }\n | { branches: SchemaDescriptor[]; kind: 'union' | 'intersect' }\n | { branches: Record<string, SchemaDescriptor>; discriminator: string; kind: 'variant' }\n | { from: SchemaDescriptor; kind: 'pipe'; to: SchemaDescriptor }\n );\n\n/* -------------------- ParseResult (forward-references SpellValidationError) -------------------- */\n\nimport type { Schema } from './core';\n// Import only the type to avoid circular dependencies\nimport type { SpellValidationError } from './errors';\n\nexport type ParseResult<T> = { data: T; success: true } | { error: SpellValidationError; success: false };\n\n/* -------------------- Schema execution mode / Infer (forward-references Schema) -------------------- */\n\n/** @internal */\nexport const schemaInput = Symbol('spell.schemaInput');\n/** Public structural marker for a schema's parsing capability. */\nexport const schemaMode = Symbol('spell.schemaMode');\n/** @internal */\nexport const schemaOutput = Symbol('spell.schemaOutput');\nexport declare const schemaAcceptsMissing: unique symbol;\nexport type AcceptsMissing = { readonly [schemaAcceptsMissing]: true };\n\n/** Whether a schema can be parsed synchronously or requires asynchronous parsing. */\nexport type SchemaMode = 'async' | 'sync';\n\n/** A structural schema surface accepted by composition helpers. */\nexport type SchemaSurface<Output = unknown, Input = Output, Mode extends SchemaMode = SchemaMode> = {\n /** @internal */\n _parseFullAsync(value: unknown, ctx?: ParseContext): Promise<{ data: unknown; issues: Issue[] }>;\n /** @internal */\n _parseFullSync(value: unknown, ctx?: ParseContext): { data: unknown; issues: Issue[] };\n safeParseAsync(value: unknown, ctx?: ParseContext): Promise<ParseResult<Output>>;\n definition(): SchemaDescriptor;\n isOptional: boolean;\n optional(): SchemaSurface<Output | undefined, Input | undefined, Mode>;\n required(): SchemaSurface<Exclude<Output, undefined>, Exclude<Input, undefined>, Mode>;\n readonly [schemaInput]: Input;\n readonly [schemaMode]: Mode;\n readonly [schemaOutput]: Output;\n walk<R>(visitor: SchemaWalker<R>): R | null;\n};\n\nexport type AnySchema<Output = unknown, Input = Output, Mode extends SchemaMode = SchemaMode> = SchemaSurface<\n Output,\n Input,\n Mode\n>;\n\n/**\n * The synchronous parse capability every sync schema carries. UI adapters that accept\n * `AnySchema` cannot call `safeParse` on it (the surface type omits it); type adapter\n * parameters against this instead.\n *\n * The shape is structural, so an async-only schema is assignable to it; calling `safeParse`\n * on one returns a failed `ParseResult` (\"parse() cannot evaluate async checks\"). When the\n * schema's mode is not statically known, narrow with `InferSchemaMode` and use\n * `safeParseAsync` for async members.\n */\nexport type SyncParsable<T = unknown> = { safeParse(value: unknown): ParseResult<T> };\n\n/**\n * An issue path in either shape: spell-native `(string | number)[]` or the\n * Standard Schema `(PropertyKey | { key })[]` format.\n */\nexport type IssuePathSegment = PropertyKey | { readonly key: PropertyKey };\nexport type IssuePath = readonly IssuePathSegment[];\n\n/** Extracts a schema's parsing capability. */\nexport type InferSchemaMode<T> = T extends { readonly [schemaMode]: infer Mode extends SchemaMode } ? Mode : never;\n\n/** Selects async mode when any member of a schema collection is async. */\nexport type MergeSchemaModes<Modes extends SchemaMode> = 'async' extends Modes ? 'async' : 'sync';\n\nexport type InferOutput<T> =\n T extends Schema<infer Output, unknown, SchemaMode>\n ? Output\n : T extends { readonly [schemaOutput]: infer Output }\n ? Output\n : never;\ntype RawInferInput<T> = T extends { readonly [schemaInput]: infer Input } ? Input : unknown;\nexport type InferInput<T> = T extends AcceptsMissing ? RawInferInput<T> | undefined : RawInferInput<T>;\nexport type Infer<T> = InferOutput<T>;\n\n/** Re-exported for convenience — defined in messages.ts. */\nexport type { Messages } from './messages';\n"],"mappings":"AAEA,IAAa,EAAY,CACvB,OAAQ,SACR,eAAgB,iBAChB,aAAc,eACd,iBAAkB,mBAClB,aAAc,eACd,eAAgB,iBAChB,gBAAiB,kBACjB,aAAc,eACd,eAAgB,iBAChB,gBAAiB,kBACjB,oBAAqB,sBACrB,aAAc,eACd,eAAgB,iBAChB,aAAc,eACd,cAAe,gBACf,eAAgB,iBAChB,YAAa,cACb,gBAAiB,kBACjB,QAAS,UACT,UAAW,WACb"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vielzeug/spell",
3
- "version": "3.0.0",
4
- "description": "Zero-dependency schema validation with coercion, async checks, and Standard Schema interoperability",
3
+ "version": "3.1.0",
4
+ "description": "Zero-dependency schema validation with Standard Schema interoperability",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/helmuthdu/vielzeug",