Skip to content

Upgrading valibot 0.32 to 0.33

Breaking0.32.0 → 0.33.3Breaking3New3Fixed4

BreakingUpgrade verdict

3 breaking changes.

  • 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.
3 items need code or config changes
Breaking3
Rename every and some action to everyItem and someItem.
everysomeeveryItemsomeItem
Rename _isAllowedObjectKey to _isValidObjectKey and add check for inherited properties.
_isAllowedObjectKey_isValidObjectKey
Remove RecordPathItem and TuplePathItem type and refactor code.
RecordPathItemTuplePathItem

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…