@sapphire/shapeshift を 5.x から 6.x へアップグレード
@sapphire/shapeshift 5.0.0 と 6.0.0 の公開 API を、TypeScript の型から自動的に比較したものです。シグネチャの変更は破壊的変更の候補であり、確定ではありません。
概要
| 削除されたインポートパス | 0 |
|---|---|
| 削除されたエクスポート | 0 |
| 変更されたシグネチャ | 10 |
| 削除されたクラス/インターフェースのメンバー | 0 |
| 変更されたクラス/インターフェースのメンバー | 12 |
| 新たに非推奨 | 0 |
| 要件の変更(engines、peer 依存関係) | 0 |
| 新しいエクスポート | 0 |
削除されたエクスポート
検出されませんでした。
変更されたシグネチャ
| export | 変更前 | 変更後 |
|---|---|---|
@sapphire/shapeshift · Constructor | (new (...args: readonly any[]) => T) | (abstract new (...args: readonly any[]) => T) | (abstract new (...args: readonly any[]) => T) | (new (...args: readonly any[]) => T) |
@sapphire/shapeshift · ValidatorError | ValidationError | CombinedPropertyError | CombinedError | UnknownEnumValueError | CombinedError | CombinedPropertyError | UnknownEnumValueError | ValidationError |
@sapphire/shapeshift · DateConstraintName | "s.date().lessThan()" | "s.date().lessThanOrEqual()" | "s.date().greaterThan()" | "s.date().greaterThanOrEqual()" | "s.date().equal()" | "s.date().notEqual()" | "s.date().valid()" | "s.date().invalid()" | "s.date().equal()" | "s.date().greaterThan()" | "s.date().greaterThanOrEqual()" | "s.date().lessThan()" | "s.date().lessThanOrEqual()" | "s.date().notEqual()" | "s.date().invalid()" | "s.date().valid()" |
@sapphire/shapeshift · ArrayConstraintName | "s.array(T).unique()" | "s.array(T).lengthLessThan()" | "s.array(T).lengthLessThanOrEqual()" | "s.array(T).lengthGreaterThan()" | "s.array(T).lengthGreaterThanOrEqual()" | "s.array(T).lengthEqual()" | "s.array(T).lengthNotEqual()" | "s.array(T).lengthRange()" | "s.array(T).lengthRangeInclusive()" | "s.array(T).lengthRangeExclusive()" | "s.array(T).unique()" | "s.array(T).lengthEqual()" | "s.array(T).lengthGreaterThan()" | "s.array(T).lengthGreaterThanOrEqual()" | "s.array(T).lengthLessThan()" | "s.array(T).lengthLessThanOrEqual()" | "s.array(T).lengthNotEqual()" | "s.array(T).lengthRange()" | "s.array(T).lengthRangeExclusive()" | "s.array(T).lengthRangeInclusive()" |
@sapphire/shapeshift · ExpandSmallerTuples | T extends [T[0], ...infer Tail] ? T | ExpandSmallerTuples<Tail> : [] | T extends [T[0], ...infer Tail] ? ExpandSmallerTuples<Tail> | T : [] |
@sapphire/shapeshift · BigIntConstraintName | "s.bigint().lessThan()" | "s.bigint().lessThanOrEqual()" | "s.bigint().greaterThan()" | "s.bigint().greaterThanOrEqual()" | "s.bigint().equal()" | "s.bigint().notEqual()" | "s.bigint().divisibleBy()" | "s.bigint().divisibleBy()" | "s.bigint().equal()" | "s.bigint().greaterThan()" | "s.bigint().greaterThanOrEqual()" | "s.bigint().lessThan()" | "s.bigint().lessThanOrEqual()" | "s.bigint().notEqual()" |
@sapphire/shapeshift · ConstraintErrorNames | "s.array(T).unique()" | "s.array(T).lengthLessThan()" | "s.array(T).lengthLessThanOrEqual()" | "s.array(T).lengthGreaterThan()" | "s.array(T).lengthGreaterThanOrEqual()" | "s.array(T).lengthEqual()" | "s.array(T).lengthNotEqual()" | "s.array(T).lengthRange()" | "s.array(T).lengthRangeInclusive()" | "s.array(T).lengthRangeExclusive()" | "s.typedArray(T).byteLengthLessThan()" | "s.typedArray(T).byteLengthLessThanOrEqual()" | "s.typedArray(T).byteLengthGreaterThan()" | "s.typedArray(T).byteLengthGreaterThanOrEqual()" | "s.typedArray(T).byteLengthEqual()" | "s.typedArray(T).byteLengthNotEqual()" |… | "s.array(T).unique()" | "s.array(T).lengthEqual()" | "s.array(T).lengthGreaterThan()" | "s.array(T).lengthGreaterThanOrEqual()" | "s.array(T).lengthLessThan()" | "s.array(T).lengthLessThanOrEqual()" | "s.array(T).lengthNotEqual()" | "s.array(T).lengthRange()" | "s.array(T).lengthRangeExclusive()" | "s.array(T).lengthRangeInclusive()" | "s.bigint().divisibleBy()" | "s.bigint().equal()" | "s.bigint().greaterThan()" | "s.bigint().greaterThanOrEqual()" | "s.bigint().lessThan()" | "s.bigint().lessThanOrEqual()" | "s.bigint().notEqual()" | "s.boolean().false()" | "s.boolean().true()" | "s.date().equ… |
@sapphire/shapeshift · NumberConstraintName | `s.number().lessThan(${string})` | `s.number().lessThanOrEqual(${string})` | `s.number().greaterThan(${string})` | `s.number().greaterThanOrEqual(${string})` | `s.number().equal(${string})` | `s.number().notEqual(${string})` | `s.number().divisibleBy(${string})` | `s.number().int(${string})` | `s.number().safeInt(${string})` | `s.number().finite(${string})` | `s.number().divisibleBy(${string})` | `s.number().equal(${string})` | `s.number().greaterThan(${string})` | `s.number().greaterThanOrEqual(${string})` | `s.number().lessThan(${string})` | `s.number().lessThanOrEqual(${string})` | `s.number().notEqual(${string})` | `s.number().finite(${string})` | `s.number().int(${string})` | `s.number().safeInt(${string})` |
@sapphire/shapeshift · StringConstraintName | "s.string().lengthLessThan()" | "s.string().lengthLessThanOrEqual()" | "s.string().lengthGreaterThan()" | "s.string().lengthGreaterThanOrEqual()" | "s.string().lengthEqual()" | "s.string().lengthNotEqual()" | "s.string().regex()" | "s.string().url()" | "s.string().uuid()" | "s.string().email()" | "s.string().ip()" | "s.string().ipv4()" | "s.string().ipv6()" | "s.string().date()" | "s.string().phone()" | "s.string().lengthEqual()" | "s.string().lengthGreaterThan()" | "s.string().lengthGreaterThanOrEqual()" | "s.string().lengthLessThan()" | "s.string().lengthLessThanOrEqual()" | "s.string().lengthNotEqual()" | "s.string().date()" | "s.string().email()" | "s.string().phone()" | "s.string().regex()" | "s.string().url()" | "s.string().uuid()" | "s.string().ip()" | "s.string().ipv4()" | "s.string().ipv6()" |
@sapphire/shapeshift · TypedArrayConstraintName | "s.typedArray(T).byteLengthLessThan()" | "s.typedArray(T).byteLengthLessThanOrEqual()" | "s.typedArray(T).byteLengthGreaterThan()" | "s.typedArray(T).byteLengthGreaterThanOrEqual()" | "s.typedArray(T).byteLengthEqual()" | "s.typedArray(T).byteLengthNotEqual()" | "s.typedArray(T).byteLengthRange()" | "s.typedArray(T).byteLengthRangeInclusive()" | "s.typedArray(T).byteLengthRangeExclusive()" | "s.typedArray(T).lengthLessThan()" | "s.typedArray(T).lengthLessThanOrEqual()" | "s.typedArray(T).lengthGreaterThan()" | "s.typedArray(T).lengthGreaterThanOrEqual()" | "s.typedArray(T).lengthEqual()" | "s.… | "s.typedArray(T).byteLengthEqual()" | "s.typedArray(T).byteLengthGreaterThan()" | "s.typedArray(T).byteLengthGreaterThanOrEqual()" | "s.typedArray(T).byteLengthLessThan()" | "s.typedArray(T).byteLengthLessThanOrEqual()" | "s.typedArray(T).byteLengthNotEqual()" | "s.typedArray(T).byteLengthRange()" | "s.typedArray(T).byteLengthRangeExclusive()" | "s.typedArray(T).byteLengthRangeInclusive()" | "s.typedArray(T).lengthEqual()" | "s.typedArray(T).lengthGreaterThan()" | "s.typedArray(T).lengthGreaterThanOrEqual()" | "s.typedArray(T).lengthLessThan()" | "s.typedArray(T).lengthLessThanOrEqual()" | "s.… |
削除されたクラス/インターフェースのメンバー
検出されませんでした。
変更されたクラス/インターフェースのメンバー
| member | 変更前 | 変更後 |
|---|---|---|
Result.isErr | (): this is { success: false; error: E; } | (): this is { error: E; success: false; } |
MapValidator.handle | (value: unknown): Result<Map<K, V>, ValidationError | CombinedPropertyError> | (value: unknown): Result<Map<K, V>, CombinedPropertyError | ValidationError> |
SetValidator.handle | (values: unknown): Result<Set<T>, ValidationError | CombinedError> | (values: unknown): Result<Set<T>, CombinedError | ValidationError> |
ArrayValidator.handle | (values: unknown): Result<T, ValidationError | CombinedPropertyError> | (values: unknown): Result<T, CombinedPropertyError | ValidationError> |
TupleValidator.handle | (values: unknown): Result<[...T], ValidationError | CombinedPropertyError> | (values: unknown): Result<[...T], CombinedPropertyError | ValidationError> |
UnionValidator.handle | (value: unknown): Result<T, ValidationError | CombinedError> | (value: unknown): Result<T, CombinedError | ValidationError> |
ObjectValidator.extend | <ET extends object>(schema: ObjectValidator<ET, UndefinedToOptional<ET>> | MappedObjectValidator<ET>, options?: ValidatorOptions | undefined): ObjectValidator<T & ET, UndefinedToOptional<T & ET>> | <ET extends object>(schema: MappedObjectValidator<ET> | ObjectValidator<ET, UndefinedToOptional<ET>>, options?: ValidatorOptions | undefined): ObjectValidator<ET & T, UndefinedToOptional<ET & T>> |
ObjectValidator.handle | (value: unknown): Result<I, ValidationError | CombinedPropertyError> | (value: unknown): Result<I, CombinedPropertyError | ValidationError> |
RecordValidator.handle | (value: unknown): Result<Record<string, T>, ValidationError | CombinedPropertyError> | (value: unknown): Result<Record<string, T>, CombinedPropertyError | ValidationError> |
BooleanValidator.equal | <R extends true | false>(value: R, options?: ValidatorOptions | undefined): BooleanValidator<R> | <R extends false | true>(value: R, options?: ValidatorOptions | undefined): BooleanValidator<R> |
BooleanValidator.notEqual | <R extends true | false>(value: R, options?: ValidatorOptions | undefined): BooleanValidator<R> | <R extends false | true>(value: R, options?: ValidatorOptions | undefined): BooleanValidator<R> |
NativeEnumValidator.handle | (value: unknown): Result<T[keyof T], ValidationError | UnknownEnumValueError> | (value: unknown): Result<T[keyof T], UnknownEnumValueError | ValidationError> |
新たに非推奨
検出されませんでした。
要件の変更(engines、peer 依存関係)
検出されませんでした。
これらのバージョン間の changelog
パッケージ作者が公開したテキストをそのまま表示しています。
6.0.0
## 🏠 Refactor
- **errors:** Update import paths and types ([058d979](https://github.com/sapphiredev/shapeshift/commit/058d979f410339dd396f5ccdd9001364430f14f0))
## 🐛 Bug Fixes
- Correct validator return types and resolve lint errors ([48fe811](https://github.com/sapphiredev/shapeshift/commit/48fe811f0a48724ed6311fbb859ba77b536fdc1a))
## 🚀 Features
- Publish an ESM-only package ([b97e51b](https://github.com/sapphiredev/shapeshift/commit/b97e51b589e9fe63c9c88de17e7d6a4844524aa2))
- 💥 **BREAKING CHANGE:** remove CommonJS and browser global entry points; consumers must use ESM.
## 🪞 Styling
- **docs:** Improve documentation formatting and clarity ([98bd46c](https://github.com/sapphiredev/shapeshift/commit/98bd46c7708de07b8bd99d8b24459ceeec121a4b))このデータを AI エージェントに渡す
Vigia は無料の MCP サーバーです。コーディングエージェントがコードを書く前に、バージョン・破壊的変更・脆弱性を確認できます。登録も API キーも不要です。
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
Cursor に追加VS Code に追加★ GitHub でスターを付ける
その他の MCP クライアント
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }エージェント用スキル (SKILL.md):Vigia を使うタイミングをエージェントに伝えます · プルリクエスト用 GitHub Action
よくある質問
@sapphire/shapeshift を 5 から 6 にアップグレードする際の破壊的変更は?
@sapphire/shapeshift 5.0.0 と 6.0.0 の間で、Vigia は削除されたエクスポートを 0 件、変更されたシグネチャを 10 件、削除または変更されたクラス/インターフェースのメンバーを 12 件検出しました。
@sapphire/shapeshift 6 で非推奨になったものは?
@sapphire/shapeshift 6.0.0 では 0 件のエクスポートまたはメンバーが新たに非推奨になりました。
エージェント向け
GET https://vigia.coredls.cloud/v1/packages/npm/@sapphire/shapeshift/upgrade?from=5.0.0&to=6.0.0