diff --git a/CLAUDE.md b/CLAUDE.md index 9b2cc91aa2..b6a2ac7598 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -21,7 +21,8 @@ One GitHub release `agenthits-vX.Y.Z` covers a batch of work, not a single PR (o `.github/workflows/deps-auto-update.yml` runs every day at 03:00 UTC (manually: `gh workflow run deps-auto-update.yml --repo TaskFlow-Systems/dokploy --ref AgentHits-Dev`). It runs `bun update --recursive` within the `package.json` ranges (minor and patch, direct and transitive packages, versions at least one day old), then `bun audit`, and keeps one PR `зависимости: автообновление библиотек` from `deps/auto-update` into `AgentHits-Dev`, rebuilt daily until it is merged. It starts `pull-request.yml` on the branch through `workflow_dispatch`; judge the PR by that run. It never merges. The same workflow runs in the owner's other projects; it replaced Dependabot for Bun, which moves only direct dependencies. It needs "Allow GitHub Actions to create and approve pull requests" in the repo's Actions settings. -- Held packages stay pinned to exact versions (`better-auth`, `@better-auth/*`, `stripe`, `@stepperize/react`, `@dokploy/trpc-openapi`) or `~` (`ssh2`), and the root `overrides` are exact, so the workflow does not move them. Keep new holds pinned the same way. +- Held packages stay pinned to exact versions (`better-auth`, `@better-auth/*`, `better-call`, `@better-fetch/fetch`, `stripe`, `@stepperize/react`, `@dokploy/trpc-openapi`) or `~` (`ssh2`), in their `package.json` and in the root `overrides`, so the workflow does not move them. Keep new holds pinned the same way. +- Every other root override is a range `>= ` (for `0.x`, ``), so the override keeps the fixed floor and the workflow still moves the package. A security override follows the same form; an exact version there freezes the package and can silently override a newer direct dependency. - Major updates are done by hand, one PR each (the `dokploy-upgrader` agent), with `bun add @ --minimum-release-age=86400`. - The one-day age is `minimumReleaseAge` in `bunfig.toml` and `MIN_RELEASE_AGE` in the workflow; change both together. - A commit pushed to the branch of the open PR stops its daily rebuild until the PR is merged or closed. diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json index 38b87a3b6f..9479406577 100644 --- a/apps/dokploy/package.json +++ b/apps/dokploy/package.json @@ -105,16 +105,16 @@ "dockerode": "5.0.1", "dompurify": "^3.4.17", "dotenv": "18.0.9", - "drizzle-orm": "0.45.4", + "drizzle-orm": "^0.45.4", "drizzle-zod": "0.8.3", "fancy-ansi": "^0.2.2", "input-otp": "^1.5.0", "js-cookie": "^3.0.8", - "lodash": "4.18.1", + "lodash": "^4.18.1", "lucide-react": "^1.61.0", "micromatch": "4.0.8", "nanoid": "6.0.2", - "next": "16.4.3", + "next": "^16.4.3", "next-themes": "^0.4.6", "nextjs-toploader": "^3.9.17", "node-os-utils": "3.1.0", @@ -124,7 +124,7 @@ "octokit": "5.0.5", "pino": "10.4.0", "pino-pretty": "13.2.0", - "postgres": "3.4.9", + "postgres": "^3.4.9", "public-ip": "8.0.0", "qrcode": "^1.5.4", "radix-ui": "^1.8.1", @@ -175,7 +175,7 @@ "@types/swagger-ui-react": "^5.18.0", "@types/ws": "8.18.2", "drizzle-kit": "^0.31.11", - "esbuild": "0.28.2", + "esbuild": "^0.28.2", "lint-staged": "^17.6.0", "memfs": "^4.80.0", "simple-icons": "^16.36.0", diff --git a/apps/schedules/package.json b/apps/schedules/package.json index c6b9ea68cf..22a35784c6 100644 --- a/apps/schedules/package.json +++ b/apps/schedules/package.json @@ -13,7 +13,7 @@ "@hono/zod-validator": "0.9.1", "bullmq": "5.81.5", "dotenv": "^18.0.9", - "drizzle-orm": "0.45.4", + "drizzle-orm": "^0.45.4", "hono": "^4.13.13", "ioredis": "5.11.1", "pino": "10.4.0", diff --git a/bun.lock b/bun.lock index e96e9043ae..d336fc0e64 100644 --- a/bun.lock +++ b/bun.lock @@ -8,7 +8,7 @@ "@biomejs/biome": "2.6.2", "@types/node": "^26.6.5", "dotenv": "18.0.9", - "esbuild": "0.28.2", + "esbuild": "^0.28.2", "lint-staged": "^17.6.0", "node-gyp": "13.1.0", "tsx": "4.23.15", @@ -105,16 +105,16 @@ "dockerode": "5.0.1", "dompurify": "^3.4.17", "dotenv": "18.0.9", - "drizzle-orm": "0.45.4", + "drizzle-orm": "^0.45.4", "drizzle-zod": "0.8.3", "fancy-ansi": "^0.2.2", "input-otp": "^1.5.0", "js-cookie": "^3.0.8", - "lodash": "4.18.1", + "lodash": "^4.18.1", "lucide-react": "^1.61.0", "micromatch": "4.0.8", "nanoid": "6.0.2", - "next": "16.4.3", + "next": "^16.4.3", "next-themes": "^0.4.6", "nextjs-toploader": "^3.9.17", "node-os-utils": "3.1.0", @@ -124,7 +124,7 @@ "octokit": "5.0.5", "pino": "10.4.0", "pino-pretty": "13.2.0", - "postgres": "3.4.9", + "postgres": "^3.4.9", "public-ip": "8.0.0", "qrcode": "^1.5.4", "radix-ui": "^1.8.1", @@ -175,7 +175,7 @@ "@types/swagger-ui-react": "^5.18.0", "@types/ws": "8.18.2", "drizzle-kit": "^0.31.11", - "esbuild": "0.28.2", + "esbuild": "^0.28.2", "lint-staged": "^17.6.0", "memfs": "^4.80.0", "simple-icons": "^16.36.0", @@ -194,7 +194,7 @@ "@hono/zod-validator": "0.9.1", "bullmq": "5.81.5", "dotenv": "^18.0.9", - "drizzle-orm": "0.45.4", + "drizzle-orm": "^0.45.4", "hono": "^4.13.13", "ioredis": "5.11.1", "pino": "10.4.0", @@ -250,9 +250,9 @@ "dockerode": "5.0.1", "dotenv": "18.0.9", "drizzle-dbml-generator": "0.10.0", - "drizzle-orm": "0.45.4", + "drizzle-orm": "^0.45.4", "drizzle-zod": "0.8.3", - "lodash": "4.18.1", + "lodash": "^4.18.1", "micromatch": "4.0.8", "nanoid": "6.0.2", "node-os-utils": "3.1.0", @@ -262,7 +262,7 @@ "octokit": "5.0.5", "pino": "10.4.0", "pino-pretty": "13.2.0", - "postgres": "3.4.9", + "postgres": "^3.4.9", "public-ip": "8.0.0", "qrcode": "^1.5.4", "react": "19.3.1", @@ -294,7 +294,7 @@ "@types/ws": "8.18.2", "auth": "1.7.12", "drizzle-kit": "^0.31.11", - "esbuild": "0.28.2", + "esbuild": "^0.28.2", "esbuild-plugin-alias": "0.2.1", "rimraf": "6.1.3", "tsc-alias": "1.9.9", @@ -309,7 +309,7 @@ }, "@better-auth/utils": "0.5.0", "@better-fetch/fetch": "1.3.2", - "@codemirror/state": "6.7.6", + "@codemirror/state": ">=6.7.6 <7.0.0", "@dotenvx/dotenvx": { "undici": "^7.30.1", }, @@ -319,32 +319,32 @@ "undici": "^7.30.1", }, "@tailwindcss/typography": { - "postcss-selector-parser": "7.1.6", + "postcss-selector-parser": ">=7.1.6 <8.0.0", }, "axios": ">=1.20.0 <2.0.0", "better-auth": "1.7.12", "better-call": "1.4.4", "body-parser": ">=2.4.0 <3.0.0", - "drizzle-orm": "0.45.4", - "esbuild": "0.28.2", + "drizzle-orm": ">=0.45.4 <0.46.0", + "esbuild": ">=0.28.2 <0.29.0", "fast-uri": ">=3.1.9 <4.0.0", - "h3": "1.15.11", - "hono": "4.13.13", + "h3": ">=1.15.11 <2.0.0", + "hono": ">=4.13.13 <5.0.0", "http-cache-semantics": ">=4.3.0 <5.0.0", "inngest": { "zod": "^4.6.7", }, "ip-address": ">=10.7.4 <11.0.0", - "js-yaml": "4.3.2", - "lodash": "4.18.1", - "next": "16.4.2", - "postcss": "8.5.28", - "postgres": "3.4.9", + "js-yaml": ">=4.3.2 <5.0.0", + "lodash": ">=4.18.1 <5.0.0", + "next": ">=16.4.3 <17.0.0", + "postcss": ">=8.5.28 <9.0.0", + "postgres": ">=3.4.9 <4.0.0", "protobufjs": ">=7.5.5 <8.0.0", "proxy-addr": ">=2.0.8 <3.0.0", "qs": ">=6.16.0 <7.0.0", "remarkable": { - "argparse": "2.0.1", + "argparse": ">=2.0.1 <3.0.0", }, "shadcn": { "undici": "^7.30.1", @@ -352,7 +352,7 @@ "source-map-js": ">=1.2.2 <2.0.0", "ssh2": "1.16.0", "tar": ">=7.5.19 <8.0.0", - "vite": "8.3.4", + "vite": ">=8.3.4 <9.0.0", }, "packages": { "@ai-sdk/anthropic": ["@ai-sdk/anthropic@4.0.88", "", { "dependencies": { "@ai-sdk/provider": "4.0.34", "@ai-sdk/provider-utils": "5.0.68" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-7h/rI3jLCfLbQsjVt37Q5PCEGOHrpVgrO2zl+y///UpUcWfiRDcqk8DL7br//OFxiEhyxgeIoU/5ulsN1llOyg=="], @@ -821,23 +821,23 @@ "@msgpackr-extract/msgpackr-extract-win32-x64": ["@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4", "", { "os": "win32", "cpu": "x64" }, "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ=="], - "@next/env": ["@next/env@16.4.2", "", {}, "sha512-nTUTFH7G5/J/fmpkjVLegOkqyKOP0CEsJcMsyO4UCYeN1su+YMW/MfaSErnJskL7XM+UDK6aTvslxsRCyya/sA=="], + "@next/env": ["@next/env@16.4.3", "", {}, "sha512-a7tz1QCcWWkwC/rPJcPMJk/UNRu9CFhDd3OHYE5hddbJrs8BqRTalxI6GlKCWEGzRLHN+S/B7a4PAHCtm25aBQ=="], - "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.4.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ONkhFvZNFWlsEHOM/81AtxdyuJP2KRYKYR0JxPwvcu1AuPMMMgcL+wW2luldJvMtZwKtUxoSkCychW5wIeoYSw=="], + "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.4.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-4yq5EXBt+VDtAZwTyfijaFp5D2C5oz3Ikw5a2kiX2K9nw72vrZX2q5UuAlkPtUMO1tQz6JTKpaKWjS7OOefTDQ=="], - "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.4.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-luPCMbOsCoaF+kXJEUjmjmOZg1lC3BflhmUu+ZmW4tBu2vW/4AXak8JBFvePizGkxVmNiAw/r9ra+6UviCWtWQ=="], + "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.4.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-1Rvkn/LUhnEF8WxnRkOrqGhbwXui1bkWFxONKIbN+r7C+9KHDSZ+iUoj4CzymVMWUyZIyx9szcb9+kbKhD500A=="], - "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.4.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-xhwFTAncJyaCNy5KqKKuKaIIdCy1/1ZV1s5S1G0hhT7wGMkDTlfJ6aQbfRFnIG/s3/kDrxQ8aycVe+c5QnP8ow=="], + "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.4.3", "", { "os": "linux", "cpu": "arm64", "libc": "glibc" }, "sha512-dCKpXErGg3abUM6t5JTJV/ottVBTStJB5lRJTbgdUdQaQ+jNHiK56Hsc0YAEg/rinSh42hYG3HWiYmEMdilnxg=="], - "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.4.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-T1PNmfbPcxr5ndtWUL/3wQtLXsz808lq6sc2GrNT5k2oquF7UyqZddHSuAewHVsWsGXe6nsl9HoN1YNriVjuSg=="], + "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.4.3", "", { "os": "linux", "cpu": "arm64", "libc": "musl" }, "sha512-WwYbhWkhYBvBtib1K4W0kL8MW2snBD2A5b3SN4vPpqalZbZs5+bQ1yzAdepVoOqrFfEW3dmREy4Zs1MrWcrFbw=="], - "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.4.2", "", { "os": "linux", "cpu": "x64" }, "sha512-N9cDUOCGtkJG5PNKDFZUF3xXndrJJcpLp121uAGjIGvO/U2p9tfdNOM9htj7+5f72l0m8rMw/cvYacUJBQoudg=="], + "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.4.3", "", { "os": "linux", "cpu": "x64", "libc": "glibc" }, "sha512-QymWvfUwDEC5/lpJOsxX5VAbyoR2D13+2Jsjz4be7gT4LPqEgdpkeLIR/HFfCLgKzoMhpJbp6I/JnogyNZHcaA=="], - "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.4.2", "", { "os": "linux", "cpu": "x64" }, "sha512-yY2uh1YhX6ufuYy2FCbw1dqblbhI57GLYAJfCkqD9auTv6pLrH67Uccjc3QMKBeCYAG6lkgu08ExmX1bbjejjQ=="], + "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.4.3", "", { "os": "linux", "cpu": "x64", "libc": "musl" }, "sha512-Vmjd9D7DpA4Vv3cUlr82QWgJD/BQZmns801vtC5VWHg6jCIA4a5vMKpQnfrM2pyCrp2eV0ENdUg4PlN3bAc2Yw=="], - "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.4.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-j/ArWRIHpMMB6wYLMhr2puTguBt70lNU/Cmjl9p6dTDE8DGknYJMP9PdwPk2dqpCNL/KIX9yfngDvIesxJPmsg=="], + "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.4.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-lG1pPdPLk7gTyGb00n5JIMLdBJgjb+UEhSdZvFbhUMg0DyC6z4B7RnpSKF9VCd4imkLObVbXOFA0kFCpw7yFow=="], - "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.4.2", "", { "os": "win32", "cpu": "x64" }, "sha512-AA4edyWHDko3NCSo0x6GomsdgFb0oR1J3MXU1b5xt6FRFg4AucrMPW3S0hCe/9onU0O1BbpGQBsqo1r0Gneu1g=="], + "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.4.3", "", { "os": "win32", "cpu": "x64" }, "sha512-NmQC9RkJdnPXRaMxtkCzobB3teVjqF33oSOnwDfi+XYGWWYpt+xlGK3mtktSKLbdjwaWbJu2OkkMiRFGUUncKg=="], "@noble/ciphers": ["@noble/ciphers@2.4.0", "", {}, "sha512-AnjFn0Jv92laAkvMrghlFZq4qQCIN/4DxFV/eooqtC2YTjB7kBeLMS2T9KJX4Dn+ZVXLOwK0lSgqDtx9gvxtiw=="], @@ -2555,7 +2555,7 @@ "neotraverse": ["neotraverse@1.0.1", "", {}, "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w=="], - "next": ["next@16.4.2", "", { "dependencies": { "@next/env": "16.4.2", "@swc/helpers": "0.5.23", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.5.23", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.4.2", "@next/swc-darwin-x64": "16.4.2", "@next/swc-linux-arm64-gnu": "16.4.2", "@next/swc-linux-arm64-musl": "16.4.2", "@next/swc-linux-x64-gnu": "16.4.2", "@next/swc-linux-x64-musl": "16.4.2", "@next/swc-win32-arm64-msvc": "16.4.2", "@next/swc-win32-x64-msvc": "16.4.2", "sharp": "^0.35.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-r+oBJojfefUjOiWkBhXgLS+igxX/7BWyK59uHnyOyplMSLtBZ+QLP3okrdYTbrfrbrmNTVWLBPaHDX9KRaIt3w=="], + "next": ["next@16.4.3", "", { "dependencies": { "@next/env": "16.4.3", "@swc/helpers": "0.5.23", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.5.23", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.4.3", "@next/swc-darwin-x64": "16.4.3", "@next/swc-linux-arm64-gnu": "16.4.3", "@next/swc-linux-arm64-musl": "16.4.3", "@next/swc-linux-x64-gnu": "16.4.3", "@next/swc-linux-x64-musl": "16.4.3", "@next/swc-win32-arm64-msvc": "16.4.3", "@next/swc-win32-x64-msvc": "16.4.3", "sharp": "^0.35.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-OqxKTGi9u80FydydsMNYNjnuje9Au+kvHlt2GZ//ftdpDHm1dxKqAaENoOOTX5wKzn+9vaKUNIfZeyZUuLhCnA=="], "next-themes": ["next-themes@0.4.6", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="], diff --git a/package.json b/package.json index dff485ae01..1975b7d10f 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@biomejs/biome": "2.6.2", "@types/node": "^26.6.5", "dotenv": "18.0.9", - "esbuild": "0.28.2", + "esbuild": "^0.28.2", "lint-staged": "^17.6.0", "node-gyp": "13.1.0", "tsx": "4.23.15" @@ -49,23 +49,23 @@ }, "overrides": { "better-auth": "1.7.12", - "next": "16.4.2", + "next": ">=16.4.3 <17.0.0", "better-call": "1.4.4", "@better-auth/utils": "0.5.0", "@better-fetch/fetch": "1.3.2", - "drizzle-orm": "0.45.4", - "esbuild": "0.28.2", - "h3": "1.15.11", - "hono": "4.13.13", - "js-yaml": "4.3.2", - "lodash": "4.18.1", - "postcss": "8.5.28", - "postgres": "3.4.9", + "drizzle-orm": ">=0.45.4 <0.46.0", + "esbuild": ">=0.28.2 <0.29.0", + "h3": ">=1.15.11 <2.0.0", + "hono": ">=4.13.13 <5.0.0", + "js-yaml": ">=4.3.2 <5.0.0", + "lodash": ">=4.18.1 <5.0.0", + "postcss": ">=8.5.28 <9.0.0", + "postgres": ">=3.4.9 <4.0.0", "ssh2": "1.16.0", "tar": ">=7.5.19 <8.0.0", "protobufjs": ">=7.5.5 <8.0.0", - "vite": "8.3.4", - "@codemirror/state": "6.7.6", + "vite": ">=8.3.4 <9.0.0", + "@codemirror/state": ">=6.7.6 <7.0.0", "axios": ">=1.20.0 <2.0.0", "proxy-addr": ">=2.0.8 <3.0.0", "source-map-js": ">=1.2.2 <2.0.0", @@ -76,8 +76,8 @@ "ip-address": ">=10.7.4 <11.0.0", "body-parser": ">=2.4.0 <3.0.0", "fast-uri": ">=3.1.9 <4.0.0", - "@tailwindcss/typography>postcss-selector-parser": "7.1.6", - "remarkable>argparse": "2.0.1", + "@tailwindcss/typography>postcss-selector-parser": ">=7.1.6 <8.0.0", + "remarkable>argparse": ">=2.0.1 <3.0.0", "inngest>zod": "^4.6.7", "@ai-sdk/provider-utils>undici": "^7.30.1", "@dotenvx/dotenvx>undici": "^7.30.1", diff --git a/packages/server/package.json b/packages/server/package.json index 149b4288ef..81f1b99cf3 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -72,9 +72,9 @@ "dockerode": "5.0.1", "dotenv": "18.0.9", "drizzle-dbml-generator": "0.10.0", - "drizzle-orm": "0.45.4", + "drizzle-orm": "^0.45.4", "drizzle-zod": "0.8.3", - "lodash": "4.18.1", + "lodash": "^4.18.1", "micromatch": "4.0.8", "nanoid": "6.0.2", "node-os-utils": "3.1.0", @@ -84,7 +84,7 @@ "octokit": "5.0.5", "pino": "10.4.0", "pino-pretty": "13.2.0", - "postgres": "3.4.9", + "postgres": "^3.4.9", "public-ip": "8.0.0", "qrcode": "^1.5.4", "react": "19.3.1", @@ -116,7 +116,7 @@ "@types/ws": "8.18.2", "auth": "1.7.12", "drizzle-kit": "^0.31.11", - "esbuild": "0.28.2", + "esbuild": "^0.28.2", "esbuild-plugin-alias": "0.2.1", "rimraf": "6.1.3", "tsc-alias": "1.9.9",