From 028c5454aa5e7ddbd8b270cbcb15132c148bcb9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6ssner?= Date: Fri, 6 Dec 2024 22:57:36 +1100 Subject: [PATCH 1/7] Init Uploadthing --- .env.example | 2 + package.json | 2 + pnpm-lock.yaml | 130 +++++++++++++++++++++++++++++++ src/app/api/uploadthing/core.ts | 54 +++++++++++++ src/app/api/uploadthing/route.ts | 10 +++ src/app/layout.tsx | 12 +++ src/lib/uploadthing.ts | 8 ++ tailwind.config.ts | 5 +- 8 files changed, 221 insertions(+), 2 deletions(-) create mode 100644 src/app/api/uploadthing/core.ts create mode 100644 src/app/api/uploadthing/route.ts create mode 100644 src/lib/uploadthing.ts diff --git a/.env.example b/.env.example index 5136e0c1..4785d7f3 100644 --- a/.env.example +++ b/.env.example @@ -28,6 +28,8 @@ NEXT_PUBLIC_POSTHOG_HOST="https://eu.i.posthog.com" # Probably, if your Posthog NEXT_PUBLIC_AXIOM_DATASET="..." # Is the name of the Axiom dataset where you want to send data. NEXT_PUBLIC_AXIOM_TOKEN="..." # Is the Axiom API token you have generated. +# Uploadthing +UPLOADTHING_TOKEN="..." # Enviroment variables that Convex will automatically set up for you CONVEX_DEPLOYMENT="dev:..." diff --git a/package.json b/package.json index 84c509d7..062163ec 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "@sentry/nextjs": "^8", "@serwist/next": "9.0.10", "@t3-oss/env-nextjs": "^0.11.1", + "@uploadthing/react": "^7.1.2", "babel-plugin-react-compiler": "19.0.0-beta-df7b47d-20241124", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", @@ -64,6 +65,7 @@ "sonner": "^1.7.0", "tailwind-merge": "^2.5.4", "tailwindcss-animate": "^1.0.7", + "uploadthing": "^7.4.0", "zod": "^3.23.8" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b81a6c9c..31db7632 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -78,6 +78,9 @@ importers: '@t3-oss/env-nextjs': specifier: ^0.11.1 version: 0.11.1(typescript@5.7.2)(zod@3.23.8) + '@uploadthing/react': + specifier: ^7.1.2 + version: 7.1.2(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16)) babel-plugin-react-compiler: specifier: 19.0.0-beta-df7b47d-20241124 version: 19.0.0-beta-df7b47d-20241124 @@ -159,6 +162,9 @@ importers: tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.16) + uploadthing: + specifier: ^7.4.0 + version: 7.4.0(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) zod: specifier: ^3.23.8 version: 3.23.8 @@ -335,6 +341,11 @@ packages: resolution: {integrity: sha512-806lLBal6MVChTVWnzCWZAQdZ2miLJHkVJ+JUX2XX8D1DDPonw2y5tVk9BGWZfKq/rtUP2Jg6HdZOnA5ZbU0Ow==} engines: {node: '>=18.17.0'} + '@effect/platform@0.69.24': + resolution: {integrity: sha512-SPQoIItSo6oFmCUcmnmEr9w+XH+IDOvgQI33kTw7Vjssm4ITfwx3BzMZl/M7Ozu9+g0IgE4SU/xRmW8YL3Z3BQ==} + peerDependencies: + effect: ^3.10.15 + '@emnapi/runtime@1.3.1': resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} @@ -1567,6 +1578,9 @@ packages: typescript: optional: true + '@standard-schema/spec@1.0.0-beta.3': + resolution: {integrity: sha512-0ifF3BjA1E8SY9C+nUew8RefNOIq0cDlYALPty4rhUm8Rrl6tCM8hBT4bhGhx7I7iXD0uAgt50lgo8dD73ACMw==} + '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} @@ -1698,6 +1712,22 @@ packages: resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@uploadthing/mime-types@0.3.2': + resolution: {integrity: sha512-WP/K75S/649lM0GUcd9jq4RjeTIc/0bO2UmLx4+usTSNy/x0K8gV0JdLWeUUbmTQtJoHd4ZTSvAdG7ZQgcmXvA==} + + '@uploadthing/react@7.1.2': + resolution: {integrity: sha512-qH6A/s53DvqGJfSsRMfbum6Zc3CZ135BmL/qmguJdzA8wqWyMoi3dbHcCn3+gUldViVHUqiR324DzK4PlCQKIQ==} + peerDependencies: + next: '*' + react: ^17.0.2 || ^18.0.0 + uploadthing: 7.4.0 + peerDependenciesMeta: + next: + optional: true + + '@uploadthing/shared@7.1.2': + resolution: {integrity: sha512-RG26qUpPufDtuR6NQbFXIJAkkOLTgoU2pvF2MoUx3AsdCwM5/RrgwzsXudNBRER7rQQLg9/k8+Oq+jeVv30qhg==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -2134,6 +2164,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + effect@3.10.15: + resolution: {integrity: sha512-LdczPAFbtij3xGr9i+8PyDtuWdlXjSY5UJ8PKrYrr0DClKfR/OW3j8sxtambWYljzJAYD865KFhv7LdbWdG7VQ==} + electron-to-chromium@1.5.4: resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} @@ -2338,6 +2371,10 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + fast-check@3.23.1: + resolution: {integrity: sha512-u/MudsoQEgBUZgR5N1v87vEgybeVYus9VnDVaIkxkkGP2jt54naghQ3PCQHJiogS8U/GavZCUPFfx3Xkp+NaHw==} + engines: {node: '>=8.0.0'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2373,10 +2410,17 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} + file-selector@0.6.0: + resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} + engines: {node: '>= 12'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-my-way-ts@0.1.5: + resolution: {integrity: sha512-4GOTMrpGQVzsCH2ruUn2vmwzV/02zF4q+ybhCIrw/Rkt3L8KWcycdC6aJMctJzwN4fXD4SD5F/4B9Sksh5rE0A==} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -2871,6 +2915,9 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + multipasta@0.2.5: + resolution: {integrity: sha512-c8eMDb1WwZcE02WVjHoOmUVk7fnKU/RmUcosHACglrWAuPQsEJv+E8430sXj6jNc1jHw0zrS16aCjQh4BcEb4A==} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -3222,6 +3269,9 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -3460,6 +3510,9 @@ packages: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} + sqids@0.3.0: + resolution: {integrity: sha512-lOQK1ucVg+W6n3FhRwwSeUijxe93b51Bfz5PMRMihVf1iVkl82ePQG7V5vwrhzB11v0NtsR25PSZRGiSomJaJw==} + stable-hash@0.0.4: resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} @@ -3691,6 +3744,27 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + uploadthing@7.4.0: + resolution: {integrity: sha512-sTiFvpyiVh8brUQ6z+94lJqEqk1i1G4j6qUO9ekUAdrIZge6jlHFDADiedN+QtqN5U24X32zFlgFsS2JYIVUwg==} + engines: {node: '>=18.13.0'} + peerDependencies: + express: '*' + fastify: '*' + h3: '*' + next: '*' + tailwindcss: '*' + peerDependenciesMeta: + express: + optional: true + fastify: + optional: true + h3: + optional: true + next: + optional: true + tailwindcss: + optional: true + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -3987,6 +4061,12 @@ snapshots: dependencies: csstype: 3.1.1 + '@effect/platform@0.69.24(effect@3.10.15)': + dependencies: + effect: 3.10.15 + find-my-way-ts: 0.1.5 + multipasta: 0.2.5 + '@emnapi/runtime@1.3.1': dependencies: tslib: 2.8.1 @@ -5216,6 +5296,8 @@ snapshots: optionalDependencies: typescript: 5.7.2 + '@standard-schema/spec@1.0.0-beta.3': {} + '@swc/counter@0.1.3': {} '@swc/helpers@0.5.13': @@ -5369,6 +5451,23 @@ snapshots: '@typescript-eslint/types': 8.17.0 eslint-visitor-keys: 4.2.0 + '@uploadthing/mime-types@0.3.2': {} + + '@uploadthing/react@7.1.2(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16))': + dependencies: + '@uploadthing/shared': 7.1.2 + file-selector: 0.6.0 + react: 19.0.0 + uploadthing: 7.4.0(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) + optionalDependencies: + next: 15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + + '@uploadthing/shared@7.1.2': + dependencies: + '@uploadthing/mime-types': 0.3.2 + effect: 3.10.15 + sqids: 0.3.0 + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -5820,6 +5919,10 @@ snapshots: eastasianwidth@0.2.0: {} + effect@3.10.15: + dependencies: + fast-check: 3.23.1 + electron-to-chromium@1.5.4: {} electron-to-chromium@1.5.67: {} @@ -6173,6 +6276,10 @@ snapshots: events@3.3.0: {} + fast-check@3.23.1: + dependencies: + pure-rand: 6.1.0 + fast-deep-equal@3.1.3: {} fast-glob@3.3.1: @@ -6209,10 +6316,16 @@ snapshots: dependencies: flat-cache: 4.0.1 + file-selector@0.6.0: + dependencies: + tslib: 2.8.1 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 + find-my-way-ts@0.1.5: {} + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -6669,6 +6782,8 @@ snapshots: ms@2.1.3: {} + multipasta@0.2.5: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -6940,6 +7055,8 @@ snapshots: punycode@2.3.1: {} + pure-rand@6.1.0: {} + queue-microtask@1.2.3: {} randombytes@2.1.0: @@ -7209,6 +7326,8 @@ snapshots: dependencies: whatwg-url: 7.1.0 + sqids@0.3.0: {} + stable-hash@0.0.4: {} stacktrace-parser@0.1.10: @@ -7488,6 +7607,17 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + uploadthing@7.4.0(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16): + dependencies: + '@effect/platform': 0.69.24(effect@3.10.15) + '@standard-schema/spec': 1.0.0-beta.3 + '@uploadthing/mime-types': 0.3.2 + '@uploadthing/shared': 7.1.2 + effect: 3.10.15 + optionalDependencies: + next: 15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + tailwindcss: 3.4.16 + uri-js@4.4.1: dependencies: punycode: 2.3.1 diff --git a/src/app/api/uploadthing/core.ts b/src/app/api/uploadthing/core.ts new file mode 100644 index 00000000..542c1c3c --- /dev/null +++ b/src/app/api/uploadthing/core.ts @@ -0,0 +1,54 @@ +import { auth } from "@clerk/nextjs/server"; +import { log } from "next-axiom"; +import { createUploadthing, type FileRouter } from "uploadthing/next"; +import { UploadThingError } from "uploadthing/server"; + +const f = createUploadthing(); + +// FileRouter for your app, can contain multiple FileRoutes +export const ourFileRouter = { + // Define as many FileRoutes as you like, each with a unique routeSlug + fileUploader: f({ + image: { + /** + * For full list of options and defaults, see the File Route API reference + * @see https://docs.uploadthing.com/file-routes#route-config + */ + maxFileSize: "4MB", + maxFileCount: 20, + }, + video: { + maxFileSize: "16MB", + maxFileCount: 5, + }, + blob: { + maxFileSize: "8MB", + maxFileCount: 20, + }, + }) + // Set permissions and file types for this FileRoute + .middleware(async () => { + // This code runs on your server before upload + const user = await auth(); + + // If you throw, the user will not be able to upload + if (!user.userId) + // eslint-disable-next-line @typescript-eslint/only-throw-error + throw new UploadThingError({ + message: "Unauthorized", + code: "FORBIDDEN", + }); + + // Whatever is returned here is accessible in onUploadComplete as `metadata` + return { userId: user.userId }; + }) + .onUploadComplete(async ({ metadata }) => { + // This code RUNS ON YOUR SERVER after upload + log.info("Upload complete"); + + // !!! Whatever is returned here is sent to the clientside `onClientUploadComplete` callback + return { uploadedBy: metadata.userId }; + }), +} satisfies FileRouter; + +export type OurFileRouter = typeof ourFileRouter; diff --git a/src/app/api/uploadthing/route.ts b/src/app/api/uploadthing/route.ts new file mode 100644 index 00000000..d7cca432 --- /dev/null +++ b/src/app/api/uploadthing/route.ts @@ -0,0 +1,10 @@ +import { createRouteHandler } from "uploadthing/next"; +import { ourFileRouter } from "./core"; + +// Export routes for Next App Router +export const { GET, POST } = createRouteHandler({ + router: ourFileRouter, + + // Apply an (optional) custom config: + // config: { ... }, +}); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index e1d7c647..c8cd5df7 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,5 +1,7 @@ import "~/styles/globals.css"; import { ClerkProvider } from "@clerk/nextjs"; +import { NextSSRPlugin } from "@uploadthing/react/next-ssr-plugin"; +import { ourFileRouter } from "~/app/api/uploadthing/core"; import ConvexClientProvider from "~/app/convex-client-provider"; import { ThemeProvider } from "~/components/theme-provider"; import { Toaster } from "~/components/ui/sonner"; @@ -8,6 +10,7 @@ import { ConvexQueryCacheProvider } from "convex-helpers/react/cache/provider"; import { GeistSans } from "geist/font/sans"; import type { Metadata, Viewport } from "next"; import React from "react"; +import { extractRouterConfig } from "uploadthing/server"; import { CSPostHogProvider } from "./_analytics/provider"; const APP_NAME = "Chat.io"; @@ -70,6 +73,15 @@ export default function RootLayout({ "min-h-screen bg-background antialiased", )} > + (); +export const UploadDropzone = generateUploadDropzone(); diff --git a/tailwind.config.ts b/tailwind.config.ts index 25678adb..7124eea1 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -2,8 +2,9 @@ import type { PluginCreator } from "postcss"; import type { Config } from "tailwindcss"; // @ts-expect-error - Tailwind CSS does not have types for this package unfortunately import { default as flattenColorPalette } from "tailwindcss/lib/util/flattenColorPalette"; +import { withUt } from "uploadthing/tw"; -const config = { +const config = withUt({ darkMode: ["class"], content: [ "./pages/**/*.{ts,tsx}", @@ -98,7 +99,7 @@ const config = { }, // eslint-disable-next-line @typescript-eslint/no-require-imports plugins: [require("tailwindcss-animate"), addVariablesForColors], -} satisfies Config; +} satisfies Config); // This plugin adds each Tailwind color as a global CSS variable, e.g. var(--gray-200). function addVariablesForColors({ From 5a5427ec4fbacc15c821e8489be3d4f705f21ee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6ssner?= Date: Fri, 6 Dec 2024 23:15:57 +1100 Subject: [PATCH 2/7] Added some todos --- src/app/api/sign-up/route.ts | 2 +- src/app/api/uploadthing/core.ts | 4 ++++ src/lib/uploadthing.ts | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/app/api/sign-up/route.ts b/src/app/api/sign-up/route.ts index 9ab0e08e..ca65f47c 100644 --- a/src/app/api/sign-up/route.ts +++ b/src/app/api/sign-up/route.ts @@ -26,7 +26,7 @@ export async function OPTIONS(request: Request) { } } -// TODO: This probably deserves a rate limiter + a check for not creating a bunch of trash users to spam us. +// TODO: This deserves a rate limiter + a check for not creating a bunch of trash users to spam us. Example: https://github.com/t3dotgg/t3gallery/blob/main/src/server/ratelimit.ts export async function POST(request: Request) { const unparsedSignUpHeaders = (await request.json()) as FormSchemaSignUp; const parsedSignUpHeaders = formSchemaSignUp.safeParse(unparsedSignUpHeaders); diff --git a/src/app/api/uploadthing/core.ts b/src/app/api/uploadthing/core.ts index 542c1c3c..a679d3bd 100644 --- a/src/app/api/uploadthing/core.ts +++ b/src/app/api/uploadthing/core.ts @@ -39,6 +39,8 @@ export const ourFileRouter = { code: "FORBIDDEN", }); + // TODO: This deserves a rate limiter + a check for not creating a bunch of trash files to spam us. Example: https://github.com/t3dotgg/t3gallery/blob/main/src/server/ratelimit.ts + // Whatever is returned here is accessible in onUploadComplete as `metadata` return { userId: user.userId }; }) @@ -46,6 +48,8 @@ export const ourFileRouter = { // This code RUNS ON YOUR SERVER after upload log.info("Upload complete"); + // TODO: Call Convex to store the file in the db + // !!! Whatever is returned here is sent to the clientside `onClientUploadComplete` callback return { uploadedBy: metadata.userId }; }), diff --git a/src/lib/uploadthing.ts b/src/lib/uploadthing.ts index d418d158..4c16b68c 100644 --- a/src/lib/uploadthing.ts +++ b/src/lib/uploadthing.ts @@ -1,8 +1,12 @@ import { + generateReactHelpers, generateUploadButton, generateUploadDropzone, } from "@uploadthing/react"; import type { OurFileRouter } from "~/app/api/uploadthing/core"; +export const { useUploadThing, uploadFiles, createUpload, getRouteConfig } = + generateReactHelpers(); + export const UploadButton = generateUploadButton(); export const UploadDropzone = generateUploadDropzone(); From 78d63a4ff5f71d3a63ff23df1e75e1c3ce82c311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6ssner?= Date: Sat, 7 Dec 2024 02:44:47 +1100 Subject: [PATCH 3/7] fix merge error --- pnpm-lock.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 86e9d09e..4ad31e0e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4097,6 +4097,16 @@ snapshots: dependencies: csstype: 3.1.1 + '@clerk/types@4.39.0': + dependencies: + csstype: 3.1.1 + + '@effect/platform@0.69.24(effect@3.10.15)': + dependencies: + effect: 3.10.15 + find-my-way-ts: 0.1.5 + multipasta: 0.2.5 + '@emnapi/runtime@1.3.1': dependencies: tslib: 2.8.1 From 3b73cd9a3e3baa8269a61581c3f5d08d48de5a9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6ssner?= Date: Wed, 11 Dec 2024 15:29:35 +1100 Subject: [PATCH 4/7] fix merge errors --- pnpm-lock.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e334955..38a2610e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,7 +80,7 @@ importers: version: 0.11.1(typescript@5.7.2)(zod@3.24.1) '@uploadthing/react': specifier: ^7.1.2 - version: 7.1.2(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16)) + version: 7.1.2(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16)) babel-plugin-react-compiler: specifier: 19.0.0-beta-df7b47d-20241124 version: 19.0.0-beta-df7b47d-20241124 @@ -164,7 +164,7 @@ importers: version: 1.0.7(tailwindcss@3.4.16) uploadthing: specifier: ^7.4.0 - version: 7.4.0(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) + version: 7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) zod: specifier: ^3.23.8 version: 3.24.1 @@ -5464,14 +5464,14 @@ snapshots: '@uploadthing/mime-types@0.3.2': {} - '@uploadthing/react@7.1.2(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16))': + '@uploadthing/react@7.1.2(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16))': dependencies: '@uploadthing/shared': 7.1.2 file-selector: 0.6.0 react: 19.0.0 - uploadthing: 7.4.0(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) + uploadthing: 7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) optionalDependencies: - next: 15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@uploadthing/shared@7.1.2': dependencies: @@ -7636,7 +7636,7 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - uploadthing@7.4.0(next@15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16): + uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16): dependencies: '@effect/platform': 0.69.24(effect@3.10.15) '@standard-schema/spec': 1.0.0-beta.3 @@ -7644,7 +7644,7 @@ snapshots: '@uploadthing/shared': 7.1.2 effect: 3.10.15 optionalDependencies: - next: 15.0.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tailwindcss: 3.4.16 uri-js@4.4.1: From ac0a29ea5458fb3a4ad85da545cf6d52aba51470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6ssner?= Date: Wed, 11 Dec 2024 17:03:23 +1100 Subject: [PATCH 5/7] fix merge errors --- pnpm-lock.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea2c7048..e60da852 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,7 +76,7 @@ importers: version: 0.11.1(typescript@5.7.2)(zod@3.24.1) '@uploadthing/react': specifier: ^7.1.2 - version: 7.1.2(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16)) + version: 7.1.2(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16)) babel-plugin-react-compiler: specifier: 19.0.0-beta-37ed2a7-20241206 version: 19.0.0-beta-37ed2a7-20241206 @@ -163,7 +163,7 @@ importers: version: 1.0.7(tailwindcss@3.4.16) uploadthing: specifier: ^7.4.0 - version: 7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) + version: 7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) zod: specifier: ^3.23.8 version: 3.24.1 @@ -5579,14 +5579,14 @@ snapshots: '@uploadthing/mime-types@0.3.2': {} - '@uploadthing/react@7.1.2(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16))': + '@uploadthing/react@7.1.2(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16))': dependencies: '@uploadthing/shared': 7.1.2 file-selector: 0.6.0 react: 19.0.0 - uploadthing: 7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) + uploadthing: 7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) optionalDependencies: - next: 15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@uploadthing/shared@7.1.2': dependencies: @@ -7806,7 +7806,7 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16): + uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16): dependencies: '@effect/platform': 0.69.24(effect@3.10.15) '@standard-schema/spec': 1.0.0-beta.3 @@ -7814,7 +7814,7 @@ snapshots: '@uploadthing/shared': 7.1.2 effect: 3.10.15 optionalDependencies: - next: 15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-df7b47d-20241124)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tailwindcss: 3.4.16 uri-js@4.4.1: From 59dca79326aebaef360bde7f5b8107af2aed3ccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6ssner?= Date: Sun, 9 Feb 2025 13:57:23 +1100 Subject: [PATCH 6/7] fix lockfile --- pnpm-lock.yaml | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dedf619c..ec46fae9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -73,7 +73,7 @@ importers: version: 0.12.0(typescript@5.7.3)(zod@3.24.1) '@uploadthing/react': specifier: ^7.1.2 - version: 7.1.2(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16)) + version: 7.1.2(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17)) babel-plugin-react-compiler: specifier: 19.0.0-beta-e552027-20250112 version: 19.0.0-beta-e552027-20250112 @@ -163,7 +163,7 @@ importers: version: 1.0.7(tailwindcss@3.4.17) uploadthing: specifier: ^7.4.0 - version: 7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) + version: 7.4.0(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17) zod: specifier: ^3.23.8 version: 3.24.1 @@ -4248,12 +4248,6 @@ packages: peerDependencies: browserslist: '>= 4.21.0' - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - uploadthing@7.4.0: resolution: {integrity: sha512-sTiFvpyiVh8brUQ6z+94lJqEqk1i1G4j6qUO9ekUAdrIZge6jlHFDADiedN+QtqN5U24X32zFlgFsS2JYIVUwg==} engines: {node: '>=18.13.0'} @@ -6162,14 +6156,14 @@ snapshots: '@uploadthing/mime-types@0.3.2': {} - '@uploadthing/react@7.1.2(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16))': + '@uploadthing/react@7.1.2(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17))': dependencies: '@uploadthing/shared': 7.1.2 file-selector: 0.6.0 react: 19.0.0 - uploadthing: 7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16) + uploadthing: 7.4.0(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17) optionalDependencies: - next: 15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@uploadthing/shared@7.1.2': dependencies: @@ -8574,7 +8568,7 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - uploadthing@7.4.0(next@15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.16): + uploadthing@7.4.0(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17): dependencies: '@effect/platform': 0.69.24(effect@3.10.15) '@standard-schema/spec': 1.0.0-beta.3 @@ -8582,8 +8576,8 @@ snapshots: '@uploadthing/shared': 7.1.2 effect: 3.10.15 optionalDependencies: - next: 15.1.0(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - tailwindcss: 3.4.16 + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + tailwindcss: 3.4.17 uri-js@4.4.1: dependencies: From 6ffb4fd236063ed40f128536829c751dc4086d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6ssner?= Date: Sun, 9 Feb 2025 13:59:47 +1100 Subject: [PATCH 7/7] fix(deps): update packages --- package.json | 6 +-- pnpm-lock.yaml | 136 ++++++++++++++++++++++++------------------------- 2 files changed, 71 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index 696dccd0..6ce175f1 100644 --- a/package.json +++ b/package.json @@ -36,8 +36,8 @@ "@sentry/nextjs": "^8", "@serwist/next": "9.0.11", "@t3-oss/env-nextjs": "^0.12.0", - "@uploadthing/react": "^7.1.2", - "babel-plugin-react-compiler": "19.0.0-beta-e552027-20250112", + "@uploadthing/react": "^7.1.5", + "babel-plugin-react-compiler": "19.0.0-beta-714736e-20250131", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "convex": "^1.19.0", @@ -66,7 +66,7 @@ "sonner": "^1.7.0", "tailwind-merge": "^3.0.0", "tailwindcss-animate": "^1.0.7", - "uploadthing": "^7.4.0", + "uploadthing": "^7.4.4", "zod": "^3.23.8" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec46fae9..3fd9c8c6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@clerk/nextjs': specifier: ^6.5.1 - version: 6.11.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 6.11.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@emoji-mart/data': specifier: ^1.2.1 version: 1.2.1 @@ -64,19 +64,19 @@ importers: version: 6.0.1(react@19.0.0) '@sentry/nextjs': specifier: ^8 - version: 8.54.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.97.1) + version: 8.54.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.97.1) '@serwist/next': specifier: 9.0.11 - version: 9.0.11(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.3)(webpack@5.97.1) + version: 9.0.11(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.3)(webpack@5.97.1) '@t3-oss/env-nextjs': specifier: ^0.12.0 version: 0.12.0(typescript@5.7.3)(zod@3.24.1) '@uploadthing/react': - specifier: ^7.1.2 - version: 7.1.2(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17)) + specifier: ^7.1.5 + version: 7.1.5(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.4(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17)) babel-plugin-react-compiler: - specifier: 19.0.0-beta-e552027-20250112 - version: 19.0.0-beta-e552027-20250112 + specifier: 19.0.0-beta-714736e-20250131 + version: 19.0.0-beta-714736e-20250131 class-variance-authority: specifier: ^0.7.0 version: 0.7.1 @@ -106,7 +106,7 @@ importers: version: 12.4.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) geist: specifier: ^1.3.1 - version: 1.3.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + version: 1.3.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) jiti: specifier: ^2.4.1 version: 2.4.2 @@ -115,10 +115,10 @@ importers: version: 0.475.0(react@19.0.0) next: specifier: ^15.0.3 - version: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next-axiom: specifier: ^1.7.0 - version: 1.9.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) + version: 1.9.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) next-themes: specifier: ^0.4.4 version: 0.4.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -127,7 +127,7 @@ importers: version: 7.0.2 nuqs: specifier: ^2.3.1 - version: 2.3.2(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) + version: 2.3.2(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) posthog-js: specifier: ^1.195.0 version: 1.215.6 @@ -151,7 +151,7 @@ importers: version: 10.0.0(react@19.0.0) react-scan: specifier: ^0.1.0 - version: 0.1.3(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@3.29.5) + version: 0.1.3(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@3.29.5) sonner: specifier: ^1.7.0 version: 1.7.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -162,8 +162,8 @@ importers: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.17) uploadthing: - specifier: ^7.4.0 - version: 7.4.0(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17) + specifier: ^7.4.4 + version: 7.4.4(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17) zod: specifier: ^3.23.8 version: 3.24.1 @@ -363,10 +363,10 @@ packages: resolution: {integrity: sha512-DSXPWq1xD01tzyHv7CugX2T/XfVUZX2xxQ92cs+JPTrGoqIYm+yjRWqOz1CVJ/76TbYMOrB0efCGOxEcNV/PQw==} engines: {node: '>=18.17.0'} - '@effect/platform@0.69.24': - resolution: {integrity: sha512-SPQoIItSo6oFmCUcmnmEr9w+XH+IDOvgQI33kTw7Vjssm4ITfwx3BzMZl/M7Ozu9+g0IgE4SU/xRmW8YL3Z3BQ==} + '@effect/platform@0.70.7': + resolution: {integrity: sha512-TbNwj/mOJhycPygbmicGBS7CNtv5Z8WVheRbLUdP3oPAe/nbSOJVLc8ZPvOejhquF/1vJMKuqY5MWfkcBpvi/g==} peerDependencies: - effect: ^3.10.15 + effect: ^3.11.5 '@emnapi/runtime@1.3.1': resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} @@ -2040,21 +2040,21 @@ packages: resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@uploadthing/mime-types@0.3.2': - resolution: {integrity: sha512-WP/K75S/649lM0GUcd9jq4RjeTIc/0bO2UmLx4+usTSNy/x0K8gV0JdLWeUUbmTQtJoHd4ZTSvAdG7ZQgcmXvA==} + '@uploadthing/mime-types@0.3.4': + resolution: {integrity: sha512-EB0o0a4y++UJFMLqS8LDVhSQgXUllG6t5fwl5cbmOM0Uay8YY5Nc/JjFwzJ8wccdIKz4oYwQW7EOSfUyaMPbfw==} - '@uploadthing/react@7.1.2': - resolution: {integrity: sha512-qH6A/s53DvqGJfSsRMfbum6Zc3CZ135BmL/qmguJdzA8wqWyMoi3dbHcCn3+gUldViVHUqiR324DzK4PlCQKIQ==} + '@uploadthing/react@7.1.5': + resolution: {integrity: sha512-D0lP4YnUWw5LFHrLuL+sq26wlul9dGE70G+oOQ+qkM1ZqSeKSGvIdAIOAQUBj2qQi4Re7o0VpF3+3qBF3svN6A==} peerDependencies: next: '*' - react: ^17.0.2 || ^18.0.0 - uploadthing: 7.4.0 + react: ^17.0.2 || ^18.0.0 || ^19.0.0 + uploadthing: ^7.2.0 peerDependenciesMeta: next: optional: true - '@uploadthing/shared@7.1.2': - resolution: {integrity: sha512-RG26qUpPufDtuR6NQbFXIJAkkOLTgoU2pvF2MoUx3AsdCwM5/RrgwzsXudNBRER7rQQLg9/k8+Oq+jeVv30qhg==} + '@uploadthing/shared@7.1.5': + resolution: {integrity: sha512-5ePSiR2CPA5a8gfPqsHpE/uPwGG9iPqhxcFpeLGnEuExPqIi5ZY7upZgpc+6T1gMxwfbP0O5X4043TTNk3q/pA==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -2248,8 +2248,8 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - babel-plugin-react-compiler@19.0.0-beta-e552027-20250112: - resolution: {integrity: sha512-pUTT0mAZ4XLewC6bvqVeX015nVRLVultcSQlkzGdC10G6YV6K2h4E7cwGlLAuLKWTj3Z08mTO9uTnPP/opUBsg==} + babel-plugin-react-compiler@19.0.0-beta-714736e-20250131: + resolution: {integrity: sha512-frj2l6fRWVi26iw9WthFKyFyE4u5ZSHH3KdKiscOOwpz210seTtwnp0QbJmi8Zoa5HK7Fk2fH40JffN2y8GvLg==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2528,8 +2528,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - effect@3.10.15: - resolution: {integrity: sha512-LdczPAFbtij3xGr9i+8PyDtuWdlXjSY5UJ8PKrYrr0DClKfR/OW3j8sxtambWYljzJAYD865KFhv7LdbWdG7VQ==} + effect@3.11.5: + resolution: {integrity: sha512-oSzaR/S/2A/qDTnDqMWxQUNSjCG2sRLB4NEvTu+l9RqE122MTgKXOWzw0x4MHsdovRTzAihfkpgBj2aLFnH2+w==} electron-to-chromium@1.5.80: resolution: {integrity: sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw==} @@ -4248,15 +4248,15 @@ packages: peerDependencies: browserslist: '>= 4.21.0' - uploadthing@7.4.0: - resolution: {integrity: sha512-sTiFvpyiVh8brUQ6z+94lJqEqk1i1G4j6qUO9ekUAdrIZge6jlHFDADiedN+QtqN5U24X32zFlgFsS2JYIVUwg==} + uploadthing@7.4.4: + resolution: {integrity: sha512-dgV8LqaKrXSnpDkqzzLbVEmIubMPi8a5bRtIzM+rG5EbZpIZyOG0bByLxdSlkSbK5L6F+HbIGX5eDkLPFNL8dg==} engines: {node: '>=18.13.0'} peerDependencies: express: '*' fastify: '*' h3: '*' next: '*' - tailwindcss: '*' + tailwindcss: ^3.0.0 || ^4.0.0-beta.0 peerDependenciesMeta: express: optional: true @@ -4507,7 +4507,7 @@ snapshots: dependencies: '@babel/code-frame': 7.26.2 '@babel/parser': 7.26.5 - '@babel/types': 7.26.5 + '@babel/types': 7.26.7 '@babel/traverse@7.26.5': dependencies: @@ -4573,14 +4573,14 @@ snapshots: react-dom: 19.0.0(react@19.0.0) tslib: 2.4.1 - '@clerk/nextjs@6.11.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@clerk/nextjs@6.11.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@clerk/backend': 1.23.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@clerk/clerk-react': 5.22.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@clerk/shared': 2.20.18(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@clerk/types': 4.45.0 crypto-js: 4.2.0 - next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) server-only: 0.0.1 @@ -4602,9 +4602,9 @@ snapshots: dependencies: csstype: 3.1.1 - '@effect/platform@0.69.24(effect@3.10.15)': + '@effect/platform@0.70.7(effect@3.11.5)': dependencies: - effect: 3.10.15 + effect: 3.11.5 find-my-way-ts: 0.1.5 multipasta: 0.2.5 @@ -5840,7 +5840,7 @@ snapshots: '@sentry/core@8.54.0': {} - '@sentry/nextjs@8.54.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.97.1)': + '@sentry/nextjs@8.54.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.97.1)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.28.0 @@ -5853,7 +5853,7 @@ snapshots: '@sentry/vercel-edge': 8.54.0 '@sentry/webpack-plugin': 2.22.7(webpack@5.97.1) chalk: 3.0.0 - next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) resolve: 1.22.8 rollup: 3.29.5 stacktrace-parser: 0.1.10 @@ -5949,14 +5949,14 @@ snapshots: optionalDependencies: typescript: 5.7.3 - '@serwist/next@9.0.11(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.3)(webpack@5.97.1)': + '@serwist/next@9.0.11(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.3)(webpack@5.97.1)': dependencies: '@serwist/build': 9.0.11(typescript@5.7.3) '@serwist/webpack-plugin': 9.0.11(typescript@5.7.3)(webpack@5.97.1) '@serwist/window': 9.0.11(typescript@5.7.3) chalk: 5.3.0 glob: 10.4.5 - next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) serwist: 9.0.11(typescript@5.7.3) zod: 3.23.8 optionalDependencies: @@ -6154,21 +6154,21 @@ snapshots: '@typescript-eslint/types': 8.23.0 eslint-visitor-keys: 4.2.0 - '@uploadthing/mime-types@0.3.2': {} + '@uploadthing/mime-types@0.3.4': {} - '@uploadthing/react@7.1.2(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.0(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17))': + '@uploadthing/react@7.1.5(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(uploadthing@7.4.4(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17))': dependencies: - '@uploadthing/shared': 7.1.2 + '@uploadthing/shared': 7.1.5 file-selector: 0.6.0 react: 19.0.0 - uploadthing: 7.4.0(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17) + uploadthing: 7.4.4(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17) optionalDependencies: - next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@uploadthing/shared@7.1.2': + '@uploadthing/shared@7.1.5': dependencies: - '@uploadthing/mime-types': 0.3.2 - effect: 3.10.15 + '@uploadthing/mime-types': 0.3.4 + effect: 3.11.5 sqids: 0.3.0 '@webassemblyjs/ast@1.14.1': @@ -6411,9 +6411,9 @@ snapshots: axobject-query@4.1.0: {} - babel-plugin-react-compiler@19.0.0-beta-e552027-20250112: + babel-plugin-react-compiler@19.0.0-beta-714736e-20250131: dependencies: - '@babel/types': 7.26.5 + '@babel/types': 7.26.7 balanced-match@1.0.2: {} @@ -6655,7 +6655,7 @@ snapshots: eastasianwidth@0.2.0: {} - effect@3.10.15: + effect@3.11.5: dependencies: fast-check: 3.23.1 @@ -7184,9 +7184,9 @@ snapshots: functions-have-names@1.2.3: {} - geist@1.3.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): + geist@1.3.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): dependencies: - next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) gensync@1.0.0-beta.2: {} @@ -7641,9 +7641,9 @@ snapshots: neo-async@2.6.2: {} - next-axiom@1.9.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0): + next-axiom@1.9.1(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0): dependencies: - next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 use-deep-compare: 1.3.0(react@19.0.0) whatwg-fetch: 3.6.20 @@ -7653,7 +7653,7 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@next/env': 15.1.6 '@swc/counter': 0.1.3 @@ -7674,7 +7674,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.1.6 '@next/swc-win32-x64-msvc': 15.1.6 '@opentelemetry/api': 1.9.0 - babel-plugin-react-compiler: 19.0.0-beta-e552027-20250112 + babel-plugin-react-compiler: 19.0.0-beta-714736e-20250131 sharp: 0.33.5 transitivePeerDependencies: - '@babel/core' @@ -7708,12 +7708,12 @@ snapshots: shell-quote: 1.8.2 which: 5.0.0 - nuqs@2.3.2(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0): + nuqs@2.3.2(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0): dependencies: mitt: 3.0.1 react: 19.0.0 optionalDependencies: - next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) object-assign@4.1.1: {} @@ -7983,7 +7983,7 @@ snapshots: react: 19.0.0 shallow-equal: 3.1.0 - react-scan@0.1.3(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@3.29.5): + react-scan@0.1.3(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@3.29.5): dependencies: '@babel/core': 7.26.7 '@babel/generator': 7.26.5 @@ -8005,7 +8005,7 @@ snapshots: react-dom: 19.0.0(react@19.0.0) tsx: 4.19.2 optionalDependencies: - next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) unplugin: 2.1.0 transitivePeerDependencies: - rollup @@ -8568,15 +8568,15 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - uploadthing@7.4.0(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17): + uploadthing@7.4.4(next@15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tailwindcss@3.4.17): dependencies: - '@effect/platform': 0.69.24(effect@3.10.15) + '@effect/platform': 0.70.7(effect@3.11.5) '@standard-schema/spec': 1.0.0-beta.3 - '@uploadthing/mime-types': 0.3.2 - '@uploadthing/shared': 7.1.2 - effect: 3.10.15 + '@uploadthing/mime-types': 0.3.4 + '@uploadthing/shared': 7.1.5 + effect: 3.11.5 optionalDependencies: - next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-e552027-20250112)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.1.6(@babel/core@7.26.7)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@19.0.0-beta-714736e-20250131)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tailwindcss: 3.4.17 uri-js@4.4.1: