Update more web deps and reformat with updated prettier (#24358)

* update date-fns, i18next, react-dropzone, react-markdown and @types/node

react-i18next 17 peers `i18next >= 26.2.0`, so the two move together. react-day-picker already depends on date-fns 4, so date-fns now dedupes to a single copy. react-dropzone 20 declares `node >=22` in `engines`, but npm only warns on Node 20 and nothing in the build needs Node 22.

* update js-yaml, @hookform/resolvers and prettier

js-yaml 5 has no default export, so `DictAsYamlField` imports `dump`, `load` and `YAMLException` by name. @hookform/resolvers 5 types `zodResolver` with the schema's input and output types separately, and fields with defaults are optional on input, so the zone and classification model forms pass both types to `useForm`. zod's range now starts at 3.25, which resolvers 5 requires.

* format with prettier 3.9
This commit is contained in:
Josh Hawkins
2026-09-15 15:18:49 -06:00
committed by GitHub
parent ba41c90c07
commit cabdffea20
62 changed files with 588 additions and 574 deletions
+1 -2
View File
@@ -605,8 +605,7 @@ export function buildClonedCameraPayloads({
// deleting a key not in the YAML. Cloned above so this won't mutate the cache.
const syntheticCameraObj = syntheticTargetCamera as unknown as JsonObject;
const baseConfigObj = syntheticCameraObj.base_config as
| Record<string, JsonObject>
| undefined;
Record<string, JsonObject> | undefined;
for (const section of Object.keys(FILTER_SECTION_DEFS)) {
const syntheticSection = syntheticCameraObj[section];
if (syntheticSection && typeof syntheticSection === "object") {
+3 -3
View File
@@ -192,9 +192,9 @@ export function evaluateConfigHealth(
t,
);
if (
!(inherited && firedGlobally.has(`${section}:${message.key}`))
) {
if (!(
inherited && firedGlobally.has(`${section}:${message.key}`)
)) {
problems.push(problem);
}
});
+2 -15
View File
@@ -1,21 +1,8 @@
export type FfmpegVideoOption = "copy" | "h264" | "h265" | "exclude";
export type FfmpegAudioOption =
| "copy"
| "aac"
| "opus"
| "pcmu"
| "pcma"
| "pcm"
| "mp3"
| "exclude";
"copy" | "aac" | "opus" | "pcmu" | "pcma" | "pcm" | "mp3" | "exclude";
export type FfmpegHardwareOption =
| "none"
| "auto"
| "vaapi"
| "cuda"
| "v4l2m2m"
| "dxva2"
| "videotoolbox";
"none" | "auto" | "vaapi" | "cuda" | "v4l2m2m" | "dxva2" | "videotoolbox";
export type ParsedFfmpegUrl = {
isFfmpeg: boolean;
+1 -6
View File
@@ -256,12 +256,7 @@ export function detectionRows({
// ------------------------------------------------------------------ hwaccel
export type HwaccelFamilyKey =
| "nvidia"
| "vaapi"
| "intel-qsv"
| "rkmpp"
| "jetson"
| "rpi";
"nvidia" | "vaapi" | "intel-qsv" | "rkmpp" | "jetson" | "rpi";
export type HwaccelClass =
| { kind: "none" }
+2 -6
View File
@@ -276,14 +276,10 @@ export function downloadJson(payload: unknown, fileName: string): void {
}
export type ParseError =
| "invalid_json"
| "wrong_type"
| "unsupported_version"
| "invalid_schema";
"invalid_json" | "wrong_type" | "unsupported_version" | "invalid_schema";
export type ParseResult =
| { ok: true; file: UiSettingsFile }
| { ok: false; error: ParseError };
{ ok: true; file: UiSettingsFile } | { ok: false; error: ParseError };
export function parseUiSettingsFile(text: string): ParseResult {
let raw: unknown;