From 00b36a4ef533619d3d115cac22e4e9730ca960de Mon Sep 17 00:00:00 2001 From: Maksim Date: Sat, 9 Aug 2025 15:55:13 +0300 Subject: [PATCH 1/5] up --- apps/app/package.json | 6 +-- apps/web/package.json | 6 +-- bun.lock | 74 ++++++++++++++++++---------- package.json | 2 +- packages/api/package.json | 2 +- packages/auth/package.json | 2 +- packages/db/package.json | 2 +- packages/emails/package.json | 6 +-- packages/lib/package.json | 2 +- packages/ui/package.json | 2 +- packages/validators/package.json | 2 +- packages/web-api/package.json | 2 +- packages/web-auth/package.json | 2 +- packages/web-validators/package.json | 2 +- tooling/prettier/package.json | 4 +- 15 files changed, 69 insertions(+), 47 deletions(-) diff --git a/apps/app/package.json b/apps/app/package.json index 4c7f9501..11363ad2 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -35,7 +35,7 @@ "@radix-ui/react-toolbar": "^1.1.10", "@radix-ui/react-tooltip": "1.2.7", "@t3-oss/env-nextjs": "^0.13.8", - "@tanstack/react-query": "5.84.1", + "@tanstack/react-query": "5.84.2", "@tanstack/react-virtual": "^3.13.12", "@trpc/client": "11.4.4", "@trpc/server": "11.4.4", @@ -96,13 +96,13 @@ "superjson": "2.2.2", "tailwind-merge": "3.3.1", "tailwind-scrollbar-hide": "^4.0.0", - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { "@qco/eslint-config": "workspace:*", "@qco/prettier-config": "workspace:*", "@qco/tsconfig": "workspace:*", - "@types/node": "24.2.0", + "@types/node": "24.2.1", "@types/react": "19.1.9", "@types/react-dom": "19.1.7", "dotenv-cli": "10.0.0", diff --git a/apps/web/package.json b/apps/web/package.json index d464b4f6..76698bfb 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -46,7 +46,7 @@ "@radix-ui/react-toggle-group": "1.1.10", "@radix-ui/react-tooltip": "1.2.7", "@tailwindcss/postcss": "4.1.11", - "@tanstack/react-query": "5.84.1", + "@tanstack/react-query": "5.84.2", "@trpc/client": "11.4.4", "@trpc/server": "11.4.4", "@trpc/tanstack-react-query": "11.4.4", @@ -80,10 +80,10 @@ "tailwindcss-animate": "1.0.7", "vaul": "^1.1.2", "web-push": "^3.6.7", - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { - "@types/node": "24.2.0", + "@types/node": "24.2.1", "@types/react": "19.1.9", "@types/react-dom": "19.1.7", "@types/web-push": "^3.6.4", diff --git a/bun.lock b/bun.lock index 1c10f16b..7623783c 100644 --- a/bun.lock +++ b/bun.lock @@ -7,7 +7,7 @@ "@biomejs/biome": "2.1.4", "@qco/prettier-config": "workspace:*", "@turbo/gen": "^2.5.5", - "@types/node": "24.2.0", + "@types/node": "24.2.1", "knip": "^5.62.0", "prettier": "3.6.2", "turbo": "^2.5.5", @@ -38,7 +38,7 @@ "@radix-ui/react-toolbar": "^1.1.10", "@radix-ui/react-tooltip": "1.2.7", "@t3-oss/env-nextjs": "^0.13.8", - "@tanstack/react-query": "5.84.1", + "@tanstack/react-query": "5.84.2", "@tanstack/react-virtual": "^3.13.12", "@trpc/client": "11.4.4", "@trpc/server": "11.4.4", @@ -99,13 +99,13 @@ "superjson": "2.2.2", "tailwind-merge": "3.3.1", "tailwind-scrollbar-hide": "^4.0.0", - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { "@qco/eslint-config": "workspace:*", "@qco/prettier-config": "workspace:*", "@qco/tsconfig": "workspace:*", - "@types/node": "24.2.0", + "@types/node": "24.2.1", "@types/react": "19.1.9", "@types/react-dom": "19.1.7", "dotenv-cli": "10.0.0", @@ -154,7 +154,7 @@ "@radix-ui/react-toggle-group": "1.1.10", "@radix-ui/react-tooltip": "1.2.7", "@tailwindcss/postcss": "4.1.11", - "@tanstack/react-query": "5.84.1", + "@tanstack/react-query": "5.84.2", "@trpc/client": "11.4.4", "@trpc/server": "11.4.4", "@trpc/tanstack-react-query": "11.4.4", @@ -188,10 +188,10 @@ "tailwindcss-animate": "1.0.7", "vaul": "^1.1.2", "web-push": "^3.6.7", - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { - "@types/node": "24.2.0", + "@types/node": "24.2.1", "@types/react": "19.1.9", "@types/react-dom": "19.1.7", "@types/web-push": "^3.6.4", @@ -212,7 +212,7 @@ "date-fns": "4.1.0", "nanoid": "^5.1.5", "superjson": "2.2.2", - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { "@qco/eslint-config": "workspace:*", @@ -237,7 +237,7 @@ "next": "15.4.6", "react": "19.1.1", "react-dom": "19.1.1", - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { "@qco/eslint-config": "workspace:*", @@ -263,7 +263,7 @@ "drizzle-zod": "^0.8.3", "file-type": "^21.0.0", "pg": "^8.16.3", - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { "@qco/eslint-config": "workspace:*", @@ -292,15 +292,15 @@ "react": "19.1.1", "react-dom": "19.1.1", "react-email": "4.2.8", - "resend": "^6.0.0", + "resend": "^6.0.1", "sharp": "^0.34.3", "tailwindcss": "4.1.11", "tailwindcss-animate": "1.0.7", - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { "@react-email/preview-server": "4.2.8", - "@types/node": "24.2.0", + "@types/node": "24.2.1", "@types/nodemailer": "^6.4.17", "@types/react": "19.1.9", "@types/react-dom": "19.1.7", @@ -319,7 +319,7 @@ "@sindresorhus/slugify": "2.2.1", "@t3-oss/env-core": "0.13.8", "mime-types": "^3.0.1", - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { "@qco/eslint-config": "workspace:*", @@ -396,7 +396,7 @@ "react": "19.1.1", "tsup": "8.5.0", "typescript": "5.9.2", - "zod": "4.0.15", + "zod": "4.0.16", }, }, "packages/validators": { @@ -404,7 +404,7 @@ "version": "0.1.0", "dependencies": { "@qco/db": "workspace:*", - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { "@qco/eslint-config": "workspace:*", @@ -425,7 +425,7 @@ "@qco/web-validators": "workspace:*", "@trpc/server": "11.4.4", "superjson": "2.2.2", - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { "@qco/eslint-config": "workspace:*", @@ -452,7 +452,7 @@ "next": "15.4.6", "react": "19.1.1", "react-dom": "19.1.1", - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { "@qco/eslint-config": "workspace:*", @@ -468,7 +468,7 @@ "name": "@qco/web-validators", "version": "0.1.0", "dependencies": { - "zod": "4.0.15", + "zod": "4.0.16", }, "devDependencies": { "@qco/eslint-config": "workspace:*", @@ -508,13 +508,13 @@ "name": "@qco/prettier-config", "version": "0.1.0", "dependencies": { - "@ianvs/prettier-plugin-sort-imports": "^4.6.0", + "@ianvs/prettier-plugin-sort-imports": "^4.6.1", "prettier": "3.6.2", "prettier-plugin-tailwindcss": "^0.6.14", }, "devDependencies": { "@qco/tsconfig": "*", - "@types/node": "24.2.0", + "@types/node": "24.2.1", "typescript": "5.9.2", }, }, @@ -936,7 +936,7 @@ "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], - "@ianvs/prettier-plugin-sort-imports": ["@ianvs/prettier-plugin-sort-imports@4.6.0", "", { "dependencies": { "@babel/generator": "^7.26.2", "@babel/parser": "^7.26.2", "@babel/traverse": "^7.25.9", "@babel/types": "^7.26.0", "semver": "^7.5.2" }, "peerDependencies": { "@prettier/plugin-oxc": "^0.0.4", "@vue/compiler-sfc": "2.7.x || 3.x", "content-tag": "^4.0.0", "prettier": "2 || 3 || ^4.0.0-0", "prettier-plugin-ember-template-tag": "^2.1.0" }, "optionalPeers": ["@prettier/plugin-oxc", "@vue/compiler-sfc", "content-tag", "prettier-plugin-ember-template-tag"] }, "sha512-ZGhdOuMv6Y0dqv5eaKMBfHR3cwTY11fFEUhiTDpx7v2m1FrfgqZsBOrLd/zA0lTEKAo9ltNlHd6jx5h3eh4Htg=="], + "@ianvs/prettier-plugin-sort-imports": ["@ianvs/prettier-plugin-sort-imports@4.6.1", "", { "dependencies": { "@babel/generator": "^7.26.2", "@babel/parser": "^7.26.2", "@babel/traverse": "^7.25.9", "@babel/types": "^7.26.0", "semver": "^7.5.2" }, "peerDependencies": { "@prettier/plugin-oxc": "^0.0.4", "@vue/compiler-sfc": "2.7.x || 3.x", "content-tag": "^4.0.0", "prettier": "2 || 3 || ^4.0.0-0", "prettier-plugin-ember-template-tag": "^2.1.0" }, "optionalPeers": ["@prettier/plugin-oxc", "@vue/compiler-sfc", "content-tag", "prettier-plugin-ember-template-tag"] }, "sha512-Q0gujs/g6tw1uOGd1bTVLGDzAwb/UwrCehhPCQevTCYDkho8+eQSOhA0zcy9AM0XnXM1ChBWsZeE4P7Nym0pyw=="], "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.3", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.0" }, "os": "darwin", "cpu": "arm64" }, "sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg=="], @@ -1518,7 +1518,7 @@ "@tanstack/query-core": ["@tanstack/query-core@5.83.1", "", {}, "sha512-OG69LQgT7jSp+5pPuCfzltq/+7l2xoweggjme9vlbCPa/d7D7zaqv5vN/S82SzSYZ4EDLTxNO1PWrv49RAS64Q=="], - "@tanstack/react-query": ["@tanstack/react-query@5.84.1", "", { "dependencies": { "@tanstack/query-core": "5.83.1" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-zo7EUygcWJMQfFNWDSG7CBhy8irje/XY0RDVKKV4IQJAysb+ZJkkJPcnQi+KboyGUgT+SQebRFoTqLuTtfoDLw=="], + "@tanstack/react-query": ["@tanstack/react-query@5.84.2", "", { "dependencies": { "@tanstack/query-core": "5.83.1" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-cZadySzROlD2+o8zIfbD978p0IphuQzRWiiH3I2ugnTmz4jbjc0+TdibpwqxlzynEen8OulgAg+rzdNF37s7XQ=="], "@tanstack/react-virtual": ["@tanstack/react-virtual@3.13.12", "", { "dependencies": { "@tanstack/virtual-core": "3.13.12" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA=="], @@ -1610,7 +1610,7 @@ "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], - "@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + "@types/node": ["@types/node@24.2.1", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ=="], "@types/nodemailer": ["@types/nodemailer@6.4.17", "", { "dependencies": { "@types/node": "*" } }, "sha512-I9CCaIp6DTldEg7vyUTZi8+9Vo0hi1/T8gv3C89yk1rSAAzoKQ8H8ki/jBYJSFoH/BisgLP8tkZMlQ91CIquww=="], @@ -3212,7 +3212,7 @@ "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "resend": ["resend@6.0.0", "", { "peerDependencies": { "@react-email/render": "^1.1.0" }, "optionalPeers": ["@react-email/render"] }, "sha512-YOqhUbdrAvlC+mAV0Ga7qD8jG+fJTvrYVaIpr5Dgs+557RnC5p/6V3me5fQFK3bEpbBA9Gz3SRf6uG+fZriqUw=="], + "resend": ["resend@6.0.1", "", { "peerDependencies": { "@react-email/render": "^1.1.0" }, "optionalPeers": ["@react-email/render"] }, "sha512-xNZ0gKAOqQcH83lXsqNOwBbpKROnsZpQr9mXRdG6hrHTF9G9Il2pkoTRtq7rJzXMvCZX+I79oahsbSeaYOWRFA=="], "resize-observer-polyfill": ["resize-observer-polyfill@1.5.1", "", {}, "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="], @@ -3710,7 +3710,7 @@ "yoctocolors": ["yoctocolors@2.1.1", "", {}, "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ=="], - "zod": ["zod@4.0.15", "", {}, "sha512-2IVHb9h4Mt6+UXkyMs0XbfICUh1eUrlJJAOupBHUhLRnKkruawyDddYRCs0Eizt900ntIMk9/4RksYl+FgSpcQ=="], + "zod": ["zod@4.0.16", "", {}, "sha512-Djo/cM339grjI7/HmN+ixYO2FzEMcWr/On50UlQ/RjrWK1I/hPpWhpC76heCptnRFpH0LMwrEbUY50HDc0V8wg=="], "zod-validation-error": ["zod-validation-error@3.5.3", "", { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-OT5Y8lbUadqVZCsnyFaTQ4/O2mys4tj7PqhdbBCp7McPwvIEKfPtdA6QfPeFQK2/Rz5LgwmAXRJTugBNBi0btw=="], @@ -3858,10 +3858,24 @@ "@turbo/workspaces/semver": ["semver@7.6.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w=="], + "@types/cors/@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + + "@types/glob/@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + "@types/inquirer/rxjs": ["rxjs@6.6.7", "", { "dependencies": { "tslib": "^1.9.0" } }, "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ=="], "@types/minimatch/minimatch": ["minimatch@10.0.3", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw=="], + "@types/nodemailer/@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + + "@types/pg/@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + + "@types/through/@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + + "@types/web-push/@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + + "@types/webpack/@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], "@udecode/plate-core/slate-react": ["slate-react@0.114.2", "", { "dependencies": { "@juggle/resize-observer": "^3.4.0", "direction": "^1.0.4", "is-hotkey": "^0.2.0", "is-plain-object": "^5.0.0", "lodash": "^4.17.21", "scroll-into-view-if-needed": "^3.1.0", "tiny-invariant": "1.3.1" }, "peerDependencies": { "react": ">=18.2.0", "react-dom": ">=18.2.0", "slate": ">=0.114.0", "slate-dom": ">=0.110.2" } }, "sha512-yqJnX1/7A30szl9BxW3qX99MZy6mM6VtUi1rXTy0JpRMTKv3rduo0WOxqcX90tpt0ke2pzHGbrLLr1buIN4vrw=="], @@ -3882,6 +3896,10 @@ "autoprefixer/picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + "better-auth/zod": ["zod@4.0.15", "", {}, "sha512-2IVHb9h4Mt6+UXkyMs0XbfICUh1eUrlJJAOupBHUhLRnKkruawyDddYRCs0Eizt900ntIMk9/4RksYl+FgSpcQ=="], + + "bun-types/@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + "color-parse/color-name": ["color-name@2.0.0", "", {}, "sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow=="], "css-tree/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], @@ -3892,6 +3910,8 @@ "dotenv-expand/dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], + "engine.io/@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + "engine.io/cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], "engine.io/debug": ["debug@4.3.7", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="], @@ -3948,6 +3968,8 @@ "import-fresh/resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + "jest-worker/@types/node": ["@types/node@24.2.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw=="], + "jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], "jsdom/whatwg-url": ["whatwg-url@14.2.0", "", { "dependencies": { "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" } }, "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw=="], diff --git a/package.json b/package.json index f7dc8155..855c713f 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@biomejs/biome": "2.1.4", "@qco/prettier-config": "workspace:*", "@turbo/gen": "^2.5.5", - "@types/node": "24.2.0", + "@types/node": "24.2.1", "knip": "^5.62.0", "prettier": "3.6.2", "turbo": "^2.5.5", diff --git a/packages/api/package.json b/packages/api/package.json index 5c2d5077..9ed80287 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -32,7 +32,7 @@ "date-fns": "4.1.0", "nanoid": "^5.1.5", "superjson": "2.2.2", - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { "@qco/eslint-config": "workspace:*", diff --git a/packages/auth/package.json b/packages/auth/package.json index 1ffdc1ae..f221945e 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -29,7 +29,7 @@ "next": "15.4.6", "react": "19.1.1", "react-dom": "19.1.1", - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { "@qco/eslint-config": "workspace:*", diff --git a/packages/db/package.json b/packages/db/package.json index f06dd17e..6b518561 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -47,7 +47,7 @@ "drizzle-zod": "^0.8.3", "file-type": "^21.0.0", "pg": "^8.16.3", - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { "@qco/eslint-config": "workspace:*", diff --git a/packages/emails/package.json b/packages/emails/package.json index cf5f2b62..a4764307 100644 --- a/packages/emails/package.json +++ b/packages/emails/package.json @@ -25,15 +25,15 @@ "react": "19.1.1", "react-dom": "19.1.1", "react-email": "4.2.8", - "resend": "^6.0.0", + "resend": "^6.0.1", "sharp": "^0.34.3", "tailwindcss": "4.1.11", "tailwindcss-animate": "1.0.7", - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { "@react-email/preview-server": "4.2.8", - "@types/node": "24.2.0", + "@types/node": "24.2.1", "@types/nodemailer": "^6.4.17", "@types/react": "19.1.9", "@types/react-dom": "19.1.7", diff --git a/packages/lib/package.json b/packages/lib/package.json index e7951d65..8bd1b82b 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -24,7 +24,7 @@ "@sindresorhus/slugify": "2.2.1", "@t3-oss/env-core": "0.13.8", "mime-types": "^3.0.1", - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { "@qco/eslint-config": "workspace:*", diff --git a/packages/ui/package.json b/packages/ui/package.json index 4fa9cd37..23905839 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -73,7 +73,7 @@ "react": "19.1.1", "tsup": "8.5.0", "typescript": "5.9.2", - "zod": "4.0.15" + "zod": "4.0.16" }, "prettier": "@qco/prettier-config" } diff --git a/packages/validators/package.json b/packages/validators/package.json index 7bf13377..1f2bad39 100644 --- a/packages/validators/package.json +++ b/packages/validators/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@qco/db": "workspace:*", - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { "@qco/eslint-config": "workspace:*", diff --git a/packages/web-api/package.json b/packages/web-api/package.json index 17c3ce4a..d976899f 100644 --- a/packages/web-api/package.json +++ b/packages/web-api/package.json @@ -29,7 +29,7 @@ "@qco/web-validators": "workspace:*", "@trpc/server": "11.4.4", "superjson": "2.2.2", - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { "@qco/eslint-config": "workspace:*", diff --git a/packages/web-auth/package.json b/packages/web-auth/package.json index bd157970..9764f486 100644 --- a/packages/web-auth/package.json +++ b/packages/web-auth/package.json @@ -29,7 +29,7 @@ "next": "15.4.6", "react": "19.1.1", "react-dom": "19.1.1", - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { "@qco/eslint-config": "workspace:*", diff --git a/packages/web-validators/package.json b/packages/web-validators/package.json index 22550ed6..659c7de3 100644 --- a/packages/web-validators/package.json +++ b/packages/web-validators/package.json @@ -18,7 +18,7 @@ "typecheck": "tsc --noEmit --emitDeclarationOnly false" }, "dependencies": { - "zod": "4.0.15" + "zod": "4.0.16" }, "devDependencies": { "@qco/eslint-config": "workspace:*", diff --git a/tooling/prettier/package.json b/tooling/prettier/package.json index dff5ba8f..37721e8b 100644 --- a/tooling/prettier/package.json +++ b/tooling/prettier/package.json @@ -12,13 +12,13 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@ianvs/prettier-plugin-sort-imports": "^4.6.0", + "@ianvs/prettier-plugin-sort-imports": "^4.6.1", "prettier": "3.6.2", "prettier-plugin-tailwindcss": "^0.6.14" }, "devDependencies": { "@qco/tsconfig": "*", - "@types/node": "24.2.0", + "@types/node": "24.2.1", "typescript": "5.9.2" }, "prettier": "@qco/prettier-config" From d0446eddc22601e48984d21cdc90b9fb26e1bfae Mon Sep 17 00:00:00 2001 From: Maksim Karpychev Date: Sat, 9 Aug 2025 21:09:49 +0300 Subject: [PATCH 2/5] up --- docker-compose.yml | 1 + packages/emails/send.ts | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e498c24f..7be8bca1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,4 @@ +services: inbucket: image: inbucket/inbucket:latest container_name: inbucket diff --git a/packages/emails/send.ts b/packages/emails/send.ts index bb859856..b21b47ec 100644 --- a/packages/emails/send.ts +++ b/packages/emails/send.ts @@ -28,12 +28,14 @@ const DEFAULT_FROM_EMAIL = "noreply@qco.me"; export const sendEmail = async (email: Emails) => { const from = email.from || env.EMAIL_FROM || DEFAULT_FROM_EMAIL; + // Always pre-render React element to HTML to avoid provider-side rendering issues + const html = await render(email.react); if (env.EMAIL_SANDBOX_ENABLED === "true") { const mailOptions: Mail.Options = { from, to: email.to, - html: await render(email.react), + html, subject: email.subject, }; const transporter = nodemailer.createTransport({ @@ -47,7 +49,13 @@ export const sendEmail = async (email: Emails) => { return Promise.resolve(); } - await resend.emails.send({ ...email, from }); + // Send pre-rendered HTML instead of React element to ensure consistent output + await resend.emails.send({ + to: email.to, + from, + subject: email.subject, + html, + }); }; export const sendEmailHtml = async (email: EmailHtml) => { From bac6c307e4af2e4ac57183a538608f75cd8826a8 Mon Sep 17 00:00:00 2001 From: Maksim Karpychev Date: Sat, 9 Aug 2025 21:15:53 +0300 Subject: [PATCH 3/5] up --- .../checkout/components/checkout-page-client.tsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/web/src/features/checkout/components/checkout-page-client.tsx b/apps/web/src/features/checkout/components/checkout-page-client.tsx index e56ee710..e8cab99e 100644 --- a/apps/web/src/features/checkout/components/checkout-page-client.tsx +++ b/apps/web/src/features/checkout/components/checkout-page-client.tsx @@ -400,12 +400,14 @@ const CheckoutPageClient = ({ cart }: CheckoutPageProps) => { onBlur={(fieldName) => createOnBlurHandler(fieldName as keyof CheckoutFormValues)()} /> - {/* Checkbox для сохранения данных в профиль - теперь доступен всем */} - + {/* Checkbox to save data to profile - only for authenticated users */} + {isAuthenticated && ( + + )} Date: Sat, 9 Aug 2025 21:32:03 +0300 Subject: [PATCH 4/5] up --- packages/emails/emails/admin-invitation.tsx | 4 ++-- packages/emails/emails/auth/email-change-verification.tsx | 4 ++-- packages/emails/emails/auth/email-verification.tsx | 4 ++-- packages/emails/emails/auth/otp-sign-in.tsx | 4 ++-- packages/emails/emails/auth/password-reset.tsx | 4 ++-- packages/emails/emails/auth/verification-otp.tsx | 4 ++-- packages/emails/emails/orders/admin-order-notification.tsx | 4 ++-- packages/emails/emails/orders/order-cancelled.tsx | 4 ++-- packages/emails/emails/orders/order-created.tsx | 4 ++-- packages/emails/emails/orders/order-deleted.tsx | 4 ++-- packages/emails/emails/orders/order-status-updated.tsx | 4 ++-- packages/emails/emails/orders/order-updated.tsx | 4 ++-- packages/emails/emails/welcome.tsx | 4 ++-- packages/emails/send.ts | 1 - packages/web-api/src/router/orders/create-order.ts | 2 +- 15 files changed, 27 insertions(+), 28 deletions(-) diff --git a/packages/emails/emails/admin-invitation.tsx b/packages/emails/emails/admin-invitation.tsx index 6cab0c13..3d3596fa 100644 --- a/packages/emails/emails/admin-invitation.tsx +++ b/packages/emails/emails/admin-invitation.tsx @@ -35,9 +35,9 @@ export default function AdminInvitationEmail({ }: AdminInvitationEmailProps) { return ( - - Приглашение стать администратором - {env.SITE_NAME} + + Приглашение стать администратором - {env.SITE_NAME} diff --git a/packages/emails/emails/auth/email-change-verification.tsx b/packages/emails/emails/auth/email-change-verification.tsx index 07d9599c..bc5c91b8 100644 --- a/packages/emails/emails/auth/email-change-verification.tsx +++ b/packages/emails/emails/auth/email-change-verification.tsx @@ -17,9 +17,9 @@ import { env } from "../../env"; export default function EmailChangeVerification({ otp }: { otp: string }) { return ( - - Подтверждение нового email адреса - {env.SITE_NAME} + + Подтверждение нового email адреса - {env.SITE_NAME} diff --git a/packages/emails/emails/auth/email-verification.tsx b/packages/emails/emails/auth/email-verification.tsx index f28bcf73..1b2c602d 100644 --- a/packages/emails/emails/auth/email-verification.tsx +++ b/packages/emails/emails/auth/email-verification.tsx @@ -25,9 +25,9 @@ interface EmailVerificationProps { export default function EmailVerification({ otp, email, url }: EmailVerificationProps) { return ( - - Подтвердите ваш email адрес - {env.SITE_NAME} + + Подтвердите ваш email адрес - {env.SITE_NAME} diff --git a/packages/emails/emails/auth/otp-sign-in.tsx b/packages/emails/emails/auth/otp-sign-in.tsx index 63f15e8b..82860e4a 100644 --- a/packages/emails/emails/auth/otp-sign-in.tsx +++ b/packages/emails/emails/auth/otp-sign-in.tsx @@ -23,9 +23,9 @@ export default function OtpSignInEmail({ return ( - - {`Your OTP Code for ${action} - ${env.SITE_NAME}`} + + {`Your OTP Code for ${action} - ${env.SITE_NAME}`} diff --git a/packages/emails/emails/auth/password-reset.tsx b/packages/emails/emails/auth/password-reset.tsx index 16334f94..21e8ee20 100644 --- a/packages/emails/emails/auth/password-reset.tsx +++ b/packages/emails/emails/auth/password-reset.tsx @@ -25,9 +25,9 @@ export default function PasswordResetEmail({ }) { return ( - - Сброс пароля - {env.SITE_NAME} + + Сброс пароля - {env.SITE_NAME} diff --git a/packages/emails/emails/auth/verification-otp.tsx b/packages/emails/emails/auth/verification-otp.tsx index 0d3d9624..e3a80aab 100644 --- a/packages/emails/emails/auth/verification-otp.tsx +++ b/packages/emails/emails/auth/verification-otp.tsx @@ -56,9 +56,9 @@ export function VerificationOTP({ otp, type, email }: VerificationOTPProps) { return ( - - {info.preview} + + {info.preview} diff --git a/packages/emails/emails/orders/admin-order-notification.tsx b/packages/emails/emails/orders/admin-order-notification.tsx index 0425b0c0..fb537b01 100644 --- a/packages/emails/emails/orders/admin-order-notification.tsx +++ b/packages/emails/emails/orders/admin-order-notification.tsx @@ -52,9 +52,9 @@ export default function AdminOrderNotification({ return ( - - Новый заказ №{orderNumber} от {customerName} + + Новый заказ №{orderNumber} от {customerName} diff --git a/packages/emails/emails/orders/order-cancelled.tsx b/packages/emails/emails/orders/order-cancelled.tsx index 16df3ea9..eb65a020 100644 --- a/packages/emails/emails/orders/order-cancelled.tsx +++ b/packages/emails/emails/orders/order-cancelled.tsx @@ -24,9 +24,9 @@ export default function OrderCancelledEmail({ }: OrderCancelledEmailProps) { return ( - - Заказ №{orderNumber} отменён + + Заказ №{orderNumber} отменён
diff --git a/packages/emails/emails/orders/order-created.tsx b/packages/emails/emails/orders/order-created.tsx index dde3a2c9..21f1c734 100644 --- a/packages/emails/emails/orders/order-created.tsx +++ b/packages/emails/emails/orders/order-created.tsx @@ -57,9 +57,9 @@ export default function OrderCreatedEmail({ return ( - - Заказ №{orderNumber} успешно создан - {env.SITE_NAME} + + Заказ №{orderNumber} успешно создан - {env.SITE_NAME} diff --git a/packages/emails/emails/orders/order-deleted.tsx b/packages/emails/emails/orders/order-deleted.tsx index a8a6c5b5..246c350c 100644 --- a/packages/emails/emails/orders/order-deleted.tsx +++ b/packages/emails/emails/orders/order-deleted.tsx @@ -28,9 +28,9 @@ export default function OrderDeletedEmail({ }: OrderDeletedEmailProps) { return ( - - Заказ №{orderNumber} удалён + + Заказ №{orderNumber} удалён diff --git a/packages/emails/emails/orders/order-status-updated.tsx b/packages/emails/emails/orders/order-status-updated.tsx index 4478b92e..c6abb638 100644 --- a/packages/emails/emails/orders/order-status-updated.tsx +++ b/packages/emails/emails/orders/order-status-updated.tsx @@ -38,9 +38,9 @@ export default function OrderStatusUpdatedEmail({ return ( - - Изменён статус заказа №{orderNumber} + + Изменён статус заказа №{orderNumber} diff --git a/packages/emails/emails/orders/order-updated.tsx b/packages/emails/emails/orders/order-updated.tsx index c2bf2099..755c64e9 100644 --- a/packages/emails/emails/orders/order-updated.tsx +++ b/packages/emails/emails/orders/order-updated.tsx @@ -42,9 +42,9 @@ export default function OrderUpdatedEmail({ return ( - - Заказ №{orderNumber} обновлён + + Заказ №{orderNumber} обновлён diff --git a/packages/emails/emails/welcome.tsx b/packages/emails/emails/welcome.tsx index 82a2bb92..00a4d96a 100644 --- a/packages/emails/emails/welcome.tsx +++ b/packages/emails/emails/welcome.tsx @@ -19,9 +19,9 @@ import { env } from "../env"; export default function WelcomeEmail({ username = "username" }: { username: string }) { return ( - - Добро пожаловать в {env.SITE_NAME} + + Добро пожаловать в {env.SITE_NAME} diff --git a/packages/emails/send.ts b/packages/emails/send.ts index b21b47ec..a6fbcfc1 100644 --- a/packages/emails/send.ts +++ b/packages/emails/send.ts @@ -30,7 +30,6 @@ export const sendEmail = async (email: Emails) => { const from = email.from || env.EMAIL_FROM || DEFAULT_FROM_EMAIL; // Always pre-render React element to HTML to avoid provider-side rendering issues const html = await render(email.react); - if (env.EMAIL_SANDBOX_ENABLED === "true") { const mailOptions: Mail.Options = { from, diff --git a/packages/web-api/src/router/orders/create-order.ts b/packages/web-api/src/router/orders/create-order.ts index 2443266b..cc5f73ef 100644 --- a/packages/web-api/src/router/orders/create-order.ts +++ b/packages/web-api/src/router/orders/create-order.ts @@ -95,7 +95,7 @@ export const createOrderProcedure = publicProcedure subtotal: `${subtotal.toFixed(2)} ₽`, shippingCost: `${shippingCost.toFixed(2)} ₽`, }), - subject: `Заказ №${order.id} успешно создан`, + subject: `Заказ №${order.orderNumber} успешно создан`, to: [customerInfo.email], }); } catch (emailError) { From ccf6451e3836f9c745f7253d8521069db5542d94 Mon Sep 17 00:00:00 2001 From: Maksim Karpychev Date: Sat, 9 Aug 2025 21:37:34 +0300 Subject: [PATCH 5/5] up --- packages/emails/send.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/emails/send.ts b/packages/emails/send.ts index a6fbcfc1..16503b45 100644 --- a/packages/emails/send.ts +++ b/packages/emails/send.ts @@ -49,7 +49,7 @@ export const sendEmail = async (email: Emails) => { return Promise.resolve(); } // Send pre-rendered HTML instead of React element to ensure consistent output - await resend.emails.send({ + return resend.emails.send({ to: email.to, from, subject: email.subject,