From 0abbc9d24680b96cdd8abe556074d3b0932b596e Mon Sep 17 00:00:00 2001 From: Yi-Jyun Pan Date: Fri, 19 Sep 2025 14:56:38 +0800 Subject: [PATCH 1/3] feat: implement progress bar for navigation --- app/layout.tsx | 7 +++--- package.json | 1 + pnpm-lock.yaml | 35 +++++++++++++++++++++++++++++ providers/use-progress-provider.tsx | 3 +++ 4 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 providers/use-progress-provider.tsx diff --git a/app/layout.tsx b/app/layout.tsx index 080826f..45ad1c4 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -4,6 +4,7 @@ import { Toaster } from "@/components/ui/sonner"; import { getAuthToken } from "@/lib/auth"; import { ApolloWrapper } from "@/providers/use-apollo"; import { PreloadResources } from "./preload-resources"; +import { ProgressProvider } from "@/providers/use-progress-provider"; export const metadata: Metadata = { title: "資料庫練功坊", @@ -29,11 +30,9 @@ export default async function RootLayout({ href="https://assets.dbplay.app/ibm-plex-sans-tc/css/ibm-plex-sans-tc-default-swap.min.css" /> - + - {children} + {children} diff --git a/package.json b/package.json index c6dd875..d4ec73c 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "dependencies": { "@apollo/client": "4.0.5", "@apollo/client-integration-nextjs": "^0.13.1", + "@bprogress/next": "^3.2.12", "@graphql-codegen/client-preset": "^5.0.1", "@hookform/resolvers": "^5.2.2", "@radix-ui/react-alert-dialog": "^1.1.15", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73828ff..77fddc3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@apollo/client-integration-nextjs': specifier: ^0.13.1 version: 0.13.1(@apollo/client@4.0.5(graphql-ws@6.0.6(graphql@16.11.0)(ws@8.18.3))(graphql@16.11.0)(react-dom@19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912))(react@19.2.0-canary-8a8e9a7e-20250912)(rxjs@7.8.2))(@types/react@19.1.13)(graphql@16.11.0)(next@15.6.0-canary.6(@babel/core@7.28.4)(babel-plugin-react-compiler@19.1.0-rc.3)(react-dom@19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912))(react@19.2.0-canary-8a8e9a7e-20250912))(react-dom@19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912))(react@19.2.0-canary-8a8e9a7e-20250912)(rxjs@7.8.2) + '@bprogress/next': + specifier: ^3.2.12 + version: 3.2.12(next@15.6.0-canary.6(@babel/core@7.28.4)(babel-plugin-react-compiler@19.1.0-rc.3)(react-dom@19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912))(react@19.2.0-canary-8a8e9a7e-20250912))(react-dom@19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912))(react@19.2.0-canary-8a8e9a7e-20250912) '@graphql-codegen/client-preset': specifier: ^5.0.1 version: 5.0.1(graphql@16.11.0) @@ -316,6 +319,22 @@ packages: resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} + '@bprogress/core@1.3.4': + resolution: {integrity: sha512-q/AqpurI/1uJzOrQROuZWixn/+ARekh+uvJGwLCP6HQ/EqAX4SkvNf618tSBxL4NysC0MwqAppb/mRw6Tzi61w==} + + '@bprogress/next@3.2.12': + resolution: {integrity: sha512-/ZvNwbAd0ty9QiQwCfT2AfwWVdAaEyCPx5RUz3CfiiJS/OLBohhDz/IC/srhwK9GnXeXavvtiUrpKzN5GJDwlw==} + peerDependencies: + next: '>=13.0.0' + react: '>=18.0.0' + react-dom: '>=18.0.0' + + '@bprogress/react@1.2.7': + resolution: {integrity: sha512-MqJfHW+R5CQeWqyqrLxUjdBRHk24Xl63OkBLo5DMWqUqocUikRTfCIc/jtQQbPk7BRfdr5OP3Lx7YlfQ9QOZMQ==} + peerDependencies: + react: '>=18.0.0' + react-dom: '>=18.0.0' + '@dprint/darwin-arm64@0.50.2': resolution: {integrity: sha512-4d08INZlTxbPW9LK9W8+93viN543/qA2Kxn4azVnPW/xCb2Im03UqJBz8mMm3nJZdtNnK3uTVG3ib1VW+XJisw==} cpu: [arm64] @@ -4488,6 +4507,22 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@bprogress/core@1.3.4': {} + + '@bprogress/next@3.2.12(next@15.6.0-canary.6(@babel/core@7.28.4)(babel-plugin-react-compiler@19.1.0-rc.3)(react-dom@19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912))(react@19.2.0-canary-8a8e9a7e-20250912))(react-dom@19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912))(react@19.2.0-canary-8a8e9a7e-20250912)': + dependencies: + '@bprogress/core': 1.3.4 + '@bprogress/react': 1.2.7(react-dom@19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912))(react@19.2.0-canary-8a8e9a7e-20250912) + next: 15.6.0-canary.6(@babel/core@7.28.4)(babel-plugin-react-compiler@19.1.0-rc.3)(react-dom@19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912))(react@19.2.0-canary-8a8e9a7e-20250912) + react: 19.2.0-canary-8a8e9a7e-20250912 + react-dom: 19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912) + + '@bprogress/react@1.2.7(react-dom@19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912))(react@19.2.0-canary-8a8e9a7e-20250912)': + dependencies: + '@bprogress/core': 1.3.4 + react: 19.2.0-canary-8a8e9a7e-20250912 + react-dom: 19.2.0-canary-8a8e9a7e-20250912(react@19.2.0-canary-8a8e9a7e-20250912) + '@dprint/darwin-arm64@0.50.2': optional: true diff --git a/providers/use-progress-provider.tsx b/providers/use-progress-provider.tsx new file mode 100644 index 0000000..2417c47 --- /dev/null +++ b/providers/use-progress-provider.tsx @@ -0,0 +1,3 @@ +"use client"; + +export { AppProgressProvider as ProgressProvider } from "@bprogress/next"; From 2fb8381654374ddf33e9af69e21d4179888de4e8 Mon Sep 17 00:00:00 2001 From: Yi-Jyun Pan Date: Fri, 19 Sep 2025 14:57:19 +0800 Subject: [PATCH 2/3] chore: upgrade dependencies --- package.json | 6 +- pnpm-lock.yaml | 188 ++++++++++++++++++++++++------------------------- 2 files changed, 97 insertions(+), 97 deletions(-) diff --git a/package.json b/package.json index d4ec73c..ffa0c26 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "remark-html": "^16.0.1", "sonner": "^2.0.7", "tailwind-merge": "^3.3.1", - "zod": "^4.1.8" + "zod": "^4.1.9" }, "devDependencies": { "@0no-co/graphqlsp": "^1.15.0", @@ -58,14 +58,14 @@ "@graphql-typed-document-node/core": "^3.2.0", "@parcel/watcher": "^2.5.1", "@tailwindcss/postcss": "^4.1.13", - "@types/node": "^24.5.0", + "@types/node": "^24.5.2", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", "@typescript-eslint/parser": "^8.44.0", "dprint": "^0.50.2", "eslint": "^9.35.0", "eslint-config-next": "15.5.3", - "eslint-plugin-better-tailwindcss": "^3.7.8", + "eslint-plugin-better-tailwindcss": "^3.7.9", "eslint-plugin-react-hooks": "^5.2.0", "tailwindcss": "^4.1.13", "tw-animate-css": "^1.3.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77fddc3..e141c38 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,8 +111,8 @@ importers: specifier: ^3.3.1 version: 3.3.1 zod: - specifier: ^4.1.8 - version: 4.1.8 + specifier: ^4.1.9 + version: 4.1.9 devDependencies: '@0no-co/graphqlsp': specifier: ^1.15.0 @@ -122,7 +122,7 @@ importers: version: 3.3.1 '@graphql-codegen/cli': specifier: ^6.0.0 - version: 6.0.0(@parcel/watcher@2.5.1)(@types/node@24.5.0)(graphql@16.11.0)(typescript@5.9.2) + version: 6.0.0(@parcel/watcher@2.5.1)(@types/node@24.5.2)(graphql@16.11.0)(typescript@5.9.2) '@graphql-codegen/schema-ast': specifier: ^5.0.0 version: 5.0.0(graphql@16.11.0) @@ -136,8 +136,8 @@ importers: specifier: ^4.1.13 version: 4.1.13 '@types/node': - specifier: ^24.5.0 - version: 24.5.0 + specifier: ^24.5.2 + version: 24.5.2 '@types/react': specifier: ^19.1.13 version: 19.1.13 @@ -157,8 +157,8 @@ importers: specifier: 15.5.3 version: 15.5.3(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) eslint-plugin-better-tailwindcss: - specifier: ^3.7.8 - version: 3.7.8(eslint@9.35.0(jiti@2.5.1))(tailwindcss@4.1.13) + specifier: ^3.7.9 + version: 3.7.9(eslint@9.35.0(jiti@2.5.1))(tailwindcss@4.1.13) eslint-plugin-react-hooks: specifier: ^5.2.0 version: 5.2.0(eslint@9.35.0(jiti@2.5.1)) @@ -1740,8 +1740,8 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@24.5.0': - resolution: {integrity: sha512-y1dMvuvJspJiPSDZUQ+WMBvF7dpnEqN4x9DDC9ie5Fs/HUZJA3wFp7EhHoVaKX/iI0cRoECV8X2jL8zi0xrHCg==} + '@types/node@24.5.2': + resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} '@types/react-dom@19.1.9': resolution: {integrity: sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==} @@ -2510,8 +2510,8 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-better-tailwindcss@3.7.8: - resolution: {integrity: sha512-B8njRNTI89lTLaX0Usc7n51+AJwXtwYq8jmsLhafSJlmnk5U41ahKH/IsvS37evYpFpNod4kYF0AOQeOguulSQ==} + eslint-plugin-better-tailwindcss@3.7.9: + resolution: {integrity: sha512-xmd3YqRoc57ngplFBZLn13bLpKsq6fe+ipdObilG46llJi0MvHSx8+uQ1VNBE1/ieIcedmVY7quol4WLntM8iw==} engines: {node: ^20.11.0 || >=21.2.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -4317,8 +4317,8 @@ packages: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} - zod@4.1.8: - resolution: {integrity: sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==} + zod@4.1.9: + resolution: {integrity: sha512-HI32jTq0AUAC125z30E8bQNz0RQ+9Uc+4J7V97gLYjZVKRjeydPgGt6dvQzFrav7MYOUGFqqOGiHpA/fdbd0cQ==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -4668,7 +4668,7 @@ snapshots: graphql: 16.11.0 tslib: 2.6.3 - '@graphql-codegen/cli@6.0.0(@parcel/watcher@2.5.1)(@types/node@24.5.0)(graphql@16.11.0)(typescript@5.9.2)': + '@graphql-codegen/cli@6.0.0(@parcel/watcher@2.5.1)(@types/node@24.5.2)(graphql@16.11.0)(typescript@5.9.2)': dependencies: '@babel/generator': 7.28.3 '@babel/template': 7.27.2 @@ -4679,20 +4679,20 @@ snapshots: '@graphql-tools/apollo-engine-loader': 8.0.22(graphql@16.11.0) '@graphql-tools/code-file-loader': 8.1.22(graphql@16.11.0) '@graphql-tools/git-loader': 8.0.26(graphql@16.11.0) - '@graphql-tools/github-loader': 8.0.22(@types/node@24.5.0)(graphql@16.11.0) + '@graphql-tools/github-loader': 8.0.22(@types/node@24.5.2)(graphql@16.11.0) '@graphql-tools/graphql-file-loader': 8.1.1(graphql@16.11.0) '@graphql-tools/json-file-loader': 8.0.20(graphql@16.11.0) '@graphql-tools/load': 8.1.2(graphql@16.11.0) - '@graphql-tools/url-loader': 8.0.33(@types/node@24.5.0)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.33(@types/node@24.5.2)(graphql@16.11.0) '@graphql-tools/utils': 10.9.1(graphql@16.11.0) - '@inquirer/prompts': 7.8.4(@types/node@24.5.0) + '@inquirer/prompts': 7.8.4(@types/node@24.5.2) '@whatwg-node/fetch': 0.10.10 chalk: 4.1.2 cosmiconfig: 9.0.0(typescript@5.9.2) debounce: 2.2.0 detect-indent: 6.1.0 graphql: 16.11.0 - graphql-config: 5.1.5(@types/node@24.5.0)(graphql@16.11.0)(typescript@5.9.2) + graphql-config: 5.1.5(@types/node@24.5.2)(graphql@16.11.0)(typescript@5.9.2) is-glob: 4.0.3 jiti: 2.5.1 json-to-pretty-yaml: 1.2.2 @@ -4901,7 +4901,7 @@ snapshots: - uWebSockets.js - utf-8-validate - '@graphql-tools/executor-http@1.3.3(@types/node@24.5.0)(graphql@16.11.0)': + '@graphql-tools/executor-http@1.3.3(@types/node@24.5.2)(graphql@16.11.0)': dependencies: '@graphql-hive/signal': 1.0.0 '@graphql-tools/executor-common': 0.0.4(graphql@16.11.0) @@ -4911,7 +4911,7 @@ snapshots: '@whatwg-node/fetch': 0.10.10 '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.11.0 - meros: 1.3.1(@types/node@24.5.0) + meros: 1.3.1(@types/node@24.5.2) tslib: 2.8.1 transitivePeerDependencies: - '@types/node' @@ -4950,9 +4950,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@graphql-tools/github-loader@8.0.22(@types/node@24.5.0)(graphql@16.11.0)': + '@graphql-tools/github-loader@8.0.22(@types/node@24.5.2)(graphql@16.11.0)': dependencies: - '@graphql-tools/executor-http': 1.3.3(@types/node@24.5.0)(graphql@16.11.0) + '@graphql-tools/executor-http': 1.3.3(@types/node@24.5.2)(graphql@16.11.0) '@graphql-tools/graphql-tag-pluck': 8.3.21(graphql@16.11.0) '@graphql-tools/utils': 10.9.1(graphql@16.11.0) '@whatwg-node/fetch': 0.10.10 @@ -5041,10 +5041,10 @@ snapshots: graphql: 16.11.0 tslib: 2.8.1 - '@graphql-tools/url-loader@8.0.33(@types/node@24.5.0)(graphql@16.11.0)': + '@graphql-tools/url-loader@8.0.33(@types/node@24.5.2)(graphql@16.11.0)': dependencies: '@graphql-tools/executor-graphql-ws': 2.0.7(graphql@16.11.0) - '@graphql-tools/executor-http': 1.3.3(@types/node@24.5.0)(graphql@16.11.0) + '@graphql-tools/executor-http': 1.3.3(@types/node@24.5.2)(graphql@16.11.0) '@graphql-tools/executor-legacy-ws': 1.1.19(graphql@16.11.0) '@graphql-tools/utils': 10.9.1(graphql@16.11.0) '@graphql-tools/wrap': 10.1.4(graphql@16.11.0) @@ -5188,27 +5188,27 @@ snapshots: '@img/sharp-win32-x64@0.34.3': optional: true - '@inquirer/checkbox@4.2.2(@types/node@24.5.0)': + '@inquirer/checkbox@4.2.2(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.5.0) + '@inquirer/core': 10.2.0(@types/node@24.5.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/type': 3.0.8(@types/node@24.5.2) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/confirm@5.1.16(@types/node@24.5.0)': + '@inquirer/confirm@5.1.16(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.5.0) - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/core': 10.2.0(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/core@10.2.0(@types/node@24.5.0)': + '@inquirer/core@10.2.0(@types/node@24.5.2)': dependencies: '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/type': 3.0.8(@types/node@24.5.2) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -5216,100 +5216,100 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/editor@4.2.18(@types/node@24.5.0)': + '@inquirer/editor@4.2.18(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.5.0) - '@inquirer/external-editor': 1.0.1(@types/node@24.5.0) - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/core': 10.2.0(@types/node@24.5.2) + '@inquirer/external-editor': 1.0.1(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/expand@4.0.18(@types/node@24.5.0)': + '@inquirer/expand@4.0.18(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.5.0) - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/core': 10.2.0(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/external-editor@1.0.1(@types/node@24.5.0)': + '@inquirer/external-editor@1.0.1(@types/node@24.5.2)': dependencies: chardet: 2.1.0 iconv-lite: 0.6.3 optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.2(@types/node@24.5.0)': + '@inquirer/input@4.2.2(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.5.0) - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/core': 10.2.0(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/number@3.0.18(@types/node@24.5.0)': + '@inquirer/number@3.0.18(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.5.0) - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/core': 10.2.0(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/password@4.0.18(@types/node@24.5.0)': + '@inquirer/password@4.0.18(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.5.0) - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/core': 10.2.0(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 24.5.0 - - '@inquirer/prompts@7.8.4(@types/node@24.5.0)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.5.0) - '@inquirer/confirm': 5.1.16(@types/node@24.5.0) - '@inquirer/editor': 4.2.18(@types/node@24.5.0) - '@inquirer/expand': 4.0.18(@types/node@24.5.0) - '@inquirer/input': 4.2.2(@types/node@24.5.0) - '@inquirer/number': 3.0.18(@types/node@24.5.0) - '@inquirer/password': 4.0.18(@types/node@24.5.0) - '@inquirer/rawlist': 4.1.6(@types/node@24.5.0) - '@inquirer/search': 3.1.1(@types/node@24.5.0) - '@inquirer/select': 4.3.2(@types/node@24.5.0) + '@types/node': 24.5.2 + + '@inquirer/prompts@7.8.4(@types/node@24.5.2)': + dependencies: + '@inquirer/checkbox': 4.2.2(@types/node@24.5.2) + '@inquirer/confirm': 5.1.16(@types/node@24.5.2) + '@inquirer/editor': 4.2.18(@types/node@24.5.2) + '@inquirer/expand': 4.0.18(@types/node@24.5.2) + '@inquirer/input': 4.2.2(@types/node@24.5.2) + '@inquirer/number': 3.0.18(@types/node@24.5.2) + '@inquirer/password': 4.0.18(@types/node@24.5.2) + '@inquirer/rawlist': 4.1.6(@types/node@24.5.2) + '@inquirer/search': 3.1.1(@types/node@24.5.2) + '@inquirer/select': 4.3.2(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/rawlist@4.1.6(@types/node@24.5.0)': + '@inquirer/rawlist@4.1.6(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.5.0) - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/core': 10.2.0(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/search@3.1.1(@types/node@24.5.0)': + '@inquirer/search@3.1.1(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.5.0) + '@inquirer/core': 10.2.0(@types/node@24.5.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/select@4.3.2(@types/node@24.5.0)': + '@inquirer/select@4.3.2(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.5.0) + '@inquirer/core': 10.2.0(@types/node@24.5.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.0) + '@inquirer/type': 3.0.8(@types/node@24.5.2) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 - '@inquirer/type@3.0.8(@types/node@24.5.0)': + '@inquirer/type@3.0.8(@types/node@24.5.2)': optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 '@isaacs/fs-minipass@4.0.1': dependencies: @@ -6004,7 +6004,7 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@24.5.0': + '@types/node@24.5.2': dependencies: undici-types: 7.12.0 @@ -6022,7 +6022,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 '@typescript-eslint/eslint-plugin@8.43.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: @@ -6881,7 +6881,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-better-tailwindcss@3.7.8(eslint@9.35.0(jiti@2.5.1))(tailwindcss@4.1.13): + eslint-plugin-better-tailwindcss@3.7.9(eslint@9.35.0(jiti@2.5.1))(tailwindcss@4.1.13): dependencies: '@eslint/css-tree': 3.6.5 enhanced-resolve: 5.18.3 @@ -7201,13 +7201,13 @@ snapshots: graphemer@1.4.0: {} - graphql-config@5.1.5(@types/node@24.5.0)(graphql@16.11.0)(typescript@5.9.2): + graphql-config@5.1.5(@types/node@24.5.2)(graphql@16.11.0)(typescript@5.9.2): dependencies: '@graphql-tools/graphql-file-loader': 8.1.1(graphql@16.11.0) '@graphql-tools/json-file-loader': 8.0.20(graphql@16.11.0) '@graphql-tools/load': 8.1.2(graphql@16.11.0) '@graphql-tools/merge': 9.1.1(graphql@16.11.0) - '@graphql-tools/url-loader': 8.0.33(@types/node@24.5.0)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.33(@types/node@24.5.2)(graphql@16.11.0) '@graphql-tools/utils': 10.9.1(graphql@16.11.0) cosmiconfig: 8.3.6(typescript@5.9.2) graphql: 16.11.0 @@ -7762,9 +7762,9 @@ snapshots: merge2@1.4.1: {} - meros@1.3.1(@types/node@24.5.0): + meros@1.3.1(@types/node@24.5.2): optionalDependencies: - '@types/node': 24.5.0 + '@types/node': 24.5.2 micromark-core-commonmark@2.0.3: dependencies: @@ -9044,6 +9044,6 @@ snapshots: yoctocolors-cjs@2.1.3: {} - zod@4.1.8: {} + zod@4.1.9: {} zwitch@2.0.4: {} From c68b23025ac8ae3b4d0333c6e573b6a4e1362f0b Mon Sep 17 00:00:00 2001 From: Yi-Jyun Pan Date: Fri, 19 Sep 2025 14:57:41 +0800 Subject: [PATCH 3/3] style: reformat codebase --- app/layout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/layout.tsx b/app/layout.tsx index 45ad1c4..a921e90 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -3,8 +3,8 @@ import "./globals.css"; import { Toaster } from "@/components/ui/sonner"; import { getAuthToken } from "@/lib/auth"; import { ApolloWrapper } from "@/providers/use-apollo"; -import { PreloadResources } from "./preload-resources"; import { ProgressProvider } from "@/providers/use-progress-provider"; +import { PreloadResources } from "./preload-resources"; export const metadata: Metadata = { title: "資料庫練功坊",