Vigia

Upgrade von i18next 26.x auf 27.x

Vergleich der öffentlichen API von i18next 26.7.2 und 27.0.0, automatisch aus den TypeScript-Typen berechnet. Eine geänderte Signatur ist ein möglicher Breaking Change, keine Gewissheit.

Zusammenfassung

Entfernte Importpfade0
Entfernte Exporte87
Geänderte Signaturen5
Entfernte Member von Klassen oder Interfaces21
Geänderte Member von Klassen oder Interfaces1
Neu als veraltet markiert2
Geänderte Anforderungen (engines, Peer-Abhängigkeiten)1
Neue Exporte0

Entfernte Exporte

importexportkindVorher
i18next_IcuArgtypeA extends `${infer Name},${infer Type},${infer Cases}` ? _IcuTrim<Type> extends "plural" | "selectordinal" ? [_IcuTrim<Name>, _IcuFormatType<_IcuTrim<Type>>] | _IcuCases<Cases, never, never>[1] : _IcuTrim<Type> extends "select" ? _IcuCases<Cases, never, never> extends [infer Keys, infer E] ? E | [_IcuTrim<Name>, "other" extends Keys ? Exclude<Keys, "other"> | (string & {}) : Keys] : never : [_IcuTrim<Name>, _IcuFormatType<_IcuTrim<Type>>] : A extends `${infer Name},${infer Type}` ? [_IcuTrim<Name>, _IcuFormatType<_IcuTrim<Type>>] : [_IcuTrim<A>, string | number]
i18next_KeysOftype[Res] extends [unknown] ? keyof Res : never
i18next_IcuTrimtypeS extends ` ${infer R}` | ` ${infer R}` | `\t${infer R}` | `\r${infer R}` ? _IcuTrim<R> : S extends `${infer R} ` | `${infer R} ` | `${infer R}\t` | `${infer R}\r` ? _IcuTrim<R> : S
i18next_Mf2NametypeS extends `${infer N} ${string}` ? _Mf2Name<N> : S extends `${infer N}/${string}` ? N : S
i18next_Mf2VarstypeS extends `${string}$${infer R}` ? _Mf2Vars<R, Acc | [_Mf2Name<R>, string | number]> : Acc
i18next_ValueOftypeKey extends _KeysOf<Res> ? Res[Key] : _IsLiteral<Key & PropertyKey> extends true ? never : Res[Key & _KeysOf<Res>]
i18next_IcuBlocktypeS extends `${infer L}}${infer R}` ? L extends `${infer L2}{${infer R2}` ? _IcuBlock<`${R2}}${R}`, `${Acc}${L2}{`, [...Depth, 0]> : Depth extends [0, ...infer D extends 0[]] ? _IcuBlock<R, `${Acc}${L}}`, D> : [`${Acc}${L}`, R] : never
i18next_IcuCasestypeS extends `${infer L}{${infer R}` ? _IcuBlock<R, "", []> extends [infer Msg, infer Rest] ? _IcuCases<Rest, Keys | _IcuTrim<L>, Acc | _IcuEntries<Msg, never>> : [Keys, Acc] : [Keys, Acc]
i18next_Mf2SpacetypeS extends `${infer L}${C}${infer R}` ? _Mf2Space<`${L} ${R}`, C> : S
i18next_HasPluraltype0 extends 1 & R ? false : [Extract<R, PluralValue<string>>] extends [never] ? false : true
i18next_IsLiteraltype{} extends Record<S, unknown> ? false : true
i18next_Mf2LocalstypeS extends `${string}.local${infer R}` ? _Mf2Locals<R, Acc | (_IcuTrim<R> extends `$${infer N}=${string}` ? _IcuTrim<N> : never)> : Acc
i18next_Mf2Spacestype_Mf2Space<_Mf2Space<_Mf2Space<S, "\n">, "\t">, "\r"> extends ` ${infer R}` | ` ${infer R}` | `\t${infer R}` | `\r${infer R}` ? _IcuTrim<R> : _Mf2Space<_Mf2Space<_Mf2Space<S, "\n">, "\t">, "\r"> extends `${infer R} ` | `${infer R} ` | `${infer R}\t` | `${infer R}\r` ? _IcuTrim<R> : _Mf2Space<_Mf2Space<_Mf2Space<S, "\n">, "\t">, "\r">
i18next_Resourcestypeobject
i18next_IcuArgsMaptypeRet extends string ? string extends Ret ? never : _ArgsFromEntries<_IcuEntries<_IcuStripQuotes<Ret, "">, never>> : never
i18next_IcuEntriestypeS extends `${string}{${infer R}` ? _IcuBlock<R, "", []> extends [infer Arg, infer Rest] ? _IcuEntries<Rest, Acc | _IcuArg<Arg>> : Acc : Acc
i18next_Mf2ArgsMaptypeRet extends string ? string extends Ret ? never : _Mf2StripEscapes<Ret, ""> extends infer S ? _ArgsFromEntries<Exclude<_Mf2Entries<S, never>, [_IcuTrim<S> extends `.${string}` ? _Mf2Locals<S, never> : never, unknown]> | Exclude<_Mf2Selectors<S>, [_IcuTrim<S> extends `.${string}` ? _Mf2Locals<S, never> : never, unknown]>> : never : never
i18next_Mf2EntriestypeS extends `${string}{${infer R}` ? R extends `{${infer Pattern}` ? _Mf2Entries<Pattern, Acc> : _Mf2Expression<R, ""> extends [infer Body, infer Rest] ? _Mf2Entries<Rest, Acc | _Mf2ExprEntries<_IcuTrim<_Mf2Space<_Mf2Space<_Mf2Space<Body, "\n">, "\t">, "\r">>>> : Acc : Acc
i18next_ReturnNulltypefalse
i18next$PluralBrandvariabletypeof $PluralBrand
i18next_DefinedKeystype[T] extends [unknown] ? keyof { [P in keyof T as [T[P]] extends [undefined] ? never : P]: true; } : never
i18next_NsSeparatortype":"
i18next_ContextBasestype[T] extends [unknown] ? _ContextPrefixes<T>[1] : never
i18next_KeySeparatortype"."
i18next_Mf2SelectorstypeS extends `${string}.match${infer R}` ? _Mf2Vars<_IcuTrim<_Mf2Space<_Mf2Space<_Mf2Space<R extends `${infer Sel}{${string}` ? Sel : R, "\n">, "\t">, "\r">>, never> : never
i18next_NonNeverKeystype{ [K in keyof T]: [T[K]] extends [never] ? never : K; }[keyof T]
i18next_PerPropMergetype{ [K in keyof L | keyof R]: K extends keyof L ? K extends keyof R ? L[K] & R[K] : L[K] : K extends keyof R ? R[K] : never; }
i18next_PrimaryParsetype(ActualKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends …
i18next_CountIfPluraltype_HasPlural<R> extends true ? { count: number; } : {}
i18next_FallbackParsetype[FallbackResourcesOf<FallbackNS, $Dictionary<string>>] extends [never] ? never : ParseTReturnWithFallback<ActualKey, ActualKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithFallback<RestKey, RestKey extends `${infer K1}.${infer RestKey}` ? ParseTReturnWithF…
i18next_HasDefinedKeytype[false extends (Pattern extends unknown ? _IsLiteral<Pattern> : never) ? keyof _DefinedContextKeys<T, Pattern> : Extract<Pattern, _DefinedKeys<T>>] extends [never] ? false : true
i18next_IcuFormatTypetype[F] extends [never] ? string | number : F extends never ? {}[F] : F extends "number" | "plural" | "selectordinal" ? number : F extends "date" | "time" ? Date : string | number
i18next_IcuSkipQuotedtypeS extends `${string}'${infer R}` ? R extends `'${infer R2}` ? _IcuSkipQuoted<R2> : R : ""
i18next_IcuWhitespacetype" " | "\n" | "\t" | "\r"
i18next_KeyAndOptionstype[key: Key | Key[], options?: Opts | undefined]
i18next_Mf2ExpressiontypeS extends `${infer B}}${infer Rest}` ? B extends `${infer Before}|${infer Lit}` ? `${Lit}}${Rest}` extends `${string}|${infer After}` ? _Mf2Expression<After, `${Acc}${Before} `> : never : [`${Acc}${B}`, Rest] : never
i18next_ReturnObjectstypefalse
i18next$FirstNamespacetypeNs extends readonly any[] ? Ns[0] : Ns
i18next_EnableSelectortypefalse
i18next_IcuStripQuotestypeS extends `${infer L}'${infer R}` ? R extends `'${infer R2}` ? _IcuStripQuotes<R2, `${Acc}${L}`> : R extends `{${string}` | `}${string}` | `<${string}` | `>${string}` | `#${string}` ? _IcuStripQuotes<_IcuSkipQuoted<R>, `${Acc}${L}`> : _IcuStripQuotes<R, `${Acc}${L}'`> : `${Acc}${S & string}`
i18next_Mf2ExprEntriestypeBody extends `$${infer R}` ? R extends `${infer Name} ${infer Tail}` ? [Name, _Mf2FunctionType<_IcuTrim<Tail> extends `:${infer F}` ? _Mf2Name<F> : never>] | _Mf2Vars<Tail, never> : [_Mf2Name<R>, string | number] : _Mf2Vars<Body, never>
i18next_UnescapePrefixtype"-"
i18next_UnescapeSuffixtype""
i18next_ArgsFromEntriestype_UnionToIntersection<E extends [infer Name extends string, infer Type] ? Name extends `${string}.${string}` ? $StringKeyPathToRecord<Name, Type> : { [K in Name]: Type; } : never> extends infer M ? [E] extends [never] ? never : { [K in keyof M]: M[K]; } : never
i18next_ContextPrefixestype[T] extends [unknown] ? _ContextPrefixesOf<_DefinedKeys<T> & string, "", never, never> : never
i18next_IsContextualKeytype_IsLiteral<K> extends true ? K extends _ContextBases<T> ? true : false : [Exclude<keyof _DefinedContextKeys<T, `${K}_${string}`>, `${K}_zero` | `${K}_one` | `${K}_two` | `${K}_few` | `${K}_many` | `${K}_other` | `${K}_ordinal_zero` | `${K}_ordinal_one` | `${K}_ordinal_two` | `${K}_ordinal_few` | `${K}_ordinal_many` | `${K}_ordinal_other`>] extends [never] ? false : true
i18next_LegacyResourcestypeobject
i18next_MergeNamespacestype{ [K in keyof L | keyof R]: K extends keyof L ? K extends keyof R ? _DropConflictKeys<_PerPropMerge<L[K], R[K]>> : L[K] : K extends keyof R ? R[K] : never; }
i18next_MergedResourcestypeobject
i18next_Mf2FunctionTypetype[F] extends [never] ? string | number : F extends never ? {}[F] : F extends "number" | "currency" | "integer" | "percent" | "offset" | "unit" | "math" ? number : F extends "datetime" | "date" | "time" ? Date : F extends "string" ? string : string | number
i18next_Mf2StripEscapestypeS extends `${infer L}\\${string}${infer R}` ? _Mf2StripEscapes<R, `${Acc}${L}`> : `${Acc}${S & string}`
i18next_PluralSeparatortype"_"
i18next_SelectorsReturntypeFns[number] extends (...args: any[]) => infer R ? R : never
i18next_StrictKeyCheckstypefalse
i18next$SelectorKeyBrandvariabletypeof $SelectorKeyBrand
i18next_ContextSeparatortype"_"
i18next_DefaultVariablestype{}
i18next_DropConflictKeystype{ [P in _NonNeverKeys<T>]: T[P]; }
i18next_NsResourceStricttypeNs extends readonly any[] ? PickNamespaces<$Dictionary<string>, Ns[number]> : PickNamespaces<$Dictionary<string>, Ns & (string | number)>
i18next_ResolveEntryTypetype[Format] extends [never] ? Name extends "count" ? number : string | number : Format extends never ? {}[Format] : _StripFormatOptions<Format> extends never ? never : Format extends keyof _BuiltInFormatTypeMap ? _BuiltInFormatTypeMap[Format] : _StripFormatOptions<Format> extends keyof _BuiltInFormatTypeMap ? _BuiltInFormatTypeMap[_StripFormatOptions<Format> & keyof _BuiltInFormatTypeMap] : string
i18next_CompatibilityJSONtype"v4"
i18next_ContextPrefixesOftypeP extends `${infer B}_${string}` ? P extends `${B}${infer FromSep}` ? FromSep extends `${infer C}${infer Rest}` ? _ContextPrefixesOf<Rest, `${Head}${B}${C}`, All | `${Head}${B}`, FromSep extends "_zero" | "_one" | "_two" | "_few" | "_many" | "_other" | "_ordinal_zero" | "_ordinal_one" | "_ordinal_two" | "_ordinal_few" | "_ordinal_many" | "_ordinal_other" ? Bases : Bases | `${Head}${B}`> : [All, Bases] : [All, Bases] : [All, Bases]
i18next_FallbackNamespacetypefalse
i18next_HasContextVarianttypestring extends Context ? _IsLiteral<K> extends true ? K extends _AllContextPrefixes<T> ? true : false : _HasDefinedKey<T, `${K}_${string}`> : _HasDefinedKey<T, `${K}_${Context & string}` | `${K}_${Context & string}_zero` | `${K}_${Context & string}_one` | `${K}_${Context & string}_two` | `${K}_${Context & string}_few` | `${K}_${Context & string}_many` | `${K}_${Context & string}_other`>
i18next_IfOptionalOptionstypeunknown
i18next_ReturnEmptyStringtypetrue
i18next$IsResourcesDefinedtypefalse
i18next_AllContextPrefixestype[T] extends [unknown] ? _ContextPrefixes<T>[0] : never
i18next_DefinedContextKeystype{ [P in keyof T as P extends Pattern ? [T[P]] extends [undefined] ? never : P : never]: true; }
i18next_ParseInterpolationtypetrue
i18next_SelectorOptionsArgtype[options?: Opts | undefined]
i18next_StripFormatOptionstypeF extends `${infer Name}(${string})` ? Name : F
i18next_InterpolationPrefixtype"{{"
i18next_InterpolationSuffixtype"}}"
i18next_ParsesMessageFormattypefalse
i18next_UnionToIntersectiontype(T extends unknown ? (k: T) => void : never) extends (k: infer I) => void ? I : never
i18next_BuiltInFormatTypeMaptype{ number: number; currency: number; datetime: Date; relativetime: number; list: readonly string[]; }
i18next_KeysWithoutVariablestypeKey extends string ? Key : never
i18next_WithDefaultVariablestypeMap
i18next_RequiresMessageOptionstypefalse
i18next$ValueIfResourcesDefinedtypeFallback
i18next_SelectorArrayOptionsArgtype_HasPlural<R> extends true ? [options: Opts & { count: number; } & $PreservedValue<_UnionToIntersection<(DeepUnwrapPlural<R> extends `${string}{{${infer Value}}}${infer Rest}` ? (Value extends `${infer ActualValue},${infer Format}` ? [ParseActualValue<ActualValue>, TrimSpaces<Format, "">] : [ParseActualValue<Value>, never]) | (Rest extends `${string}{{${infer Value}}}${infer Rest}` ? any : never) : never) extends [infer Name extends string, infer Format] ? $UnionToIntersection<$StringKeyPathToRecordUnion<Name, _ResolveEntryType<Name, Format>>> : never>, Record<string, unknown>>] : [options?: (…
i18next_IfOptionalDefaultOptionstypeunknown
i18next_StrictInterpolationCheckstypefalse
i18next_InterpolationFormatTypeMaptype{}
i18next_InterpolationMapFromEntriestype((E extends [infer Name extends string, infer Format] ? $StringKeyPathToRecord<Name, _ResolveEntryType<Name, Format>> : never) extends unknown ? (k: E extends [infer Name extends string, infer Format] ? $StringKeyPathToRecord<Name, _ResolveEntryType<Name, Format>> : never) => void : never) extends (k: infer I) => void ? I : never
i18next_InterpolationFormatSeparatortype","

Geänderte Signaturen

exportVorherNachher
i18next · t<const Key extends ParseKeys<["translation", ...string[]], TOpt, EffectiveKPrefix<undefined, TOpt>> | TemplateStringsArray, const TOpt extends TOptions, Ret extends TOpt["returnObjects"] extends true ? $SpecialObject : string, const ActualOptions extends Omit<TOpt, "context"> & $PreservedValue<_UnionToIntersection<(Ret extends `${string}{{${infer Value}}}${infer Rest}` ? (Value extends `${infer ActualValue},${infer Format}` ? [ParseActualValue<ActualValue>, TrimSpaces<Format, "">] : [ParseActualValue<Value>, never]) | (Rest extends `${string}{{${infer Value}}}${infer Rest}` ? any : never) : ne…<const Key extends ParseKeys<["translation", ...string[]], TOpt, EffectiveKPrefix<undefined, TOpt>> | TemplateStringsArray, const TOpt extends TOptions, Ret extends TOpt["returnObjects"] extends true ? $SpecialObject : string, const ActualOptions extends Omit<TOpt, "context"> & $PreservedValue<_UnionToIntersection<($NoInfer<string extends Ret ? _CheckedValue<["translation", ...string[]], AppendKeyPrefix<Key, EffectiveKPrefix<undefined, TOpt>>, TOpt> : Ret> extends `${string}{{${infer Value}}}${infer Rest}` ? (Value extends `${infer ActualValue},${infer Format}` ? [ParseActualValue<ActualValue>…
i18next · TypeOptionsOmit<$MergeBy<{ returnNull: false; returnEmptyString: true; returnObjects: false; keySeparator: "."; nsSeparator: ":"; pluralSeparator: "_"; contextSeparator: "_"; defaultNS: "translation"; fallbackNS: false; compatibilityJSON: "v4"; resources: object; allowObjectInHTMLChildren: false; strictKeyChecks: false; strictInterpolationChecks: false; interpolationPrefix: "{{"; interpolationSuffix: "}}"; interpolationFormatSeparator: ","; unescapePrefix: "-"; unescapeSuffix: ""; parseInterpolation: true; enableSelector: false; interpolationFormatTypeMap: {}; defaultVariables: {}; }, CustomTypeOptions>,…Omit<$MergeBy<{ returnNull: false; returnEmptyString: false; returnObjects: false; keySeparator: "."; nsSeparator: ":"; pluralSeparator: "_"; contextSeparator: "_"; defaultNS: "translation"; fallbackNS: false; resources: object; allowObjectInHTMLChildren: false; strictKeyChecks: false; strictInterpolationChecks: true; interpolationPrefix: "{{"; interpolationSuffix: "}}"; interpolationFormatSeparator: ","; unescapePrefix: "-"; unescapeSuffix: ""; parseInterpolation: true; enableSelector: false; interpolationFormatTypeMap: {}; defaultVariables: {}; }, CustomTypeOptions>, "resources"> & { resourc…
i18next · ParseTReturnWithFallbackVal extends "" ? "" : Val extends null ? Key : ValVal extends "" ? Key : Val extends null ? Key : Val
i18next · ParseKeysWithoutVariablesstring{} extends $PreservedValue<_UnionToIntersection<(_CheckedValue<Ns, AppendKeyPrefix<string, KPrefix>, {}> extends `${string}{{${infer Value}}}${infer Rest}` ? (Value extends `${infer ActualValue},${infer Format}` ? [ParseActualValue<ActualValue>, TrimSpaces<Format, "">] : [ParseActualValue<Value>, never]) | (Rest extends `${string}{{${infer Value}}}${infer Rest}` ? any : never) : never) extends [infer Name extends string, infer Format] ? $UnionToIntersection<$StringKeyPathToRecordUnion<Name, _ResolveEntryType<Name, Format>>> : never>, Record<string, unknown>> ? string : never
i18next · KeysBuilderWithReturnObjectsKey extends _KeysOf<Res> ? Res[Key] extends $Dictionary | readonly unknown[] ? `${Key & string}.${(keyof $OmitArrayKeys<Res[Key]> extends `${infer KeyWithoutOrdinalPlural}_ordinal_zero` | `${infer KeyWithoutOrdinalPlural}_ordinal_one` | `${infer KeyWithoutOrdinalPlural}_ordinal_two` | `${infer KeyWithoutOrdinalPlural}_ordinal_few` | `${infer KeyWithoutOrdinalPlural}_ordinal_many` | `${infer KeyWithoutOrdinalPlural}_ordinal_other` ? KeyWithoutOrdinalPlural | ((`${KeyWithoutOrdinalPlural}_ordinal_zero` | `${KeyWithoutOrdinalPlural}_ordinal_one` | `${KeyWithoutOrdinalPlural}_ordinal_two` | `${Key…Key extends _KeysOf<Res> ? Res[Key] extends $Dictionary | readonly unknown[] ? `${Key & string}.${WithOrWithoutPlural<keyof $OmitArrayKeys<Res[Key]>> & string}` | `${Key & string}.${KeysBuilderWithReturnObjects<Res[Key], keyof Res[Key]> & string}` : never : never

Entfernte Member von Klassen oder Interfaces

memberimportVorher
InitOptions.locizeLastUsedi18next{ projectId: string; apiKey?: string | undefined; referenceLng?: string | undefined; version?: string | undefined; debounceSubmit?: number | undefined; allowedHosts?: readonly string[] | undefined; } | undefined
InitOptions.compatibilityJSONi18next"v4" | undefined
CloneOptions.locizeLastUsedi18next{ projectId: string; apiKey?: string | undefined; referenceLng?: string | undefined; version?: string | undefined; debounceSubmit?: number | undefined; allowedHosts?: readonly string[] | undefined; } | undefined
CloneOptions.compatibilityJSONi18next"v4" | undefined
ReactOptions.nsModei18next"fallback" | "default" | undefined
ReactOptions.bindI18ni18nextstring | false | undefined
ReactOptions.unescapei18next((str: string) => string) | undefined
ReactOptions.keyPrefixi18nextstring | (($: any) => any) | undefined
ReactOptions.useSuspensei18nextboolean | undefined
ReactOptions.hashTransKeyi18next((defaultValue: unknown) => unknown) | undefined
ReactOptions.bindI18nStorei18nextstring | false | undefined
ReactOptions.transDefaultPropsi18next{ tOptions?: TOptions<$Dictionary> | undefined; values?: object | undefined; shouldUnescape?: boolean | undefined; components?: readonly unknown[] | { readonly [tagName: string]: unknown; } | undefined; } | undefined
ReactOptions.defaultTransParenti18nextstring | undefined
ReactOptions.transWrapTextNodesi18nextstring | undefined
ReactOptions.transEmptyNodeValuei18nextstring | undefined
ReactOptions.transKeepBasicHtmlNodesFori18nextreadonly string[] | undefined
ReactOptions.transSupportBasicHtmlNodesi18nextboolean | undefined
InterpolationOptions.prefixEscapedi18nextstring | undefined
InterpolationOptions.suffixEscapedi18nextstring | undefined
InterpolationOptions.nestingPrefixEscapedi18nextstring | undefined
InterpolationOptions.nestingSuffixEscapedi18nextstring | undefined

Geänderte Member von Klassen oder Interfaces

memberVorherNachher
WithT.t<const Key extends ParseKeys<Ns, TOpt, EffectiveKPrefix<undefined, TOpt>> | TemplateStringsArray, const TOpt extends TOptions, Ret extends TOpt["returnObjects"] extends true ? $SpecialObject : string, const ActualOptions extends Omit<TOpt, "context"> & $PreservedValue<_UnionToIntersection<(Ret exten…<const Key extends ParseKeys<Ns, TOpt, EffectiveKPrefix<undefined, TOpt>> | TemplateStringsArray, const TOpt extends TOptions, Ret extends TOpt["returnObjects"] extends true ? $SpecialObject : string, const ActualOptions extends Omit<TOpt, "context"> & $PreservedValue<_UnionToIntersection<($NoInfer<…

Neu als veraltet markiert

export@deprecated
i18next · InitOptions.cleanCodecanonical codes are the default since v27
i18next · CloneOptions.cleanCodecanonical codes are the default since v27

Geänderte Anforderungen (engines, Peer-Abhängigkeiten)

VorherNachher
engines.node—>=22

Gib deinem KI-Agenten diese Fakten

Vigia ist ein kostenloser MCP-Server: Dein Coding-Agent prüft Versionen, Breaking Changes und Sicherheitslücken, bevor er Code schreibt. Ohne Anmeldung, ohne API-Schlüssel.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Zu Cursor hinzufügenZu VS Code hinzufügen★ Stern auf GitHub

Jeder andere MCP-Client
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

Agent-Skill (SKILL.md): sagt dem Agenten, wann er Vigia nutzen soll · GitHub Action für Pull Requests

Häufige Fragen

Welche Breaking Changes gibt es beim Upgrade von i18next 26 auf 27?

Zwischen i18next 26.7.2 und 27.0.0 hat Vigia 87 entfernte Exporte, 5 geänderte Signaturen und 22 entfernte oder geänderte Member von Klassen oder Interfaces gefunden.

Was wurde in i18next 27 als veraltet markiert?

2 Exporte oder Member sind in i18next 27.0.0 neu als veraltet markiert.

Für Agenten

GET https://vigia.coredls.cloud/v1/packages/npm/i18next/upgrade?from=26.7.2&to=27.0.0