chore: update dependencies (#4488)

* chore: update deps

* chore: remove immer patch

* chore: revert @sentry/electron upgrade

* chore: update deps

* chore: dedupe
This commit is contained in:
Whitewater
2025-09-16 19:19:52 +08:00
committed by GitHub
parent c30fd0dbf5
commit cde799da4e
20 changed files with 3000 additions and 2143 deletions
+9 -9
View File
@@ -32,18 +32,18 @@
"builder-util-runtime": "9.3.1",
"electron-context-menu": "4.0.5",
"electron-ipc-decorator": "0.2.0",
"electron-log": "5.4.1",
"electron-log": "5.4.3",
"electron-squirrel-startup": "1.0.1",
"electron-store": "10.1.0",
"electron-updater": "6.6.2",
"es-toolkit": "1.39.6",
"font-list": "1.5.1",
"i18next": "25.3.1",
"es-toolkit": "1.39.10",
"font-list": "2.0.0",
"i18next": "25.5.2",
"js-yaml": "4.1.0",
"ky": "1.8.2",
"linkedom": "0.18.11",
"ky": "1.10.0",
"linkedom": "0.18.12",
"lowdb": "7.0.1",
"msedge-tts": "2.0.0",
"msedge-tts": "2.0.2",
"node-machine-id": "1.1.12",
"ofetch": "1.4.1",
"pathe": "2.0.3",
@@ -55,10 +55,10 @@
"@follow/models": "workspace:*",
"@follow/types": "workspace:*",
"@types/js-yaml": "4.0.9",
"@types/node": "24.0.10",
"@types/node": "24.5.0",
"electron": "37.2.0",
"electron-devtools-installer": "4.0.0",
"hono": "4.8.1",
"hono": "4.9.7",
"typescript": "catalog:"
}
}
+32 -32
View File
@@ -23,25 +23,25 @@
"@follow/store": "workspace:*",
"@follow/tracker": "workspace:*",
"@fontsource/sn-pro": "5.2.5",
"@hcaptcha/react-hcaptcha": "1.12.0",
"@headlessui/react": "2.2.4",
"@hookform/resolvers": "5.1.1",
"@hcaptcha/react-hcaptcha": "1.12.1",
"@headlessui/react": "2.2.8",
"@hookform/resolvers": "5.2.2",
"@lexical/markdown": "0.33.1",
"@lexical/react": "0.33.1",
"@lottiefiles/dotlottie-react": "0.14.2",
"@lottiefiles/dotlottie-react": "0.16.3",
"@openpanel/web": "1.0.1",
"@radix-ui/react-avatar": "1.1.10",
"@radix-ui/react-context-menu": "2.2.15",
"@radix-ui/react-dialog": "1.1.14",
"@radix-ui/react-dropdown-menu": "2.1.15",
"@radix-ui/react-hover-card": "1.1.14",
"@radix-ui/react-context-menu": "2.2.16",
"@radix-ui/react-dialog": "1.1.15",
"@radix-ui/react-dropdown-menu": "2.1.16",
"@radix-ui/react-hover-card": "1.1.15",
"@radix-ui/react-label": "2.1.7",
"@radix-ui/react-popover": "1.1.14",
"@radix-ui/react-slider": "1.3.5",
"@radix-ui/react-popover": "1.1.15",
"@radix-ui/react-slider": "1.3.6",
"@radix-ui/react-slot": "1.2.3",
"@sentry/react": "9.35.0",
"@shikijs/transformers": "3.7.0",
"@splinetool/react-spline": "4.0.0",
"@shikijs/transformers": "3.12.2",
"@splinetool/react-spline": "4.1.0",
"@tanstack/query-sync-storage-persister": "5.81.5",
"@tanstack/react-query": "5.81.5",
"@tanstack/react-query-devtools": "5.81.5",
@@ -49,37 +49,37 @@
"@tanstack/react-virtual": "3.13.12",
"@use-gesture/react": "10.3.1",
"@welldone-software/why-did-you-render": "10.0.1",
"@xyflow/react": "12.8.2",
"@xyflow/react": "12.8.4",
"@yornaath/batshit": "0.10.1",
"ai": "5.0.4",
"ai": "5.0.44",
"camelcase-keys": "9.1.3",
"class-variance-authority": "0.7.1",
"clsx": "2.1.1",
"cmdk": "1.1.1",
"cookie-es": "2.0.0",
"dayjs": "1.11.13",
"dayjs": "1.11.18",
"dnum": "2.15.0",
"electron-ipc-decorator": "0.2.0",
"embla-carousel-react": "8.6.0",
"embla-carousel-wheel-gestures": "8.0.2",
"es-toolkit": "1.39.6",
"embla-carousel-wheel-gestures": "8.1.0",
"es-toolkit": "1.39.10",
"firebase": "11.9.1",
"foxact": "0.2.49",
"franc-min": "6.2.0",
"fuse.js": "7.1.0",
"hast-util-to-jsx-runtime": "2.3.6",
"hast-util-to-mdast": "10.1.2",
"i18next": "25.3.1",
"i18next": "25.5.2",
"i18next-browser-languagedetector": "8.2.0",
"idb-keyval": "6.2.2",
"immer": "10.1.1",
"jotai": "2.12.5",
"immer": "10.1.3",
"jotai": "2.14.0",
"lethargy": "1.0.9",
"lexical": "0.33.1",
"masonic": "4.1.0",
"mdast-util-gfm-table": "2.0.0",
"mdast-util-to-markdown": "2.1.2",
"motion": "12.23.0",
"motion": "12.23.13",
"nanoid": "5.1.5",
"ofetch": "1.4.1",
"plain-shiki": "0.3.0",
@@ -87,30 +87,30 @@
"react-blurhash": "0.3.0",
"react-fast-compare": "3.2.2",
"react-fast-marquee": "1.6.5",
"react-hook-form": "7.60.0",
"react-hook-form": "7.62.0",
"react-hotkeys-hook": "5.1.0",
"react-i18next": "15.6.0",
"react-i18next": "15.7.3",
"react-intersection-observer": "9.16.0",
"react-ios-pwa-prompt": "2.0.6",
"react-markdown": "10.1.0",
"react-qr-code": "2.0.18",
"react-resizable-layout": "npm:@innei/react-resizable-layout@0.7.3-fork.1",
"react-router": "7.6.3",
"react-router": "7.9.1",
"react-selecto": "1.26.3",
"react-shadow": "20.6.0",
"react-zoom-pan-pinch": "3.7.0",
"rehype-raw": "7.0.0",
"shiki": "3.7.0",
"sonner": "2.0.6",
"shiki": "3.12.2",
"sonner": "2.0.7",
"tinykeys": "3.0.0",
"title-case": "4.3.2",
"tldts": "7.0.10",
"tldts": "7.0.14",
"ufo": "1.6.1",
"use-context-selector": "2.0.0",
"use-sync-external-store": "1.5.0",
"usehooks-ts": "3.1.1",
"zod": "3.25.75",
"zustand": "5.0.6"
"zustand": "5.0.8"
},
"devDependencies": {
"@follow/atoms": "workspace:*",
@@ -121,10 +121,10 @@
"@follow/models": "workspace:*",
"@follow/types": "workspace:*",
"@follow/utils": "workspace:*",
"@folo-services/ai-tools": "0.2.36",
"@types/node": "24.0.10",
"@vite-pwa/assets-generator": "1.0.0",
"fake-indexeddb": "6.0.1",
"@folo-services/ai-tools": "0.2.40",
"@types/node": "24.5.0",
"@vite-pwa/assets-generator": "1.0.1",
"fake-indexeddb": "6.2.2",
"happy-dom": "18.0.1",
"react-scan": "0.4.3",
"typescript": "catalog:"
@@ -1,9 +1,11 @@
import type { InfiniteData, QueryFunction, QueryKey } from "@tanstack/react-query"
import type { Draft, ValidRecipeReturnType } from "immer"
import type { Draft, Producer } from "immer"
import { produce } from "immer"
import { queryClient } from "./query-client"
type ValidRecipeReturnDraftType<T> = ReturnType<Producer<T>>
export type DefinedQuery<TQueryKey extends QueryKey, TData> = Readonly<{
key: TQueryKey
fn: QueryFunction<TData>
@@ -21,18 +23,14 @@ export type DefinedQuery<TQueryKey extends QueryKey, TData> = Readonly<{
refetch: () => Promise<TData | undefined>
prefetch: () => Promise<TData | undefined>
setData: <Data = TData>(
updater: (draft: Draft<Data>) => ValidRecipeReturnType<Draft<Data>>,
) => void
setData: <Data = TData>(updater: (draft: Draft<Data>) => ValidRecipeReturnDraftType<Data>) => void
setInfiniteData: (
updater: (
draft: Draft<InfiniteData<TData>>,
) => ValidRecipeReturnType<Draft<InfiniteData<TData>>>,
updater: (draft: Draft<InfiniteData<TData>>) => ValidRecipeReturnDraftType<InfiniteData<TData>>,
) => void
getData: () => TData | undefined
optimisticUpdate: <Data = TData>(
updater: (draft: Draft<Data>) => ValidRecipeReturnType<Draft<Data>> | void,
updater: (draft: Draft<Data>) => ValidRecipeReturnDraftType<Data> | void,
) => Promise<{
previousData: Awaited<Data> | undefined
restore: () => void
@@ -40,9 +38,7 @@ export type DefinedQuery<TQueryKey extends QueryKey, TData> = Readonly<{
}>
optimisticInfiniteUpdate: (
updater: (
draft: Draft<InfiniteData<TData>>,
) => ValidRecipeReturnType<Draft<InfiniteData<TData>>>,
updater: (draft: Draft<InfiniteData<TData>>) => ValidRecipeReturnDraftType<InfiniteData<TData>>,
) => Promise<{
previousData: Awaited<InfiniteData<TData>> | undefined
restore: () => void
@@ -142,7 +138,7 @@ export function defineQuery<
getData: () => queryClient.getQueryData<TData>(key),
optimisticUpdate: async <Data = TData>(
updater: (draft: Draft<Data>) => ValidRecipeReturnType<Draft<Data>>,
updater: (draft: Draft<Data>) => ValidRecipeReturnDraftType<Data>,
) => {
await queryClient.cancelQueries({
queryKey: key,
+3 -3
View File
@@ -67,10 +67,10 @@
"electron-devtools-installer": "4.0.0",
"electron-packager-languages": "0.6.0",
"electron-vite": "4.0.0",
"es-toolkit": "1.39.6",
"fake-indexeddb": "6.0.1",
"es-toolkit": "1.39.10",
"fake-indexeddb": "6.2.2",
"happy-dom": "18.0.1",
"hono": "4.8.1",
"hono": "4.9.7",
"html-minifier-terser": "7.2.0",
"js-yaml": "4.1.0",
"nbump": "2.1.5",
+10 -11
View File
@@ -32,7 +32,7 @@
"@follow/types": "workspace:*",
"@follow/utils": "workspace:*",
"@gorhom/portal": "1.0.14",
"@hookform/resolvers": "5.1.1",
"@hookform/resolvers": "5.2.2",
"@openpanel/sdk": "1.0.0",
"@react-native-community/image-editor": "4.3.0",
"@react-native-firebase/analytics": "22.2.1",
@@ -50,9 +50,9 @@
"@types/qrcode": "1.5.5",
"better-auth": "1.2.9",
"camelcase-keys": "9.1.3",
"dayjs": "1.11.13",
"dayjs": "1.11.18",
"dnum": "2.15.0",
"es-toolkit": "1.39.6",
"es-toolkit": "1.39.10",
"expo": "53.0.12",
"expo-apple-authentication": "7.2.4",
"expo-application": "6.1.4",
@@ -87,10 +87,9 @@
"expo-video": "2.2.2",
"expo-web-browser": "14.2.0",
"franc-min": "6.2.0",
"hono": "4.8.1",
"i18next": "25.3.1",
"immer": "10.1.1",
"jotai": "2.12.5",
"hono": "4.9.7",
"i18next": "25.5.2",
"jotai": "2.14.0",
"lru-cache": "11.1.0",
"nanoid": "5.1.5",
"nativewind": "4.1.23",
@@ -100,8 +99,8 @@
"react": "19.0.0",
"react-dom": "19.0.0",
"react-error-boundary": "6.0.0",
"react-hook-form": "7.60.0",
"react-i18next": "15.6.0",
"react-hook-form": "7.62.0",
"react-i18next": "15.7.3",
"react-native": "0.79.1",
"react-native-awesome-slider": "2.9.0",
"react-native-bouncy-checkbox": "4.1.2",
@@ -125,14 +124,14 @@
"react-native-volume-manager": "2.0.8",
"react-native-web": "0.20.0",
"react-native-webview": "13.15.0",
"shiki": "3.7.0",
"shiki": "3.12.2",
"tailwindcss": "3.4.17",
"title-case": "4.3.2",
"use-sync-external-store": "1.5.0",
"usehooks-ts": "3.1.1",
"zeego": "3.0.6",
"zod": "3.25.75",
"zustand": "5.0.6"
"zustand": "5.0.8"
},
"devDependencies": {
"@babel/core": "7.28.0",
@@ -15,8 +15,8 @@
"@follow/types": "workspace:*",
"clsx": "2.1.1",
"foxact": "0.2.49",
"jotai": "2.12.5",
"motion": "12.23.0",
"jotai": "2.14.0",
"motion": "12.23.13",
"react": "19.0.0",
"react-blurhash": "0.3.0"
}
+11 -11
View File
@@ -14,30 +14,30 @@
"@fastify/request-context": "6.2.0",
"@follow/tracker": "workspace:*",
"@fontsource/sn-pro": "5.2.5",
"@hcaptcha/react-hcaptcha": "1.12.0",
"@hcaptcha/react-hcaptcha": "1.12.1",
"@openpanel/web": "1.0.1",
"@radix-ui/react-avatar": "1.1.10",
"@resvg/resvg-js": "2.6.2",
"@sentry/react": "9.35.0",
"@tanstack/react-query": "5.81.5",
"blurhash": "2.0.5",
"dayjs": "1.11.13",
"dayjs": "1.11.18",
"fastify": "5.4.0",
"i18next": "25.3.1",
"jotai": "2.12.5",
"i18next": "25.5.2",
"jotai": "2.14.0",
"kose-font": "1.0.0",
"linkedom": "0.18.11",
"motion": "12.23.0",
"linkedom": "0.18.12",
"motion": "12.23.13",
"ofetch": "1.4.1",
"rc-modal-sheet": "1.0.0",
"react-blurhash": "0.3.0",
"react-hook-form": "7.60.0",
"react-hook-form": "7.62.0",
"react-hotkeys-hook": "5.1.0",
"react-i18next": "15.6.0",
"react-i18next": "15.7.3",
"react-photo-view": "1.2.7",
"react-router": "7.6.3",
"react-router": "7.9.1",
"satori": "0.15.2",
"sonner": "2.0.6",
"sonner": "2.0.7",
"use-context-selector": "2.0.0",
"xss": "1.0.15",
"zod": "3.25.75"
@@ -56,7 +56,7 @@
"code-inspector-plugin": "0.20.15",
"daisyui": "4.12.24",
"dotenv-flow": "4.1.0",
"es-toolkit": "1.39.6",
"es-toolkit": "1.39.10",
"fast-glob": "3.3.3",
"foxact": "0.2.49",
"html-minifier-terser": "7.2.0",
+1 -1
View File
@@ -40,7 +40,7 @@
"@tsslint/cli": "1.5.18",
"@tsslint/config": "1.5.18",
"@tsslint/eslint": "1.5.18",
"@types/node": "24.0.10",
"@types/node": "24.5.0",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"@vercel/node": "5.3.3",
+1 -1
View File
@@ -19,7 +19,7 @@
"@iconify/utils": "2.3.0",
"@tailwindcss/container-queries": "0.1.1",
"@tailwindcss/typography": "0.5.16",
"es-toolkit": "1.39.6",
"es-toolkit": "1.39.10",
"tailwindcss-animate": "1.0.7",
"tailwindcss-motion": "1.1.1",
"tailwindcss-multi": "0.4.6",
+1 -1
View File
@@ -20,6 +20,6 @@
"@follow/hooks": "workspace:*",
"@follow/types": "workspace:*",
"@follow/utils": "workspace:*",
"jotai": "2.12.5"
"jotai": "2.14.0"
}
}
+6 -6
View File
@@ -64,20 +64,20 @@
"@types/hast": "3.0.4",
"@types/unist": "3.0.3",
"class-variance-authority": "0.7.1",
"dayjs": "1.11.13",
"dayjs": "1.11.18",
"foxact": "0.2.49",
"hast-util-to-jsx-runtime": "2.3.6",
"hast-util-to-text": "4.0.2",
"input-otp": "1.4.2",
"jotai": "2.12.5",
"jotai": "2.14.0",
"katex": "0.16.22",
"lexical": "0.33.1",
"masonic": "4.1.0",
"motion": "12.23.0",
"motion": "12.23.13",
"react-blurhash": "0.3.0",
"react-fast-marquee": "1.6.5",
"react-hook-form": "7.60.0",
"react-i18next": "15.6.0",
"react-hook-form": "7.62.0",
"react-i18next": "15.7.3",
"rehype-infer-description-meta": "2.0.0",
"rehype-parse": "9.0.1",
"rehype-sanitize": "6.0.0",
@@ -86,7 +86,7 @@
"remark-gfm": "4.0.1",
"remark-gh-alerts": "0.0.3",
"remark-rehype": "11.1.2",
"sonner": "2.0.6",
"sonner": "2.0.7",
"tailwindcss-uikit-colors": "catalog:",
"unified": "11.0.5",
"unist-util-visit": "5.0.0",
+1 -1
View File
@@ -16,7 +16,7 @@
"@follow/types": "workspace:*",
"@follow/utils": "workspace:*",
"foxact": "0.2.49",
"jotai": "2.12.5",
"jotai": "2.14.0",
"usehooks-ts": "3.1.1"
},
"devDependencies": {
+1 -1
View File
@@ -25,7 +25,7 @@
"@follow/shared": "workspace:*",
"@follow/types": "workspace:*",
"@follow/utils": "workspace:*",
"hono": "4.8.1"
"hono": "4.9.7"
},
"devDependencies": {
"@follow/configs": "workspace:*"
+2 -2
View File
@@ -39,8 +39,8 @@
"ai": "5.0.4",
"better-auth": "1.2.9",
"drizzle-orm": "0.44.3",
"hono": "4.8.1",
"sonner": "2.0.6",
"hono": "4.9.7",
"sonner": "2.0.7",
"stripe": "18.2.1",
"zod": "3.25.75"
}
+3 -3
View File
@@ -113,8 +113,8 @@
"@follow/tracker": "workspace:*",
"@follow/utils": "workspace:*",
"@tanstack/react-query": "5.81.5",
"es-toolkit": "1.39.6",
"immer": "10.1.1",
"zustand": "5.0.6"
"es-toolkit": "1.39.10",
"immer": "10.1.3",
"zustand": "5.0.8"
}
}
+2 -2
View File
@@ -36,8 +36,8 @@
"chardet": "2.1.0",
"clsx": "2.1.1",
"dompurify": "3.2.6",
"linkedom": "0.18.11",
"motion": "12.23.0",
"linkedom": "0.18.12",
"motion": "12.23.13",
"nanoid": "5.1.5",
"path-to-regexp": "8.2.0",
"tailwind-merge": "3.3.1",
+1 -1
View File
@@ -14,7 +14,7 @@
"@mozilla/readability": "0.6.0",
"chardet": "2.1.0",
"dompurify": "3.2.6",
"linkedom": "0.18.11"
"linkedom": "0.18.12"
},
"devDependencies": {
"@follow/configs": "workspace:*",
-13
View File
@@ -1,13 +0,0 @@
diff --git a/dist/immer.d.ts b/dist/immer.d.ts
index 2cb6cddda28d1fb226fc9dc5fc4b64ec7fc55a9c..161cf402a794712dc700c6b63c138622b0a3dc4c 100644
--- a/dist/immer.d.ts
+++ b/dist/immer.d.ts
@@ -48,7 +48,7 @@ type PatchListener = (patches: Patch[], inversePatches: Patch[]) => void;
* Utility types
*/
type PatchesTuple<T> = readonly [T, Patch[], Patch[]];
-type ValidRecipeReturnType<State> = State | void | undefined | (State extends undefined ? typeof NOTHING : never);
+export type ValidRecipeReturnType<State> = State | void | undefined | (State extends undefined ? typeof NOTHING : never);
type ReturnTypeWithPatchesIfNeeded<State, UsePatches extends boolean> = UsePatches extends true ? PatchesTuple<State> : State;
/**
* Core Producer inference
+2905 -2029
View File
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -8,7 +8,7 @@ packages:
- "!**/example/**"
catalog:
typescript: 5.8.3
typescript: 5.9.2
"@follow-app/client-sdk": 0.3.65
tailwindcss-uikit-colors: 1.0.0
@@ -48,7 +48,6 @@ overrides:
ignorePatchFailures: false
patchedDependencies:
immer@10.1.1: patches/immer@10.1.1.patch
re-resizable@6.11.2: patches/re-resizable@6.11.2.patch
hono: patches/hono.patch
electron-context-menu@4.0.5: patches/electron-context-menu@4.0.5.patch