From d25e1eaa1d83617cecba822ac0fb24fe61bb3a08 Mon Sep 17 00:00:00 2001 From: Hyteq Date: Tue, 24 Jun 2025 11:29:15 +0300 Subject: [PATCH] feat: migrated packages properly, using packages in web app --- apps/web/package.json | 2 ++ apps/web/src/app/api/auth/[...all]/route.ts | 2 +- apps/web/src/components/auth-form.tsx | 2 +- apps/web/src/components/header.tsx | 2 +- apps/web/src/lib/auth-client.ts | 4 --- apps/web/src/lib/auth.ts | 29 -------------------- bun.lockb | Bin 200656 -> 201960 bytes 7 files changed, 5 insertions(+), 36 deletions(-) delete mode 100644 apps/web/src/lib/auth-client.ts delete mode 100644 apps/web/src/lib/auth.ts diff --git a/apps/web/package.json b/apps/web/package.json index b66a8ee..ed08734 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -19,6 +19,8 @@ "@ffmpeg/util": "^0.12.2", "@hello-pangea/dnd": "^18.0.1", "@hookform/resolvers": "^3.9.1", + "@opencut/auth": "workspace:*", + "@opencut/db": "workspace:*", "@types/pg": "^8.15.4", "@upstash/ratelimit": "^2.0.5", "@upstash/redis": "^1.35.0", diff --git a/apps/web/src/app/api/auth/[...all]/route.ts b/apps/web/src/app/api/auth/[...all]/route.ts index 1fb5744..393fb7e 100644 --- a/apps/web/src/app/api/auth/[...all]/route.ts +++ b/apps/web/src/app/api/auth/[...all]/route.ts @@ -1,4 +1,4 @@ -import { auth } from "@/lib/auth"; +import { auth } from "@opencut/auth/server"; import { toNextJsHandler } from "better-auth/next-js"; export const { POST, GET } = toNextJsHandler(auth); \ No newline at end of file diff --git a/apps/web/src/components/auth-form.tsx b/apps/web/src/components/auth-form.tsx index 3dd5603..72bddd3 100644 --- a/apps/web/src/components/auth-form.tsx +++ b/apps/web/src/components/auth-form.tsx @@ -1,7 +1,7 @@ "use client"; import { useRouter } from "next/navigation"; -import { signUp, signIn } from "@/lib/auth-client"; +import { signUp, signIn } from "@opencut/auth/client"; import { Button } from "@/components/ui/button"; import { Card, diff --git a/apps/web/src/components/header.tsx b/apps/web/src/components/header.tsx index 9f842b2..d1e0518 100644 --- a/apps/web/src/components/header.tsx +++ b/apps/web/src/components/header.tsx @@ -5,7 +5,7 @@ import Image from "next/image"; import { Button } from "./ui/button"; import { ArrowRight } from "lucide-react"; import { HeaderBase } from "./header-base"; -import { useSession } from "@/lib/auth-client"; +import { useSession } from "@opencut/auth/client"; import { getStars } from "@/lib/fetchGhStars"; import { Star } from "lucide-react"; import { useEffect, useState } from "react"; diff --git a/apps/web/src/lib/auth-client.ts b/apps/web/src/lib/auth-client.ts deleted file mode 100644 index 1ab4e63..0000000 --- a/apps/web/src/lib/auth-client.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createAuthClient } from "better-auth/react"; -export const { signIn, signUp, useSession } = createAuthClient({ - baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL!, -}); diff --git a/apps/web/src/lib/auth.ts b/apps/web/src/lib/auth.ts deleted file mode 100644 index d0175c9..0000000 --- a/apps/web/src/lib/auth.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { betterAuth } from "better-auth"; -import { drizzleAdapter } from "better-auth/adapters/drizzle"; -import { db } from "./db"; - -export const auth = betterAuth({ - database: drizzleAdapter(db, { - provider: "pg", - usePlural: true, - }), - secret: process.env.BETTER_AUTH_SECRET!, - user: { - deleteUser: { - enabled: true, - }, - }, - emailAndPassword: { - enabled: true, - }, - socialProviders: { - google: { - clientId: process.env.GOOGLE_CLIENT_ID as string, - clientSecret: process.env.GOOGLE_CLIENT_SECRET as string, - }, - }, - appName: "OpenCut", - trustedOrigins: ["http://localhost:3000"], -}); - -export type Auth = typeof auth; diff --git a/bun.lockb b/bun.lockb index 2f51e8f2c3adb0af5849af68b738d066d3699644..2871b5e6ef38921dbd235f79df6fa2706fb360ec 100644 GIT binary patch delta 34537 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 delta 33406 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 OlbkI&v0ly=i~k>(^3{j{