Upgrading valibot 0.37 to 0.38
Review needed0.37.0 → 0.38.0Changed2Fixed2
Review neededUpgrade verdict
2 behavior changes.
In plain terms
- Change expects and expected property by enclosing combined values in parentheses.
- Change question mark handling for optional, optionalAsync, nullish and nullishAsync schemas in objects.
Must act Nothing to change
No breaking, platform, security or deprecated items in this range.
Nothing in this upgrade needs a code or configuration change.
API changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- removed:
method BaseSchema._run(dataset: Dataset<unknown, never>, config: Config<TIssue>): Dataset<TOutput, TIssue> - removed:
method BaseSchemaAsync._run(dataset: Dataset<unknown, never>, config: Config<TIssue>): Promise<Dataset<TOutput, TIssue>> - removed:
method BaseTransformation._run(dataset: TypedDataset<TInput, never>, config: Config<TIssue>): Dataset<TOutput, TIssue> - removed:
method BaseTransformationAsync._run(dataset: TypedDataset<TInput, never>, config: Config<TIssue>): Promise<Dataset<TOutput, TIssue>> - removed:
method BaseValidation._run(dataset: Dataset<TInput, BaseIssue<unknown>>, config: Config<TIssue>): Dataset<TOutput, BaseIssue<unknown> | TIssue> - removed:
method BaseValidationAsync._run(dataset: Dataset<TInput, BaseIssue<unknown>>, config: Config<TIssue>): Promise<Dataset<TOutput, BaseIssue<unknown> | TIssue>> - removed:
type QuestionMarkSchema = NullishSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown> | OptionalSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown> | LazySche… - removed:
type QuestionMarkSchemaAsync = NullishSchemaAsync<BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, unknown> | OptionalSchemaAsync<Bas… - changed:
interface GenericMetadata<TInput = unknown> extends BaseMetadata<TInput> → interface GenericMetadata<TInput = any> extends BaseMetadata<TInput> - changed:
interface GenericTransformation<TInput = unknown, TOutput = TInput, TIssue extends BaseIssue<unknown> = BaseIssue<unknown>> extends BaseTransformation<TInput, TOutput, TIssue> → interface GenericTransformation<TInput = any, TOutput = TInput, TIssue extends BaseIssue<unknown> = BaseIssue<unknown>> extends BaseTransformation<TInput, TOutput, TIssue> - changed:
interface GenericTransformationAsync<TInput = unknown, TOutput = TInput, TIssue extends BaseIssue<unknown> = BaseIssue<unknown>> extends BaseTransformationAsync<TInput, TOutput, TIssue> → interface GenericTransformationAsync<TInput = any, TOutput = TInput, TIssue extends BaseIssue<unknown> = BaseIssue<unknown>> extends BaseTransformationAsync<TInput, TOutput, TIssue> - changed:
interface GenericValidation<TInput = unknown, TOutput = TInput, TIssue extends BaseIssue<unknown> = BaseIssue<unknown>> extends BaseValidation<TInput, TOutput, TIssue> → interface GenericValidation<TInput = any, TOutput = TInput, TIssue extends BaseIssue<unknown> = BaseIssue<unknown>> extends BaseValidation<TInput, TOutput, TIssue> - changed:
interface GenericValidationAsync<TInput = unknown, TOutput = TInput, TIssue extends BaseIssue<unknown> = BaseIssue<unknown>> extends BaseValidationAsync<TInput, TOutput, TIssue> → interface GenericValidationAsync<TInput = any, TOutput = TInput, TIssue extends BaseIssue<unknown> = BaseIssue<unknown>> extends BaseValidationAsync<TInput, TOutput, TIssue> - changed:
readonly property BaseMetadata.reference: (...args: any[]) => BaseMetadata<unknown> → readonly property BaseMetadata.reference: (...args: any[]) => BaseMetadata<TInput> - changed:
readonly property BaseTransformation.reference: (...args: any[]) => BaseTransformation<unknown, unknown, BaseIssue<unknown>> → readonly property BaseTransformation.reference: (...args: any[]) => BaseTransformation<TInput, TOutput, TIssue> - changed:
readonly property BaseTransformationAsync.reference: (...args: any[]) => BaseTransformation<unknown, unknown, BaseIssue<unknown>> | BaseTransformationAsync<unknown, unknown, BaseIssue<unknown>> → readonly property BaseTransformationAsync.reference: (...args: any[]) => BaseTransformation<TInput, TOutput, TIssue> | BaseTransformationAsync<TInput, TOutput, TIssue> - changed:
readonly property BaseValidation.reference: (...args: any[]) => BaseValidation<unknown, unknown, BaseIssue<unknown>> → readonly property BaseValidation.reference: (...args: any[]) => BaseValidation<TInput, TOutput, TIssue> - changed:
readonly property BaseValidationAsync.reference: (...args: any[]) => BaseValidation<unknown, unknown, BaseIssue<unknown>> | BaseValidationAsync<unknown, unknown, BaseIssue<unknown>> → readonly property BaseValidationAsync.reference: (...args: any[]) => BaseValidation<TInput, TOutput, TIssue> | BaseValidationAsync<TInput, TOutput, TIssue> - changed:
readonly property NonNullishIssue.expected: '!null & !undefined' → readonly property NonNullishIssue.expected: '(!null & !undefined)' - changed:
readonly property NonNullishSchema.expects: '!null & !undefined' → readonly property NonNullishSchema.expects: '(!null & !undefined)' - changed:
readonly property NonNullishSchemaAsync.expects: '!null & !undefined' → readonly property NonNullishSchemaAsync.expects: '(!null & !undefined)' - changed:
readonly property NullableSchema.expects: `${TWrapped['expects']} | null` → readonly property NullableSchema.expects: `(${TWrapped['expects']} | null)` - changed:
readonly property NullableSchemaAsync.expects: `${TWrapped['expects']} | null` → readonly property NullableSchemaAsync.expects: `(${TWrapped['expects']} | null)` - changed:
readonly property NullishSchema.expects: `${TWrapped['expects']} | null | undefined` → readonly property NullishSchema.expects: `(${TWrapped['expects']} | null | undefined)` - changed:
readonly property NullishSchemaAsync.expects: `${TWrapped['expects']} | null | undefined` → readonly property NullishSchemaAsync.expects: `(${TWrapped['expects']} | null | undefined)` - changed:
readonly property OptionalSchema.expects: `${TWrapped['expects']} | undefined` → readonly property OptionalSchema.expects: `(${TWrapped['expects']} | undefined)` - changed:
readonly property OptionalSchemaAsync.expects: `${TWrapped['expects']} | undefined` → readonly property OptionalSchemaAsync.expects: `(${TWrapped['expects']} | undefined)` - changed:
type InferInput<TItem extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> | BaseValidation<unknown, unknown, BaseIssue<unknown>> | BaseValidationAsync<unknown, unknown, BaseIssue<unknown>> | BaseTransformation<unknown, unknown, BaseIssue<unknown>> | BaseTransformationAsync<unknown, unknown, BaseIssue<unknown>> | BaseMetadata<unknown>> = NonNullable<TItem['_types']>['input'] → type InferInput<TItem extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> | BaseValidation<any, unknown, BaseIssue<unknown>> | BaseValidationAsync<any, unknown, BaseIssue<unknown>> | BaseTransformation<any, unknown, BaseIssue<unknown>> | BaseTransformationAsync<any, unknown, BaseIssue<unknown>> | BaseMetadata<any>> = NonNullable<TItem['_types']>['input'] - changed:
type InferIssue<TItem extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> | BaseValidation<unknown, unknown, BaseIssue<unknown>> | BaseValidationAsync<unknown, unknown, BaseIssue<unknown>> | BaseTransformation<unknown, unknown, BaseIssue<unknown>> | BaseTransformationAsync<unknown, unknown, BaseIssue<unknown>> | BaseMetadata<unknown>> = NonNullable<TItem['_types']>['issue'] → type InferIssue<TItem extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> | BaseValidation<any, unknown, BaseIssue<unknown>> | BaseValidationAsync<any, unknown, BaseIssue<unknown>> | BaseTransformation<any, unknown, BaseIssue<unknown>> | BaseTransformationAsync<any, unknown, BaseIssue<unknown>> | BaseMetadata<any>> = NonNullable<TItem['_types']>['issue'] - changed:
type InferObjectInput<TEntries extends ObjectEntries | ObjectEntriesAsync> = Prettify<WithQuestionMarks<TEntries, InferEntriesInput<TEntries>>> → type InferObjectInput<TEntries extends ObjectEntries | ObjectEntriesAsync> = Prettify<InputWithQuestionMarks<TEntries, InferEntriesInput<TEntries>>> - changed:
type InferObjectOutput<TEntries extends ObjectEntries | ObjectEntriesAsync> = Prettify<WithReadonly<TEntries, WithQuestionMarks<TEntries, InferEntriesOutput<TEntries>>>> → type InferObjectOutput<TEntries extends ObjectEntries | ObjectEntriesAsync> = Prettify<OutputWithReadonly<TEntries, OutputWithQuestionMarks<TEntries, InferEntriesOutput<TEntries>>>> - changed:
type InferOutput<TItem extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> | BaseValidation<unknown, unknown, BaseIssue<unknown>> | BaseValidationAsync<unknown, unknown, BaseIssue<unknown>> | BaseTransformation<unknown, unknown, BaseIssue<unknown>> | BaseTransformationAsync<unknown, unknown, BaseIssue<unknown>> | BaseMetadata<unknown>> = NonNullable<TItem['_types']>['output'] → type InferOutput<TItem extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>> | BaseValidation<any, unknown, BaseIssue<unknown>> | BaseValidationAsync<any, unknown, BaseIssue<unknown>> | BaseTransformation<any, unknown, BaseIssue<unknown>> | BaseTransformationAsync<any, unknown, BaseIssue<unknown>> | BaseMetadata<any>> = NonNullable<TItem['_types']>['output'] - changed:
type InferRecordInput<TKey extends BaseSchema<string, string | number | symbol, BaseIssue<unknown>> | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>, TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>> = Prettify<WithQuestionMarks$1<Record<InferInput<TKey>, InferInput<TValue>>>> → type InferRecordInput<TKey extends BaseSchema<string, string | number | symbol, BaseIssue<unknown>> | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>, TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>> = Prettify<WithQuestionMarks<Record<InferInput<TKey>, InferInput<TValue>>>> - changed:
type InferRecordOutput<TKey extends BaseSchema<string, string | number | symbol, BaseIssue<unknown>> | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>, TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>> = Prettify<WithReadonly$1<TValue, WithQuestionMarks$1<Record<InferOutput<TKey>, InferOutput<TValue>>>>> → type InferRecordOutput<TKey extends BaseSchema<string, string | number | symbol, BaseIssue<unknown>> | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>, TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>> = Prettify<WithReadonly<TValue, WithQuestionMarks<Record<InferOutput<TKey>, InferOutput<TValue>>>>> - changed:
type SchemaWithFallbackAsync<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, TFallback extends FallbackAsync<TSchema>> = Omit<TSchema, 'async' | '_run'> & { readonly fallback: TFallback; readonly async: true; _run(dataset: Dataset<unknown, never>, config: Config<InferIssue<TSchem… → type SchemaWithFallbackAsync<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>, TFallback extends FallbackAsync<TSchema>> = Omit<TSchema, 'async' | '_run'> & { readonly fallback: TFallback; readonly async: true; readonly _run: (dataset: Dataset<unknown, never>, config: Config<InferI… - changed:
type SchemaWithPipe<TPipe extends [BaseSchema<unknown, unknown, BaseIssue<unknown>>, ...PipeItem<unknown, unknown, BaseIssue<unknown>>[]]> = Omit<FirstTupleItem<TPipe>, '_run' | '_types'> & { readonly pipe: TPipe; _run(dataset: Dataset<unknown, never>, config: Config<InferIssue<FirstTupleItem<TPipe>… → type SchemaWithPipe<TPipe extends [BaseSchema<unknown, unknown, BaseIssue<unknown>>, ...PipeItem<any, unknown, BaseIssue<unknown>>[]]> = Omit<FirstTupleItem<TPipe>, '_run' | '_types'> & { readonly pipe: TPipe; readonly _run: (dataset: Dataset<unknown, never>, config: Config<InferIssue<FirstTuple… - changed:
type SchemaWithPipeAsync<TPipe extends [(BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>), ...(PipeItem<unknown, unknown, BaseIssue<unknown>> | PipeItemAsync<unknown, unknown, BaseIssue<unknown>>)[]]> = Omit<FirstTupleItem<TPipe>, 'async' | '_run' | '_types'> & { readonly pipe: TPipe; readonly async: true; _run(dataset: Dataset<unknown, never>, config: Config<… → type SchemaWithPipeAsync<TPipe extends [(BaseSchema<unknown, unknown, BaseIssue<unknown>> | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>), ...(PipeItem<any, unknown, BaseIssue<unknown>> | PipeItemAsync<any, unknown, BaseIssue<unknown>>)[]]> = Omit<FirstTupleItem<TPipe>, 'async' | '_run' | '_types'> & { readonly pipe: TPipe; readonly async: true; readonly _run: (dataset: Dataset<unknown, never>, conf… - added:
function _joinExpects(values: string[], separator: '&' | '|'): string - added:
readonly property BaseSchema._run: (dataset: Dataset<unknown, never>, config: Config<TIssue>) => Dataset<TOutput, TIssue> - added:
readonly property BaseSchemaAsync._run: (dataset: Dataset<unknown, never>, config: Config<TIssue>) => Promise<Dataset<TOutput, TIssue>> - added:
readonly property BaseTransformation._run: (dataset: TypedDataset<TInput, never>, config: Config<TIssue>) => Dataset<TOutput, TIssue> - added:
readonly property BaseTransformationAsync._run: (dataset: TypedDataset<TInput, never>, config: Config<TIssue>) => Promise<Dataset<TOutput, TIssue>> - added:
readonly property BaseValidation._run: (dataset: Dataset<TInput, BaseIssue<unknown>>, config: Config<TIssue>) => Dataset<TOutput, BaseIssue<unknown> | TIssue> - added:
readonly property BaseValidationAsync._run: (dataset: Dataset<TInput, BaseIssue<unknown>>, config: Config<TIssue>) => Promise<Dataset<TOutput, BaseIssue<unknown> | TIssue>>