Upgrading valibot 0.32 to 0.33
Breaking0.32.0 → 0.33.3Breaking3New3Fixed4
BreakingUpgrade verdict
3 breaking changes.
In plain terms
- Rename every and some action to everyItem and someItem.
- Rename _isAllowedObjectKey to _isValidObjectKey and add check for inherited properties.
- Remove RecordPathItem and TuplePathItem type and refactor code.
Must act 3 items need code or config changes
What you must change
Breaking3
Rename every and some action to everyItem and someItem.
everysomeeveryItemsomeItemRename _isAllowedObjectKey to _isValidObjectKey and add check for inherited properties.
_isAllowedObjectKey_isValidObjectKeyRemove RecordPathItem and TuplePathItem type and refactor code.
RecordPathItemTuplePathItemAPI changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- removed:
function _isAllowedObjectKey(key: string): boolean - removed:
function every<TInput extends unknown[], const TMessage extends ErrorMessage<EveryIssue<TInput>> | undefined>(requirement: Requirement$2<TInput>, message: TMessage): EveryAction<TInput, TMessage> - removed:
function every<TInput extends unknown[]>(requirement: Requirement$2<TInput>): EveryAction<TInput, undefined> - removed:
function some<TInput extends unknown[], const TMessage extends ErrorMessage<SomeIssue<TInput>> | undefined>(requirement: Requirement<TInput>, message: TMessage): SomeAction<TInput, TMessage> - removed:
function some<TInput extends unknown[]>(requirement: Requirement<TInput>): SomeAction<TInput, undefined> - removed:
interface EveryAction<TInput extends unknown[], TMessage extends ErrorMessage<EveryIssue<TInput>> | undefined> extends BaseValidation<TInput, TInput, EveryIssue<TInput>> - removed:
interface EveryIssue<TInput extends unknown[]> extends BaseIssue<TInput> - removed:
interface RecordPathItem - removed:
interface SomeAction<TInput extends unknown[], TMessage extends ErrorMessage<SomeIssue<TInput>> | undefined> extends BaseValidation<TInput, TInput, SomeIssue<TInput>> - removed:
interface SomeIssue<TInput extends unknown[]> extends BaseIssue<TInput> - removed:
interface TuplePathItem - removed:
readonly property EveryAction.expects: null - removed:
readonly property EveryAction.message: TMessage - removed:
readonly property EveryAction.reference: typeof every - removed:
readonly property EveryAction.requirement: Requirement$2<TInput> - removed:
readonly property EveryAction.type: 'every' - removed:
readonly property EveryIssue.expected: null - removed:
readonly property EveryIssue.kind: 'validation' - removed:
readonly property EveryIssue.requirement: Requirement$2<TInput> - removed:
readonly property EveryIssue.type: 'every' - removed:
readonly property RecordPathItem.input: Record<string, unknown> - removed:
readonly property RecordPathItem.key: string - removed:
readonly property RecordPathItem.origin: 'key' | 'value' - removed:
readonly property RecordPathItem.type: 'record' - removed:
readonly property RecordPathItem.value: unknown - removed:
readonly property SomeAction.expects: null - removed:
readonly property SomeAction.message: TMessage - removed:
readonly property SomeAction.reference: typeof some - removed:
readonly property SomeAction.requirement: Requirement<TInput> - removed:
readonly property SomeAction.type: 'some' - removed:
readonly property SomeIssue.expected: null - removed:
readonly property SomeIssue.kind: 'validation' - removed:
readonly property SomeIssue.requirement: Requirement<TInput> - removed:
readonly property SomeIssue.type: 'some' - removed:
readonly property TuplePathItem.input: unknown[] - removed:
readonly property TuplePathItem.key: number - removed:
readonly property TuplePathItem.origin: 'value' - removed:
readonly property TuplePathItem.type: 'tuple' - removed:
readonly property TuplePathItem.value: unknown - changed:
function entriesFromList<const TList extends MaybeReadonly<string[]>, const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(list: TList, schema: TSchema): Record<TList[number], TSchema> → function entriesFromList<const TList extends readonly string[], const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(list: TList, schema: TSchema): Record<TList[number], TSchema> - changed:
function forward<TInput extends Record<string, unknown> | unknown[], TIssue extends BaseIssue<unknown>>(action: BaseValidation<TInput, TInput, TIssue>, pathKeys: PathKeys<TInput>): BaseValidation<TInput, TInput, TIssue> → function forward<TInput extends Record<string, unknown> | ArrayLike<unknown>, TIssue extends BaseIssue<unknown>>(action: BaseValidation<TInput, TInput, TIssue>, pathKeys: PathKeys<TInput>): BaseValidation<TInput, TInput, TIssue> - changed:
function forwardAsync<TInput extends Record<string, unknown> | unknown[], TIssue extends BaseIssue<unknown>>(action: BaseValidation<TInput, TInput, TIssue> | BaseValidationAsync<TInput, TInput, TIssue>, pathKeys: PathKeys<TInput>): BaseValidationAsync<TInput, TInput, TIssue> → function forwardAsync<TInput extends Record<string, unknown> | ArrayLike<unknown>, TIssue extends BaseIssue<unknown>>(action: BaseValidation<TInput, TInput, TIssue> | BaseValidationAsync<TInput, TInput, TIssue>, pathKeys: PathKeys<TInput>): BaseValidationAsync<TInput, TInput, TIssue> - changed:
function mimeType<TInput extends Blob, const TRequirement extends Requirement$1, const TMessage extends ErrorMessage<MimeTypeIssue<TInput, TRequirement>> | undefined>(requirement: TRequirement, message: TMessage): MimeTypeAction<TInput, TRequirement, TMessage> → function mimeType<TInput extends Blob, const TRequirement extends Requirement, const TMessage extends ErrorMessage<MimeTypeIssue<TInput, TRequirement>> | undefined>(requirement: TRequirement, message: TMessage): MimeTypeAction<TInput, TRequirement, TMessage> - changed:
function mimeType<TInput extends Blob, const TRequirement extends Requirement$1>(requirement: TRequirement): MimeTypeAction<TInput, TRequirement, undefined> → function mimeType<TInput extends Blob, const TRequirement extends Requirement>(requirement: TRequirement): MimeTypeAction<TInput, TRequirement, undefined> - changed:
interface MimeTypeAction<TInput extends Blob, TRequirement extends Requirement$1, TMessage extends ErrorMessage<MimeTypeIssue<TInput, TRequirement>> | undefined> extends BaseValidation<TInput, TInput, MimeTypeIssue<TInput, TRequirement>> → interface MimeTypeAction<TInput extends Blob, TRequirement extends Requirement, TMessage extends ErrorMessage<MimeTypeIssue<TInput, TRequirement>> | undefined> extends BaseValidation<TInput, TInput, MimeTypeIssue<TInput, TRequirement>> - changed:
interface MimeTypeIssue<TInput extends Blob, TRequirement extends Requirement$1> extends BaseIssue<TInput> → interface MimeTypeIssue<TInput extends Blob, TRequirement extends Requirement> extends BaseIssue<TInput> - changed:
readonly property ArrayPathItem.input: unknown[] → readonly property ArrayPathItem.input: MaybeReadonly<unknown[]> - changed:
readonly property ObjectPathItem.origin: 'value' → readonly property ObjectPathItem.origin: 'key' | 'value' - changed:
type ContentRequirement<TInput extends ContentInput> = TInput extends unknown[] ? TInput[number] : TInput → type ContentRequirement<TInput extends ContentInput> = TInput extends readonly unknown[] ? TInput[number] : TInput - changed:
type InferIntersectInput<TOptions extends IntersectOptions | IntersectOptionsAsync> = TOptions extends MaybeReadonly<[InferOption<infer TInput, unknown>, ...infer TRest]> ? TRest extends MaybeReadonly<[InferOption<unknown, unknown>, ...InferOpti… → type InferIntersectInput<TOptions extends IntersectOptions | IntersectOptionsAsync> = TOptions extends readonly [InferOption<infer TInput, unknown>, ...infer TRest] ? TRest extends readonly [InferOption<unknown, unknown>, ...InferOption<unknown,… - changed:
type InferIntersectOutput<TOptions extends IntersectOptions | IntersectOptionsAsync> = TOptions extends MaybeReadonly<[InferOption<unknown, infer TOutput>, ...infer TRest]> ? TRest extends MaybeReadonly<[InferOption<unknown, unknown>, ...InferOpt… → type InferIntersectOutput<TOptions extends IntersectOptions | IntersectOptionsAsync> = TOptions extends readonly [InferOption<unknown, infer TOutput>, ...infer TRest] ? TRest extends readonly [InferOption<unknown, unknown>, ...InferOption<unknown… - changed:
type IssuePathItem = ArrayPathItem | MapPathItem | ObjectPathItem | RecordPathItem | SetPathItem | TuplePathItem | UnknownPathItem → type IssuePathItem = ArrayPathItem | MapPathItem | ObjectPathItem | SetPathItem | UnknownPathItem - changed:
type PathKeys<TInput extends Record<string, unknown> | unknown[]> = TInput extends unknown[] ? PathTuple<TInput, number> : PathTuple<TInput, keyof TInput> → type PathKeys<TValue> = MaybeReadonly<TValue extends readonly unknown[] ? number extends TValue['length'] ? [number] | [number, ...PathKeys<TValue[number]>] : { [TKey in keyof TValue]… - added:
function _isValidObjectKey(object: object, key: string): boolean - added:
function checkItems<TInput extends readonly unknown[], const TMessage extends ErrorMessage<CheckItemsIssue<TInput>> | undefined>(requirement: ArrayRequirement<TInput>, message: TMessage): CheckItemsAction<TInput, TMessage> - added:
function checkItems<TInput extends readonly unknown[]>(requirement: ArrayRequirement<TInput>): CheckItemsAction<TInput, undefined> - added:
function enum<const TEnum extends Enum, const TMessage extends ErrorMessage<EnumIssue> | undefined>(enum__: TEnum, message: TMessage): EnumSchema<TEnum, TMessage> - added:
function enum<const TEnum extends Enum>(enum__: TEnum): EnumSchema<TEnum, undefined> - added:
function everyItem<TInput extends readonly unknown[], const TMessage extends ErrorMessage<EveryItemIssue<TInput>> | undefined>(requirement: ArrayRequirement<TInput>, message: TMessage): EveryItemAction<TInput, TMessage> - added:
function everyItem<TInput extends readonly unknown[]>(requirement: ArrayRequirement<TInput>): EveryItemAction<TInput, undefined> - added:
function filterItems<TInput extends readonly unknown[]>(action: ArrayRequirement<TInput>): FilterItemsAction<TInput> - added:
function findItem<TInput extends readonly unknown[]>(action: ArrayRequirement<TInput>): FindItemAction<TInput> - added:
function mapItems<TInput extends readonly unknown[], TOutput>(action: ArrayAction$2<TInput, TOutput>): MapItemsAction<TInput, TOutput[]> - added:
function null(): NullSchema<undefined> - added:
function null<const TMessage extends ErrorMessage<NullIssue> | undefined>(message: TMessage): NullSchema<TMessage> - added:
function partialCheck<TInput extends PartialInput, const TPathList extends readonly PathKeys<TInput>[], const TSelection extends DeepPickN<TInput, TPathList>, const TMessage extends ErrorMessage<PartialCheckIssue<TSelection>> | undefined>(pathList: TPathList, requirement: (input: TSelection) => boolean, message: TMessage): PartialCheckAction<TInput, TSelection, TMessage> - added:
function partialCheck<TInput extends PartialInput, const TPathList extends readonly PathKeys<TInput>[], const TSelection extends DeepPickN<TInput, TPathList>>(pathList: TPathList, requirement: (input: TSelection) => boolean): PartialCheckAction<TInput, TSelection, undefined> - added:
function partialCheckAsync<TInput extends PartialInput, const TPathList extends readonly PathKeys<TInput>[], const TSelection extends DeepPickN<TInput, TPathList>, const TMessage extends ErrorMessage<PartialCheckIssue<TSelection>> | undefined>(pathList: TPathList, requirement: (input: TSelection) => MaybePromise<boolean>, message: TMessage): PartialCheckActionAsync<TInput, TSelection, TMessage> - added:
function partialCheckAsync<TInput extends PartialInput, const TPathList extends readonly PathKeys<TInput>[], const TSelection extends DeepPickN<TInput, TPathList>>(pathList: TPathList, requirement: (input: TSelection) => MaybePromise<boolean>): PartialCheckActionAsync<TInput, TSelection, undefined> - added:
function reduceItems<TInput extends readonly unknown[], TOutput>(action: ArrayAction$1<TInput, TOutput>, initial: TOutput): ReduceItemsAction<TInput, TOutput> - added:
function someItem<TInput extends readonly unknown[], const TMessage extends ErrorMessage<SomeItemIssue<TInput>> | undefined>(requirement: ArrayRequirement<TInput>, message: TMessage): SomeItemAction<TInput, TMessage> - added:
function someItem<TInput extends readonly unknown[]>(requirement: ArrayRequirement<TInput>): SomeItemAction<TInput, undefined> - added:
function sortItems<TInput extends readonly unknown[]>(action?: ArrayAction<TInput>): SortItemsAction<TInput> - added:
function undefined(): UndefinedSchema<undefined> - added:
function undefined<const TMessage extends ErrorMessage<UndefinedIssue> | undefined>(message: TMessage): UndefinedSchema<TMessage> - added:
function void(): VoidSchema<undefined> - added:
function void<const TMessage extends ErrorMessage<VoidIssue> | undefined>(message: TMessage): VoidSchema<TMessage> - added:
interface CheckItemsAction<TInput extends readonly unknown[], TMessage extends ErrorMessage<CheckItemsIssue<TInput>> | undefined> extends BaseValidation<TInput, TInput, CheckItemsIssue<TInput>> - added:
interface CheckItemsIssue<TInput extends readonly unknown[]> extends BaseIssue<TInput[number]> - added:
interface EveryItemAction<TInput extends readonly unknown[], TMessage extends ErrorMessage<EveryItemIssue<TInput>> | undefined> extends BaseValidation<TInput, TInput, EveryItemIssue<TInput>> - added:
interface EveryItemIssue<TInput extends readonly unknown[]> extends BaseIssue<TInput> - added:
interface FilterItemsAction<TInput extends readonly unknown[]> extends BaseTransformation<TInput, TInput, never> - added:
interface FindItemAction<TInput extends readonly unknown[]> extends BaseTransformation<TInput, TInput[number] | undefined, never> - added:
interface MapItemsAction<TInput extends readonly unknown[], TOutput extends readonly unknown[]> extends BaseTransformation<TInput, TOutput, never> - added:
interface PartialCheckAction<TInput extends PartialInput, TSelection extends PartialInput, TMessage extends ErrorMessage<PartialCheckIssue<TSelection>> | undefined> extends BaseValidation<TInput, TInput, PartialCheckIssue<TSelection>> - added:
interface PartialCheckActionAsync<TInput extends PartialInput, TSelection extends PartialInput, TMessage extends ErrorMessage<PartialCheckIssue<TSelection>> | undefined> extends BaseValidationAsync<TInput, TInput, PartialCheckIssue<TSelection>> - added:
interface PartialCheckIssue<TInput> extends BaseIssue<TInput> - added:
interface ReduceItemsAction<TInput extends readonly unknown[], TOutput> extends BaseTransformation<TInput, TOutput, never> - added:
interface SomeItemAction<TInput extends readonly unknown[], TMessage extends ErrorMessage<SomeItemIssue<TInput>> | undefined> extends BaseValidation<TInput, TInput, SomeItemIssue<TInput>> - added:
interface SomeItemIssue<TInput extends readonly unknown[]> extends BaseIssue<TInput> - added:
interface SortItemsAction<TInput extends readonly unknown[]> extends BaseTransformation<TInput, TInput, never> - added:
readonly property CheckItemsAction.expects: null - added:
readonly property CheckItemsAction.message: TMessage - added:
readonly property CheckItemsAction.reference: typeof checkItems - added:
readonly property CheckItemsAction.requirement: ArrayRequirement<TInput> - added:
readonly property CheckItemsAction.type: 'check_items' - added:
readonly property CheckItemsIssue.expected: null - added:
readonly property CheckItemsIssue.kind: 'validation' - added:
readonly property CheckItemsIssue.requirement: ArrayRequirement<TInput> - added:
readonly property CheckItemsIssue.type: 'check_items' - added:
readonly property EveryItemAction.expects: null - added:
readonly property EveryItemAction.message: TMessage - added:
readonly property EveryItemAction.reference: typeof everyItem - added:
readonly property EveryItemAction.requirement: ArrayRequirement<TInput> - added:
readonly property EveryItemAction.type: 'every_item' - added:
readonly property EveryItemIssue.expected: null - added:
readonly property EveryItemIssue.kind: 'validation' - added:
readonly property EveryItemIssue.requirement: ArrayRequirement<TInput> - added:
readonly property EveryItemIssue.type: 'every_item' - added:
readonly property FilterItemsAction.reference: typeof filterItems - added:
readonly property FilterItemsAction.type: 'filter_items' - added:
readonly property FindItemAction.reference: typeof findItem - added:
readonly property FindItemAction.type: 'find_item' - added:
readonly property MapItemsAction.reference: typeof mapItems - added:
readonly property MapItemsAction.type: 'map_items' - added:
readonly property PartialCheckAction.expects: null - added:
readonly property PartialCheckAction.message: TMessage - added:
readonly property PartialCheckAction.reference: typeof partialCheck - added:
readonly property PartialCheckAction.requirement: (input: TSelection) => boolean - added:
readonly property PartialCheckAction.type: 'partial_check' - added:
readonly property PartialCheckActionAsync.expects: null - added:
readonly property PartialCheckActionAsync.message: TMessage - added:
readonly property PartialCheckActionAsync.reference: typeof partialCheckAsync - added:
readonly property PartialCheckActionAsync.requirement: (input: TSelection) => MaybePromise<boolean> - added:
readonly property PartialCheckActionAsync.type: 'partial_check' - added:
readonly property PartialCheckIssue.expected: null - added:
readonly property PartialCheckIssue.kind: 'validation' - added:
readonly property PartialCheckIssue.requirement: (input: TInput) => MaybePromise<boolean> - added:
readonly property PartialCheckIssue.type: 'partial_check' - added:
readonly property ReduceItemsAction.reference: typeof reduceItems - added:
readonly property ReduceItemsAction.type: 'reduce_items' - added:
readonly property SomeItemAction.expects: null - added:
readonly property SomeItemAction.message: TMessage - added:
readonly property SomeItemAction.reference: typeof someItem - added:
readonly property SomeItemAction.requirement: ArrayRequirement<TInput> - added:
readonly property SomeItemAction.type: 'some_item' - added:
readonly property SomeItemIssue.expected: null - added:
readonly property SomeItemIssue.kind: 'validation' - added:
readonly property SomeItemIssue.requirement: ArrayRequirement<TInput> - added:
readonly property SomeItemIssue.type: 'some_item' - added:
readonly property SortItemsAction.reference: typeof sortItems - added:
readonly property SortItemsAction.type: 'sort_items' - added:
type ArrayRequirement<TInput extends readonly unknown[]> = (item: TInput[number], index: number, array: TInput) => boolean - added:
type DeepPickN<TInput, TPathList extends readonly PathKeys<TInput>[]> = TPathList extends readonly [infer TPathKeys extends PathKeys<TInput>, ...infer TRest extends PathKeys<TInput>[]] ? TRest extends readonly [unknown, ...(readonl…