Aktualizacja jackspeak z 3.x do 4.x
Porównanie publicznego API jackspeak 3.4.3 i 4.2.3, obliczone automatycznie na podstawie typów TypeScript. Zmieniona sygnatura to możliwa zmiana niekompatybilna, a nie pewność.
Podsumowanie
| Usunięte ścieżki importu | 0 |
|---|---|
| Usunięte eksporty | 2 |
| Zmienione sygnatury | 9 |
| Usunięte składowe klas lub interfejsów | 0 |
| Zmienione składowe klas lub interfejsów | 9 |
| Nowo wycofane | 0 |
| Zmiany wymagań (engines, zależności peer) | 1 |
| Nowe eksporty | 10 |
Usunięte eksporty
| import | export | kind | Przed |
|---|---|---|---|
jackspeak | MultiType | type | M extends true ? { multiple: true; delim?: string | undefined; } : M extends false ? { multiple?: false | undefined; delim?: undefined; } : { multiple?: boolean | undefined; delim?: string | undefined; } |
jackspeak | ConfigOptionBase | type | { type: T; short?: string | undefined; default?: ValidValue<T, M> | undefined; description?: string | undefined; hint?: (T extends "boolean" ? undefined : string | undefined) | undefined; validate?: ((v: unknown) => v is ValidValue<T, M>) | undefined; validOptions?: (T extends "boolean" ? undefined : T extends "string" ? readonly string[] : T extends "number" ? readonly number[] : readonly string[] | readonly number[]) | undefined; } & MultiType<M> |
Zmienione sygnatury
| export | Przed | Po |
|---|---|---|
jackspeak · ConfigSet | { [longOption: string]: ConfigOptionBase<ConfigType, boolean>; } | { [longOption: string]: ConfigOption<ConfigType, boolean, readonly number[] | readonly string[] | undefined>; } |
jackspeak · UsageField | TextRow | { type: "config"; name: string; value: ConfigOptionBase<ConfigType, boolean>; } | TextRow | { type: "config"; name: string; value: ConfigOption<ConfigType, boolean, readonly number[] | readonly string[] | undefined>; } |
jackspeak · ValidValue | [T, M] extends ["number", true] ? number[] : [T, M] extends ["string", true] ? string[] : [T, M] extends ["boolean", true] ? boolean[] : [T, M] extends ["number", false] ? number : [T, M] extends ["string", false] ? string : [T, M] extends ["boolean", false] ? boolean : [T, M] extends ["string", boolean] ? string | string[] : [T, M] extends ["boolean", boolean] ? boolean | boolean[] : [T, M] extends ["number", boolean] ? number | number[] : [T, M] extends [ConfigType, false] ? string | number | boolean : [T, M] extends [ConfigType, true] ? number[] | string[] | boolean[] : string | number | bo… | [T, M] extends ["number", true] ? number[] : [T, M] extends ["string", true] ? string[] : [T, M] extends ["boolean", true] ? boolean[] : [T, M] extends ["number", false] ? number : [T, M] extends ["string", false] ? string : [T, M] extends ["boolean", false] ? boolean : [T, M] extends ["string", boolean] ? string | string[] : [T, M] extends ["boolean", boolean] ? boolean | boolean[] : [T, M] extends ["number", boolean] ? number | number[] : [T, M] extends [ConfigType, false] ? ConfigValuePrimitive : [T, M] extends [ConfigType, true] ? ConfigValueArray : ConfigValue |
jackspeak · isConfigType | (t: string): t is ConfigType | (t: unknown): t is ConfigType |
jackspeak · ConfigMetaSet | { [longOption: string]: ConfigOptionMeta<T, M, (T extends "boolean" ? never : T extends "string" ? readonly string[] : T extends "number" ? readonly number[] : readonly string[] | readonly number[]) | undefined>; } | { [longOption: string]: ConfigOptionMeta<T, M, ConfigOption<T, M, ValidOptions<T> | undefined>>; } |
jackspeak · OptionsResults | { [k in keyof T]?: (T[k]["validOptions"] extends readonly string[] | readonly number[] ? T[k] extends ConfigOptionBase<"string" | "number", false> ? T[k]["validOptions"][number] : T[k] extends ConfigOptionBase<"string" | "number", true> ? T[k]["validOptions"][number][] : never : T[k] extends ConfigOptionBase<"string", false> ? string : T[k] extends ConfigOptionBase<"string", true> ? string[] : T[k] extends ConfigOptionBase<"number", false> ? number : T[k] extends ConfigOptionBase<"number", true> ? number[] : T[k] extends ConfigOptionBase<"boolean", false> ? boolean : T[k] extends ConfigOptionB… | { [K in keyof T]: (T[K]["validOptions"] extends ReadonlyArrays ? T[K] extends ConfigOption<"string" | "number", false, readonly number[] | readonly string[] | undefined> ? T[K]["validOptions"][number] : T[K] extends ConfigOption<"string" | "number", true, readonly number[] | readonly string[] | undefined> ? T[K]["validOptions"][number][] : never : T[K] extends ConfigOption<"string", false, readonly string[] | undefined> ? string : T[K] extends ConfigOption<"string", true, readonly string[] | undefined> ? string[] : T[K] extends ConfigOption<"number", false, readonly number[] | undefined> ? num… |
jackspeak · isConfigOption | <T extends ConfigType, M extends boolean>(o: any, type: T, multi: M): o is ConfigOptionBase<T, M> | <T extends ConfigType, M extends boolean>(o: unknown, type: T, multi: M): o is ConfigOption<T, M, ValidOptions<T> | undefined> |
jackspeak · ConfigOptionMeta | { default?: (ValidValue<T, M> & (O extends number[] | string[] ? M extends false ? O[number] : O[number][] : unknown)) | undefined; validOptions?: O | undefined; description?: string | undefined; validate?: ((v: unknown) => v is ValidValue<T, M>) | ((v: unknown) => boolean) | undefined; short?: string | undefined; type?: T | undefined; hint?: (T extends "boolean" ? never : string) | undefined; delim?: (M extends true ? string : never) | undefined; } & (M extends false ? { multiple?: false | undefined; } : M extends true ? { multiple: true; } : { multiple?: boolean | undefined; }) | Pick<Partial<O>, "type"> & Omit<O, "type"> |
jackspeak · ConfigSetFromMetaSet | { [longOption in keyof S]: ConfigOptionBase<T, M>; } | S & { [longOption in keyof S]: ConfigOption<T, M, ValidOptions<T> | undefined>; } |
Usunięte składowe klas lub interfejsów
Nie wykryto.
Zmienione składowe klas lub interfejsów
| member | Przed | Po |
|---|---|---|
Jack.num | <F extends ConfigMetaSet<"number", false>>(fields: F): Jack<C & ConfigSetFromMetaSet<"number", false, F>> | <F extends ConfigMetaSet<"number", false>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"number", false, readonly number[] | undefined>; }> |
Jack.opt | <F extends ConfigMetaSet<"string", false>>(fields: F): Jack<C & ConfigSetFromMetaSet<"string", false, F>> | <F extends ConfigMetaSet<"string", false>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"string", false, readonly string[] | undefined>; }> |
Jack.flag | <F extends ConfigMetaSet<"boolean", false>>(fields: F): Jack<C & ConfigSetFromMetaSet<"boolean", false, F>> | <F extends ConfigMetaSet<"boolean", false>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"boolean", false, undefined>; }> |
Jack.toJSON | (): { [k: string]: { hint?: string | undefined; default?: string | number | boolean | number[] | string[] | boolean[] | undefined; validOptions?: readonly string[] | readonly number[] | undefined; validate?: ((v: unknown) => v is string | number | boolean | number[] | string[] | boolean[]) | undefin… | (): { [k: string]: { hint?: string | undefined; default?: ConfigValue | undefined; validOptions?: readonly number[] | readonly string[] | undefined; validate?: ((v: unknown) => boolean) | ((v: unknown) => v is ConfigValue) | undefined; description?: string | undefined; short?: string | undefined; de… |
Jack.numList | <F extends ConfigMetaSet<"number">>(fields: F): Jack<C & ConfigSetFromMetaSet<"number", true, F>> | <F extends ConfigMetaSet<"number", true>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"number", true, readonly number[] | undefined>; }> |
Jack.optList | <F extends ConfigMetaSet<"string">>(fields: F): Jack<C & ConfigSetFromMetaSet<"string", true, F>> | <F extends ConfigMetaSet<"string", true>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"string", true, readonly string[] | undefined>; }> |
Jack.flagList | <F extends ConfigMetaSet<"boolean">>(fields: F): Jack<C & ConfigSetFromMetaSet<"boolean", true, F>> | <F extends ConfigMetaSet<"boolean", true>>(fields: F): Jack<C & F & { [longOption in keyof F]: ConfigOption<"boolean", true, undefined>; }> |
Jack.setConfigValues | (values: OptionsResults<C>, source?: string | undefined): Jack<C> | (values: Partial<OptionsResults<C>>, source?: string | undefined): Jack<C> |
JackOptions.env | { [k: string]: string | undefined; } | undefined | Record<string, string | undefined> | undefined |
Nowo wycofane
Nie wykryto.
Zmiany wymagań (engines, zależności peer)
| Przed | Po | |
|---|---|---|
engines.node | — | 20 || >=22 |
Nowe eksporty (10)
| import | export | kind |
|---|---|---|
jackspeak | ConfigValue | type |
jackspeak | ConfigOption | type |
jackspeak | ValidOptions | type |
jackspeak | ReadonlyArrays | type |
jackspeak | ParseArgsOption | type |
jackspeak | ConfigValueArray | type |
jackspeak | ParseArgsDefault | type |
jackspeak | ParseArgsOptions | type |
jackspeak | ConfigValuePrimitive | type |
jackspeak | isConfigOptionOfType | variable |
Najczęściej zadawane pytania
Jakie są zmiany niekompatybilne przy aktualizacji jackspeak z 3 do 4?
Między jackspeak 3.4.3 a 4.2.3 Vigia znalazła 2 usuniętych eksportów, 9 zmienionych sygnatur i 9 usuniętych lub zmienionych składowych klas lub interfejsów.
Co zostało wycofane w jackspeak 4?
0 eksportów lub składowych oznaczono w jackspeak 4.2.3 jako wycofane.
Dla agentów
GET https://vigia.coredls.cloud/v1/packages/npm/jackspeak/upgrade?from=3.4.3&to=4.2.3