From bca46228e709bc8fffe9b5d98d74d3b03fa765de Mon Sep 17 00:00:00 2001 From: "devin-ai-integration[bot]" <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 23 May 2025 13:57:37 +0100 Subject: [PATCH] feat: upgrade typescript to 5.8.3 (#21449) * feat: upgrade typescript to 5.8.3 Co-Authored-By: joe@cal.com * chore: fix TypeScript 5.8.3 compatibility issues Co-Authored-By: joe@cal.com * Uncomment `optmizeImage` * Type fix * Type fix --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: joe@cal.com Co-authored-by: Joe --- apps/api/v1/package.json | 2 +- .../lib/bookings/_get.integration-test.ts | 3 +- apps/api/v2/package.json | 2 +- apps/web/app/api/logo/route.ts | 3 +- apps/web/package.json | 2 +- package.json | 2 +- packages/app-store-cli/package.json | 2 +- packages/config/next-i18next.config.d.ts | 6 +++ packages/config/package.json | 2 +- packages/embeds/embed-core/package.json | 2 +- packages/embeds/embed-react/package.json | 2 +- packages/embeds/embed-snippet/package.json | 2 +- packages/eslint-plugin/package.json | 2 +- packages/features/auth/lib/getLocale.ts | 1 - .../components/CreateANewOrganizationForm.tsx | 4 +- .../components/DisableTeamImpersonation.tsx | 6 ++- packages/lib/package.json | 2 +- packages/platform/atoms/package.json | 2 +- packages/platform/examples/base/package.json | 2 +- packages/platform/libraries/package.json | 2 +- packages/trpc/package.json | 2 +- packages/ui/package.json | 2 +- yarn.lock | 40 +++++++++---------- 23 files changed, 52 insertions(+), 43 deletions(-) create mode 100644 packages/config/next-i18next.config.d.ts diff --git a/apps/api/v1/package.json b/apps/api/v1/package.json index 78ab9a8671..e664f3043a 100644 --- a/apps/api/v1/package.json +++ b/apps/api/v1/package.json @@ -38,7 +38,7 @@ "next-axiom": "^0.17.0", "next-swagger-doc": "^0.3.6", "next-validations": "^0.2.0", - "typescript": "^4.9.4", + "typescript": "^5.8.3", "tzdata": "^1.0.30", "uuid": "^8.3.2", "zod": "^3.22.4" diff --git a/apps/api/v1/test/lib/bookings/_get.integration-test.ts b/apps/api/v1/test/lib/bookings/_get.integration-test.ts index efca0fe4cc..a3a0a6c9e7 100644 --- a/apps/api/v1/test/lib/bookings/_get.integration-test.ts +++ b/apps/api/v1/test/lib/bookings/_get.integration-test.ts @@ -38,7 +38,8 @@ describe("GET /api/bookings", async () => { expect(responseData.bookings.find((b) => b.userId === memberUser.id)).toBeDefined(); expect(groupedUsers.size).toBe(1); - expect(groupedUsers.entries().next().value[0]).toBe(memberUser.id); + const firstEntry = groupedUsers.entries().next().value; + expect(firstEntry?.[0]).toBe(memberUser.id); }); it("Returns bookings for regular user", async () => { diff --git a/apps/api/v2/package.json b/apps/api/v2/package.json index 635357ca58..5aec40db55 100644 --- a/apps/api/v2/package.json +++ b/apps/api/v2/package.json @@ -108,7 +108,7 @@ "ts-loader": "^9.4.3", "ts-node": "^10.9.1", "tsconfig-paths": "^4.1.0", - "typescript": "^5.8.2" + "typescript": "^5.8.3" }, "prisma": { "schema": "../../../packages/prisma/schema.prisma" diff --git a/apps/web/app/api/logo/route.ts b/apps/web/app/api/logo/route.ts index 8dd9fbd86d..7955704ff0 100644 --- a/apps/web/app/api/logo/route.ts +++ b/apps/web/app/api/logo/route.ts @@ -192,11 +192,12 @@ async function getHandler(request: NextRequest) { try { const response = await fetch(filteredLogo); const arrayBuffer = await response.arrayBuffer(); - let buffer = Buffer.from(arrayBuffer); + let buffer: Buffer = Buffer.from(arrayBuffer); // If we need to resize the team logos (via Next.js' built-in image processing) if (teamLogos[logoDefinition.source] && logoDefinition.w) { const { detectContentType, optimizeImage } = await import("next/dist/server/image-optimizer"); + buffer = await optimizeImage({ buffer, contentType: detectContentType(buffer) ?? "image/jpeg", diff --git a/apps/web/package.json b/apps/web/package.json index 914cc760e4..43e37d01e4 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -194,7 +194,7 @@ "tailwindcss": "^3.3.3", "tailwindcss-animate": "^1.0.6", "ts-node": "^10.9.1", - "typescript": "^4.9.4" + "typescript": "^5.8.3" }, "nextBundleAnalysis": { "budget": 358400, diff --git a/package.json b/package.json index 9313f15348..205c41460d 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "prismock": "^1.33.4", "resize-observer-polyfill": "^1.5.1", "tsc-absolute": "^1.0.0", - "typescript": "^4.9.4", + "typescript": "^5.8.3", "vitest": "^2.1.1", "vitest-fetch-mock": "^0.3.0", "vitest-mock-extended": "^2.0.2" diff --git a/packages/app-store-cli/package.json b/packages/app-store-cli/package.json index 00927b79f1..3eaf7e92e9 100644 --- a/packages/app-store-cli/package.json +++ b/packages/app-store-cli/package.json @@ -31,6 +31,6 @@ "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.6.0", "ts-node": "^10.9.1", - "typescript": "^4.9.4" + "typescript": "^5.8.3" } } diff --git a/packages/config/next-i18next.config.d.ts b/packages/config/next-i18next.config.d.ts new file mode 100644 index 0000000000..70ffb39e3d --- /dev/null +++ b/packages/config/next-i18next.config.d.ts @@ -0,0 +1,6 @@ +declare module "@calcom/config/next-i18next.config" { + export const i18n: { + locales: string[]; + defaultLocale: string; + }; +} diff --git a/packages/config/package.json b/packages/config/package.json index 3001d202e7..12841946c2 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -33,6 +33,6 @@ "prettier-plugin-tailwindcss": "^0.2.5", "tailwind-scrollbar": "^2.0.1", "tailwindcss": "^3.3.3", - "typescript": "^4.9.4" + "typescript": "^5.8.3" } } diff --git a/packages/embeds/embed-core/package.json b/packages/embeds/embed-core/package.json index b35abf8949..fae12a1d3e 100644 --- a/packages/embeds/embed-core/package.json +++ b/packages/embeds/embed-core/package.json @@ -54,7 +54,7 @@ "npm-run-all": "^4.1.5", "postcss": "^8.4.18", "tailwindcss": "^3.3.3", - "typescript": "^4.9.4", + "typescript": "^5.8.3", "vite": "^4.1.2", "vite-plugin-environment": "^1.1.3" } diff --git a/packages/embeds/embed-react/package.json b/packages/embeds/embed-react/package.json index 2da9e1c3db..4369169056 100644 --- a/packages/embeds/embed-react/package.json +++ b/packages/embeds/embed-react/package.json @@ -50,7 +50,7 @@ "@vitejs/plugin-react": "^2.2.0", "eslint": "^8.34.0", "npm-run-all": "^4.1.5", - "typescript": "^4.9.4", + "typescript": "^5.8.3", "vite": "^4.5.2" }, "dependencies": { diff --git a/packages/embeds/embed-snippet/package.json b/packages/embeds/embed-snippet/package.json index a5435a180e..5e7fb41192 100644 --- a/packages/embeds/embed-snippet/package.json +++ b/packages/embeds/embed-snippet/package.json @@ -25,7 +25,7 @@ ], "types": "./dist/index.d.ts", "devDependencies": { - "typescript": "^4.9.4", + "typescript": "^5.8.3", "vite": "^4.1.2" }, "dependencies": { diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 211d191b5d..6fdacb4479 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -8,7 +8,7 @@ "@typescript-eslint/parser": "^5.52.0", "@typescript-eslint/utils": "^5.52.0", "ts-node": "^10.9.1", - "typescript": "^4.9.4" + "typescript": "^5.8.3" }, "devDependencies": { "@types/eslint": "^8.4.5" diff --git a/packages/features/auth/lib/getLocale.ts b/packages/features/auth/lib/getLocale.ts index c720283a16..1df0780a11 100644 --- a/packages/features/auth/lib/getLocale.ts +++ b/packages/features/auth/lib/getLocale.ts @@ -5,7 +5,6 @@ import { getToken } from "next-auth/jwt"; import { type ReadonlyHeaders } from "next/dist/server/web/spec-extension/adapters/headers"; import { type ReadonlyRequestCookies } from "next/dist/server/web/spec-extension/adapters/request-cookies"; -// @ts-expect-error no type definitions import { i18n } from "@calcom/config/next-i18next.config"; /** diff --git a/packages/features/ee/organizations/components/CreateANewOrganizationForm.tsx b/packages/features/ee/organizations/components/CreateANewOrganizationForm.tsx index 6227b395b3..ee63ad4bdf 100644 --- a/packages/features/ee/organizations/components/CreateANewOrganizationForm.tsx +++ b/packages/features/ee/organizations/components/CreateANewOrganizationForm.tsx @@ -28,8 +28,8 @@ import { useOnboarding } from "../lib/onboardingStore"; function extractDomainFromEmail(email: string) { let out = ""; try { - const match = email.match(/^(?:.*?:\/\/)?.*?(?[\w\-]*(?:\.\w{2,}|\.\w{2,}\.\w{2}))(?:[\/?#:]|$)/); - out = (match && match.groups?.root) ?? ""; + const match = email.match(/^(?:.*?:\/\/)?.*?([\w\-]*(?:\.\w{2,}|\.\w{2,}\.\w{2}))(?:[\/?#:]|$)/); + out = (match && match[1]) ?? ""; } catch (ignore) {} return out.split(".")[0]; } diff --git a/packages/features/ee/teams/components/DisableTeamImpersonation.tsx b/packages/features/ee/teams/components/DisableTeamImpersonation.tsx index c93873f883..e97122cd11 100644 --- a/packages/features/ee/teams/components/DisableTeamImpersonation.tsx +++ b/packages/features/ee/teams/components/DisableTeamImpersonation.tsx @@ -2,8 +2,8 @@ import { useState } from "react"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; -import { showToast } from "@calcom/ui/components/toast"; import { SettingsToggle } from "@calcom/ui/components/form"; +import { showToast } from "@calcom/ui/components/toast"; const DisableTeamImpersonation = ({ teamId, @@ -26,7 +26,9 @@ const DisableTeamImpersonation = ({ await utils.viewer.teams.getMembershipbyUser.invalidate(); }, }); - const [allowImpersonation, setAllowImpersonation] = useState(!query.data?.disableImpersonation ?? true); + const [allowImpersonation, setAllowImpersonation] = useState( + query.data ? !query.data.disableImpersonation : true + ); if (query.isPending) return <>; return ( diff --git a/packages/lib/package.json b/packages/lib/package.json index 7b54d8595b..3379b645a3 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -34,6 +34,6 @@ "@calcom/tsconfig": "*", "@calcom/types": "*", "@faker-js/faker": "^7.3.0", - "typescript": "^4.9.4" + "typescript": "^5.8.3" } } diff --git a/packages/platform/atoms/package.json b/packages/platform/atoms/package.json index ace1b4bf66..26a70096b5 100644 --- a/packages/platform/atoms/package.json +++ b/packages/platform/atoms/package.json @@ -28,7 +28,7 @@ "postcss-prefixwrap": "1.46.0", "rollup-plugin-node-builtins": "^2.1.2", "ts-jest": "^29.1.2", - "typescript": "^4.9.4", + "typescript": "^5.8.3", "vite": "^5.0.10", "vite-plugin-dts": "^3.7.3", "vite-plugin-inspect": "^0.8.4", diff --git a/packages/platform/examples/base/package.json b/packages/platform/examples/base/package.json index 15a11929ce..a739d93bcb 100644 --- a/packages/platform/examples/base/package.json +++ b/packages/platform/examples/base/package.json @@ -26,6 +26,6 @@ "eslint-config-next": "14.0.4", "postcss": "^8", "tailwindcss": "^3.3.0", - "typescript": "^4.9.4" + "typescript": "^5.8.3" } } diff --git a/packages/platform/libraries/package.json b/packages/platform/libraries/package.json index 4685cef864..3a4f6bdfa5 100644 --- a/packages/platform/libraries/package.json +++ b/packages/platform/libraries/package.json @@ -23,7 +23,7 @@ "devDependencies": { "@types/node": "^20.3.1", "@vitejs/plugin-react": "^4.2.1", - "typescript": "^5.8.2", + "typescript": "^5.8.3", "vite": "^5.0.12", "vite-plugin-dts": "^3.7.2", "vite-plugin-environment": "^1.1.3" diff --git a/packages/trpc/package.json b/packages/trpc/package.json index d94a9472a8..5548b84b09 100644 --- a/packages/trpc/package.json +++ b/packages/trpc/package.json @@ -22,6 +22,6 @@ "zod": "^3.22.4" }, "devDependencies": { - "typescript": "^5.8.2" + "typescript": "^5.8.3" } } diff --git a/packages/ui/package.json b/packages/ui/package.json index 4769f98252..6e29c3780b 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -112,6 +112,6 @@ "fs-extra": "^11.2.0", "lucide-static": "^0.424.0", "node-html-parser": "^6.1.13", - "typescript": "^5.8.2" + "typescript": "^5.8.3" } } diff --git a/yarn.lock b/yarn.lock index c1323f8c71..b7894bf426 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2584,7 +2584,7 @@ __metadata: ts-loader: ^9.4.3 ts-node: ^10.9.1 tsconfig-paths: ^4.1.0 - typescript: ^5.8.2 + typescript: ^5.8.3 uuid: ^8.3.2 winston: ^3.13.0 winston-transport: ^4.7.0 @@ -2614,7 +2614,7 @@ __metadata: next-swagger-doc: ^0.3.6 next-validations: ^0.2.0 node-mocks-http: ^1.11.0 - typescript: ^4.9.4 + typescript: ^5.8.3 tzdata: ^1.0.30 uuid: ^8.3.2 zod: ^3.22.4 @@ -2636,7 +2636,7 @@ __metadata: meow: ^9.0.0 react: ^18.2.0 ts-node: ^10.9.1 - typescript: ^4.9.4 + typescript: ^5.8.3 bin: app-store-cli: dist/cli.js languageName: unknown @@ -2706,7 +2706,7 @@ __metadata: tailwindcss: ^3.3.3 tailwindcss-animate: ^1.0.6 ts-jest: ^29.1.2 - typescript: ^4.9.4 + typescript: ^5.8.3 vite: ^5.0.10 vite-plugin-dts: ^3.7.3 vite-plugin-inspect: ^0.8.4 @@ -2764,7 +2764,7 @@ __metadata: react-dom: ^18 react-select: ^5.8.0 tailwindcss: ^3.3.0 - typescript: ^4.9.4 + typescript: ^5.8.3 languageName: unknown linkType: soft @@ -2860,7 +2860,7 @@ __metadata: prettier-plugin-tailwindcss: ^0.2.5 tailwind-scrollbar: ^2.0.1 tailwindcss: ^3.3.3 - typescript: ^4.9.4 + typescript: ^5.8.3 languageName: unknown linkType: soft @@ -3012,7 +3012,7 @@ __metadata: npm-run-all: ^4.1.5 postcss: ^8.4.18 tailwindcss: ^3.3.3 - typescript: ^4.9.4 + typescript: ^5.8.3 vite: ^4.1.2 vite-plugin-environment: ^1.1.3 languageName: unknown @@ -3030,7 +3030,7 @@ __metadata: "@vitejs/plugin-react": ^2.2.0 eslint: ^8.34.0 npm-run-all: ^4.1.5 - typescript: ^4.9.4 + typescript: ^5.8.3 vite: ^4.5.2 peerDependencies: react: ^18.2.0 || ^19.0.0 @@ -3043,7 +3043,7 @@ __metadata: resolution: "@calcom/embed-snippet@workspace:packages/embeds/embed-snippet" dependencies: "@calcom/embed-core": "workspace:*" - typescript: ^4.9.4 + typescript: ^5.8.3 vite: ^4.1.2 languageName: unknown linkType: soft @@ -3056,7 +3056,7 @@ __metadata: "@typescript-eslint/parser": ^5.52.0 "@typescript-eslint/utils": ^5.52.0 ts-node: ^10.9.1 - typescript: ^4.9.4 + typescript: ^5.8.3 languageName: unknown linkType: soft @@ -3392,7 +3392,7 @@ __metadata: sonner: ^1.7.4 tsdav: 2.0.3 tslog: ^4.9.2 - typescript: ^4.9.4 + typescript: ^5.8.3 uuid: ^8.3.2 languageName: unknown linkType: soft @@ -3596,7 +3596,7 @@ __metadata: "@calcom/lib": "*" "@types/node": ^20.3.1 "@vitejs/plugin-react": ^4.2.1 - typescript: ^5.8.2 + typescript: ^5.8.3 vite: ^5.0.12 vite-plugin-dts: ^3.7.2 vite-plugin-environment: ^1.1.3 @@ -3901,7 +3901,7 @@ __metadata: "@trpc/react-query": 11.0.0-next-beta.222 "@trpc/server": 11.0.0-next-beta.222 superjson: 1.9.1 - typescript: ^5.8.2 + typescript: ^5.8.3 zod: ^3.22.4 languageName: unknown linkType: soft @@ -3973,7 +3973,7 @@ __metadata: react-inlinesvg: ^4.1.3 react-select: ^5.7.0 tailwind-merge: ^1.13.2 - typescript: ^5.8.2 + typescript: ^5.8.3 uuid: ^11.1.0 languageName: unknown linkType: soft @@ -4181,7 +4181,7 @@ __metadata: tailwindcss-radix: ^2.6.0 ts-node: ^10.9.1 turndown: ^7.1.3 - typescript: ^4.9.4 + typescript: ^5.8.3 uuid: ^8.3.2 zod: ^3.22.4 languageName: unknown @@ -21854,7 +21854,7 @@ __metadata: resize-observer-polyfill: ^1.5.1 tsc-absolute: ^1.0.0 turbo: ^1.10.1 - typescript: ^4.9.4 + typescript: ^5.8.3 vitest: ^2.1.1 vitest-fetch-mock: ^0.3.0 vitest-mock-extended: ^2.0.2 @@ -45866,7 +45866,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5, typescript@npm:^5.7.2, typescript@npm:^5.8.2": +"typescript@npm:^5, typescript@npm:^5.7.2": version: 5.8.2 resolution: "typescript@npm:5.8.2" bin: @@ -45876,7 +45876,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.2.2": +"typescript@npm:^5.2.2, typescript@npm:^5.8.3": version: 5.8.3 resolution: "typescript@npm:5.8.3" bin: @@ -45906,7 +45906,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^5#~builtin, typescript@patch:typescript@^5.7.2#~builtin, typescript@patch:typescript@^5.8.2#~builtin": +"typescript@patch:typescript@^5#~builtin, typescript@patch:typescript@^5.7.2#~builtin": version: 5.8.2 resolution: "typescript@patch:typescript@npm%3A5.8.2#~builtin::version=5.8.2&hash=1f5320" bin: @@ -45916,7 +45916,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^5.2.2#~builtin": +"typescript@patch:typescript@^5.2.2#~builtin, typescript@patch:typescript@^5.8.3#~builtin": version: 5.8.3 resolution: "typescript@patch:typescript@npm%3A5.8.3#~builtin::version=5.8.3&hash=1f5320" bin: