diff --git a/apps/nextjs/next.config.js b/apps/nextjs/next.config.mjs similarity index 95% rename from apps/nextjs/next.config.js rename to apps/nextjs/next.config.mjs index 0363d2fc..00dfa3a8 100644 --- a/apps/nextjs/next.config.js +++ b/apps/nextjs/next.config.mjs @@ -1,5 +1,5 @@ // Importing env files here to validate on build -import "./src/env.js"; +import "./src/env.mjs"; import "@acme/auth/env"; /** @type {import("next").NextConfig} */ diff --git a/apps/nextjs/src/app/_components/posts.tsx b/apps/nextjs/src/app/_components/posts.tsx index 4e06accc..9ea53473 100644 --- a/apps/nextjs/src/app/_components/posts.tsx +++ b/apps/nextjs/src/app/_components/posts.tsx @@ -1,5 +1,7 @@ "use client"; +import { api } from "@/trpc/react"; + import type { RouterOutputs } from "@acme/api"; import { cn } from "@acme/ui"; import { Button } from "@acme/ui/button"; @@ -15,8 +17,6 @@ import { Input } from "@acme/ui/input"; import { toast } from "@acme/ui/toast"; import { CreatePostSchema } from "@acme/validators"; -import { api } from "~/trpc/react"; - export function CreatePostForm() { const form = useForm({ schema: CreatePostSchema, diff --git a/apps/nextjs/src/app/api/trpc/[trpc]/route.ts b/apps/nextjs/src/app/api/trpc/[trpc]/route.ts index c9a42694..2572b12f 100644 --- a/apps/nextjs/src/app/api/trpc/[trpc]/route.ts +++ b/apps/nextjs/src/app/api/trpc/[trpc]/route.ts @@ -3,8 +3,6 @@ import { fetchRequestHandler } from "@trpc/server/adapters/fetch"; import { appRouter, createTRPCContext } from "@acme/api"; import { auth } from "@acme/auth"; -export const runtime = "edge"; - /** * Configure basic CORS headers * You should extend this to match your needs diff --git a/apps/nextjs/src/app/layout.tsx b/apps/nextjs/src/app/layout.tsx index 0d5fbaf4..9778226e 100644 --- a/apps/nextjs/src/app/layout.tsx +++ b/apps/nextjs/src/app/layout.tsx @@ -1,6 +1,7 @@ -import type { Metadata, Viewport } from "next"; +import type { Metadata } from "next"; import { cache } from "react"; import { headers } from "next/headers"; +import { TRPCReactProvider } from "@/trpc/react"; import { GeistMono } from "geist/font/mono"; import { GeistSans } from "geist/font/sans"; @@ -8,37 +9,12 @@ import { cn } from "@acme/ui"; import { ThemeProvider, ThemeToggle } from "@acme/ui/theme"; import { Toaster } from "@acme/ui/toast"; -import { env } from "~/env"; -import { TRPCReactProvider } from "~/trpc/react"; - -import "~/app/globals.css"; +import "@/app/globals.css"; export const metadata: Metadata = { - metadataBase: new URL( - env.VERCEL_ENV === "production" - ? "https://turbo.t3.gg" - : "http://localhost:3000", - ), - title: "Create T3 Turbo", - description: "Simple monorepo with shared backend for web & mobile apps", - openGraph: { - title: "Create T3 Turbo", - description: "Simple monorepo with shared backend for web & mobile apps", - url: "https://create-t3-turbo.vercel.app", - siteName: "Create T3 Turbo", - }, - twitter: { - card: "summary_large_image", - site: "@jullerino", - creator: "@jullerino", - }, -}; - -export const viewport: Viewport = { - themeColor: [ - { media: "(prefers-color-scheme: light)", color: "white" }, - { media: "(prefers-color-scheme: dark)", color: "black" }, - ], + metadataBase: new URL("http://localhost:3000"), + title: "T3 Turbo - Lucia", + description: "Simple monorepo with shared backend for web apps", }; const getHeaders = cache(async () => headers()); diff --git a/apps/nextjs/src/app/page.tsx b/apps/nextjs/src/app/page.tsx index e58d3b61..5b50b761 100644 --- a/apps/nextjs/src/app/page.tsx +++ b/apps/nextjs/src/app/page.tsx @@ -1,6 +1,6 @@ import { Suspense } from "react"; +import { api } from "@/trpc/server"; -import { api } from "~/trpc/server"; import { AuthShowcase } from "./_components/auth-showcase"; import { CreatePostForm, @@ -8,8 +8,6 @@ import { PostList, } from "./_components/posts"; -export const runtime = "edge"; - export default async function HomePage() { // You don't need to fetch these here, just showing different usages // If you don't want the Suspense loading state, you could pass these diff --git a/apps/nextjs/src/env.js b/apps/nextjs/src/env.mjs similarity index 80% rename from apps/nextjs/src/env.js rename to apps/nextjs/src/env.mjs index eb5cd8c4..eb499080 100644 --- a/apps/nextjs/src/env.js +++ b/apps/nextjs/src/env.mjs @@ -6,11 +6,6 @@ export const env = createEnv({ NODE_ENV: z .enum(["development", "production", "test"]) .default("development"), - VERCEL_ENV: z.enum(["development", "preview", "production"]).optional(), - VERCEL_URL: z - .string() - .optional() - .transform((v) => (v ? `https://${v}` : undefined)), PORT: z.coerce.number().default(3000), }, /** @@ -39,9 +34,6 @@ export const env = createEnv({ DB_PASSWORD: process.env.DB_PASSWORD, DB_USERNAME: process.env.DB_USERNAME, PORT: process.env.PORT, - VERCEL_URL: process.env.VERCEL_URL, - - // NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR, }, skipValidation: !!process.env.CI || diff --git a/apps/nextjs/tsconfig.json b/apps/nextjs/tsconfig.json index c73f60cc..e77d8711 100644 --- a/apps/nextjs/tsconfig.json +++ b/apps/nextjs/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "baseUrl": ".", "paths": { - "~/*": ["./src/*"] + "@/*": ["./src/*"] }, "plugins": [{ "name": "next" }], "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82a51e7f..45a74112 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,18 +172,21 @@ importers: '@acme/db': specifier: workspace:* version: link:../db - '@auth/drizzle-adapter': - specifier: 0.3.14 - version: 0.3.14 '@t3-oss/env-nextjs': specifier: 0.7.1 version: 0.7.1(typescript@5.3.3)(zod@3.22.4) + arctic: + specifier: 0.10.3 + version: 0.10.3 + lucia: + specifier: beta + version: 3.0.0-beta.14 next: specifier: 14.0.4 version: 14.0.4(react-dom@18.2.0)(react@18.2.0) - next-auth: - specifier: 5.0.0-beta.4 - version: 5.0.0-beta.4(next@14.0.4)(react@18.2.0) + oslo: + specifier: 0.27.0 + version: 0.27.0 react: specifier: 18.2.0 version: 18.2.0 @@ -215,12 +218,12 @@ importers: packages/db: dependencies: - '@planetscale/database': - specifier: 1.13.0 - version: 1.13.0 drizzle-orm: specifier: 0.29.3 - version: 0.29.3(@planetscale/database@1.13.0) + version: 0.29.3(mysql2@3.7.0) + mysql2: + specifier: 3.7.0 + version: 3.7.0 devDependencies: '@acme/eslint-config': specifier: workspace:* @@ -460,47 +463,6 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: false - /@auth/core@0.18.4: - resolution: {integrity: sha512-GsNhsP1xE/3FoNS3dVkPjqRljLNJ4iyL2OLv3klQGNvw3bMpROFcK4lqhx7+pPHiamnVaYt2vg1xbB+lsNaevg==} - peerDependencies: - nodemailer: ^6.8.0 - peerDependenciesMeta: - nodemailer: - optional: true - dependencies: - '@panva/hkdf': 1.1.1 - cookie: 0.6.0 - jose: 5.1.3 - oauth4webapi: 2.4.0 - preact: 10.11.3 - preact-render-to-string: 5.2.3(preact@10.11.3) - dev: false - - /@auth/core@0.20.0: - resolution: {integrity: sha512-04lQH58H5d/9xQ63MOTDTOC7sXWYlr/RhJ97wfFLXzll7nYyCKbkrT3ZMdzdLC5O+qt90sQDK85TAtLlcZ2WBg==} - peerDependencies: - nodemailer: ^6.8.0 - peerDependenciesMeta: - nodemailer: - optional: true - dependencies: - '@panva/hkdf': 1.1.1 - '@types/cookie': 0.6.0 - cookie: 0.6.0 - jose: 5.2.0 - oauth4webapi: 2.4.3 - preact: 10.11.3 - preact-render-to-string: 5.2.3(preact@10.11.3) - dev: false - - /@auth/drizzle-adapter@0.3.14: - resolution: {integrity: sha512-Ls+uC9u+ZFofBk0V2E4CWSWkkK87x9QBycUJwgiT/sYF7zo0dEZrzmnzRq7DUMp6wmUVbAp8nzL35Ha0BDV4hQ==} - dependencies: - '@auth/core': 0.20.0 - transitivePeerDependencies: - - nodemailer - dev: false - /@babel/code-frame@7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} @@ -787,6 +749,22 @@ packages: superjson: 2.2.1 dev: true + /@emnapi/core@0.45.0: + resolution: {integrity: sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==} + requiresBuild: true + dependencies: + tslib: 2.5.0 + dev: false + optional: true + + /@emnapi/runtime@0.45.0: + resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==} + requiresBuild: true + dependencies: + tslib: 2.5.0 + dev: false + optional: true + /@esbuild-kit/core-utils@3.1.0: resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} dependencies: @@ -1440,6 +1418,302 @@ packages: dev: false optional: true + /@node-rs/argon2-android-arm-eabi@1.6.1: + resolution: {integrity: sha512-tE6vyT7sBx0XXmvzH+1q58XB8qoy7ZeiNgGpoMunO/97ssvYKcgvIfbkVao8aHHClmjZvWb2Juy598I5AkR30w==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-android-arm64@1.6.1: + resolution: {integrity: sha512-3HYc9lOZ63j71sSFjpVTgu1HUg2O94HvVz66j47Ia8Qq6wjpQusUebeUigMIRPq6Ewh6AgeGv5fxe0cQLGqHlw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-darwin-arm64@1.6.1: + resolution: {integrity: sha512-rJ0OluVhSa4xYc5yQvuzgEPctn/xT10qPyEYQmJ0bBKOA1U75nI20ZAhVdz5olWIBuIsS3vmNEQ5vjrY+DC5Yw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-darwin-x64@1.6.1: + resolution: {integrity: sha512-7j6ZLB77XbrF0jpV2ur1cE42mfYf5L6O0coco04yH7wRbIGIKupS7CW+7ZGWR7zqi3RCV1AM2Qdq8FyXuZkZJA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-freebsd-x64@1.6.1: + resolution: {integrity: sha512-lycNRomwXJv/O30iP6b6kcXbVRk5vCv2aX44ZeeGrGYWAR0Wz0RWHLe884CmnUW1RoFGN2517PHIPP66TCKJbQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-linux-arm-gnueabihf@1.6.1: + resolution: {integrity: sha512-/4FdsWZT8xGiZEIz21bS0sz/3aG6+GaEgFSyr1wF6ui2xdr4nhobOUxhkaPXR1vOwIE3v9B5YB5uehtSCdNTHw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-linux-arm64-gnu@1.6.1: + resolution: {integrity: sha512-GpWZPsc8sy7aNdeV2W6pCPxvXriq+d4pbKX5JsRDzsfyF7OkN6O7ysJ2pYXe6Hvfmr4syVnZ+XVAhs74JPUEVg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-linux-arm64-musl@1.6.1: + resolution: {integrity: sha512-GuMNkb/BtJBXDUDlgAu31limYbRBNryo6mHV0f3/qUveQP4+LZYx5zD2WorqawNAB4SjdAxJBc4rJgmqabHJDw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-linux-x64-gnu@1.6.1: + resolution: {integrity: sha512-wXtK5klEHYQx99jGjpWFiKhsjenhms4tc7bZOXiKf1WPnYwQNzpmuDmGGufxDX2KrdXRbSVD+DKJZCdxp/uSkg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-linux-x64-musl@1.6.1: + resolution: {integrity: sha512-fKJNzFe4QZ3/+C4BuYXK+Je9H2/AY2ojj4Gbr/aFYleu3B/S0pDMvLRKqb3yx5FGeyPBkrKwMrscCqPxAFKJbw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-wasm32-wasi@1.6.1: + resolution: {integrity: sha512-wv1eciTy1WHP34dufxYT02lkiS2qXXeY2wPit7qA8iKlEzAOMzOxbbk9ePWFGTGaYHqgjzy+gXAbunJ/uv8NmQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + requiresBuild: true + dependencies: + '@emnapi/core': 0.45.0 + '@emnapi/runtime': 0.45.0 + dev: false + optional: true + + /@node-rs/argon2-win32-arm64-msvc@1.6.1: + resolution: {integrity: sha512-9tbGPwUGWsuWl9JGeMusaRsCDQeO39H3H7lZRVAPgPtP4UUU/jSzLgi4WA37E6XF9ZSFr+V82Gb+isXOTTm+1w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-win32-ia32-msvc@1.6.1: + resolution: {integrity: sha512-mZfF/FSop7OPU1LR9j+i7n4SRBjZoAOBzcgcQGWx6DSoL3vSJItJ5qm1dZ923PpsyMm2iUTQyejGgR98tOhpnQ==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2-win32-x64-msvc@1.6.1: + resolution: {integrity: sha512-y2FPYGXHEaSodc/ZIjELbxXTz4x84fdbDBELcWLBoPNJEy3z4P5bJDrUn5rP8VbIFcaJ9HwUmQP54PFemF4ReQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@node-rs/argon2@1.6.1: + resolution: {integrity: sha512-5vYE6PXnwpNEdlalC+0ygvZrHS5++43QsxHM3v+SfbhZL8utoHjkiN8VugKIpi4DPtCr+PMmQ24qZX8E8UK57Q==} + engines: {node: '>= 10'} + optionalDependencies: + '@node-rs/argon2-android-arm-eabi': 1.6.1 + '@node-rs/argon2-android-arm64': 1.6.1 + '@node-rs/argon2-darwin-arm64': 1.6.1 + '@node-rs/argon2-darwin-x64': 1.6.1 + '@node-rs/argon2-freebsd-x64': 1.6.1 + '@node-rs/argon2-linux-arm-gnueabihf': 1.6.1 + '@node-rs/argon2-linux-arm64-gnu': 1.6.1 + '@node-rs/argon2-linux-arm64-musl': 1.6.1 + '@node-rs/argon2-linux-x64-gnu': 1.6.1 + '@node-rs/argon2-linux-x64-musl': 1.6.1 + '@node-rs/argon2-wasm32-wasi': 1.6.1 + '@node-rs/argon2-win32-arm64-msvc': 1.6.1 + '@node-rs/argon2-win32-ia32-msvc': 1.6.1 + '@node-rs/argon2-win32-x64-msvc': 1.6.1 + dev: false + + /@node-rs/bcrypt-android-arm-eabi@1.8.1: + resolution: {integrity: sha512-v+FgdokyvPAawpSVuj7x8B/lOPQj86ToqeSTCqBNMdQIQngDL6h8fxYPv8kBrY6kqAd+nFhp3rjaWav0fYB+PQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-android-arm64@1.8.1: + resolution: {integrity: sha512-XT8NUEakx/SHTq/Sczd8wmLRRt3vTn1qeSpfl9ZVU4p5StcrWILn2zKAD3/G6NJMw7jov3ob4fw638SVP1zQ1g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-darwin-arm64@1.8.1: + resolution: {integrity: sha512-FX7C9Cd1B1mrtzDO+388cx3Pw8O2/yIYL61XcINZwKu5XE+7cEA7+F2ad9LS8FFbYE9/HOrVR5R5oLpOTzrEVA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-darwin-x64@1.8.1: + resolution: {integrity: sha512-vgDa+6EcdjqJCXZz9IB6sZvNnKxrnUH8B4LlL2Wb6YyP/bXDzax3VI5XizTH9v0N7Q3zQ89ZjQCa7+NhfOLRxQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-freebsd-x64@1.8.1: + resolution: {integrity: sha512-rNZS5aFaYJOgskKISXmc/JogmDzZIslbxXXDFehpNW29N4ABsM6WpXZutAnNLOjhW66fZ2My2m5PXjP7oE6qVQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-linux-arm-gnueabihf@1.8.1: + resolution: {integrity: sha512-l4xmlBgenRzVVrfJZko7MW/0z0oWSZ8oiuYdKs21ptGR6TzYFDgvKlHUBo4yN60bEGZxlUEYMiESi8ddng/HXA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-linux-arm64-gnu@1.8.1: + resolution: {integrity: sha512-WiZLmOSyxb1T2w8nMXciWfkYCCOzl+VG1JdhvQ0w9/MqRoTU1VasZ7nsMZfzsJW/gfG/W3ihCIoI0RZBZ1QGJA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-linux-arm64-musl@1.8.1: + resolution: {integrity: sha512-2QhQQCeK/7sTPvCgEDvecmgv9zOeQw7sv8VYpx/eoTp+7Nc/w8WjwCiM3PFWPriPPWVcKV0FO81kNjlCap9zHg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-linux-x64-gnu@1.8.1: + resolution: {integrity: sha512-DNbhjS5HxiSBLEvlPQsFlt1peO0LyDkHNI39Xw8q6ADU0pgad36PIA0bHsu7shWWzBu0l4OHck9sU9eRLvHSTA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-linux-x64-musl@1.8.1: + resolution: {integrity: sha512-KUXmJPfe7XossL41tSDhkUma9WHFWDGINhUFBBRBHIJ+WL0MMkkO4N47LZLniAkj8EH1ZFxMugVJSZfPjAzQQQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-wasm32-wasi@1.8.1: + resolution: {integrity: sha512-6sVRrMvrHDRoFeFHALdRcUmZWVU74zTuXv7DakOD2/sTvhFlgyDyimWGjhzOp9CN+jBjLkRUGUReUKqvsAJ+Ww==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + requiresBuild: true + dependencies: + '@emnapi/core': 0.45.0 + '@emnapi/runtime': 0.45.0 + dev: false + optional: true + + /@node-rs/bcrypt-win32-arm64-msvc@1.8.1: + resolution: {integrity: sha512-nkZF5JKuADGr7/2YOTLndLw7a8thTgOT5b0ODRxlNzFeCBs1NUJ6wgjnyPldYhfTWjG6Z4KMAXfnQv4R/HJzmw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-win32-ia32-msvc@1.8.1: + resolution: {integrity: sha512-HySULhQOZygQHKEP+/ThxNyzej+2zfypMzNkq/7/bXlZ5C0e5V9qjcmxgVAue3IUmWTjftR/18zKG8Y3utecDQ==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt-win32-x64-msvc@1.8.1: + resolution: {integrity: sha512-Ii6aiLCYRg43EjVXyNrA+QBYMRF4vhgSUe64p9aBdahtlvmNy0bw2IX4T8sYGrQj4lDTLWi5xK44izh+0HbjAQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@node-rs/bcrypt@1.8.1: + resolution: {integrity: sha512-MmVvL64XIFk/I8EcViMUiO9XzRVCGhuaHGJdek5XV3XhaWj1YuuycaF8TEUlycHs7n+NJcbS2dNt2u8r54PR8Q==} + engines: {node: '>= 10'} + optionalDependencies: + '@node-rs/bcrypt-android-arm-eabi': 1.8.1 + '@node-rs/bcrypt-android-arm64': 1.8.1 + '@node-rs/bcrypt-darwin-arm64': 1.8.1 + '@node-rs/bcrypt-darwin-x64': 1.8.1 + '@node-rs/bcrypt-freebsd-x64': 1.8.1 + '@node-rs/bcrypt-linux-arm-gnueabihf': 1.8.1 + '@node-rs/bcrypt-linux-arm64-gnu': 1.8.1 + '@node-rs/bcrypt-linux-arm64-musl': 1.8.1 + '@node-rs/bcrypt-linux-x64-gnu': 1.8.1 + '@node-rs/bcrypt-linux-x64-musl': 1.8.1 + '@node-rs/bcrypt-wasm32-wasi': 1.8.1 + '@node-rs/bcrypt-win32-arm64-msvc': 1.8.1 + '@node-rs/bcrypt-win32-ia32-msvc': 1.8.1 + '@node-rs/bcrypt-win32-x64-msvc': 1.8.1 + dev: false + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1458,21 +1732,12 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@panva/hkdf@1.1.1: - resolution: {integrity: sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==} - dev: false - /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true optional: true - /@planetscale/database@1.13.0: - resolution: {integrity: sha512-sb9tUoF+Po55o+3PRHZVeH8XzUIABKBKcnq6oBUa+p/2uau/E2EXhnUPXmkC/x7oB6ILBqmqTL6dPP5Dn6d6iA==} - engines: {node: '>=16'} - dev: false - /@radix-ui/primitive@1.0.1: resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} dependencies: @@ -2115,10 +2380,6 @@ packages: update-check: 1.5.4 dev: true - /@types/cookie@0.6.0: - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - dev: false - /@types/eslint@8.56.1: resolution: {integrity: sha512-18PLWRzhy9glDQp3+wOgfLYRWlhgX0azxgJ63rdpoUHyrC9z0f5CkFburjQx4uD7ZCruw85ZtMt6K+L+R8fLJQ==} dependencies: @@ -2415,6 +2676,12 @@ packages: normalize-path: 3.0.0 picomatch: 2.3.1 + /arctic@0.10.3: + resolution: {integrity: sha512-xS0GYJsjwSPJSkHfuavzwdGRF+jda98dWeAPgFb5UkXuN7ECYuTDdsgB/a522MWLJvCSczTWMeEfMCQjlyhNew==} + dependencies: + oslo: 0.24.0 + dev: false + /arg@4.1.0: resolution: {integrity: sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==} dev: true @@ -2876,11 +3143,6 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: false - /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - dev: false - /copy-anything@3.0.4: resolution: {integrity: sha512-MaQ9FwzlZ/KLeVCLhzI3rZw0EhrIryfZa3AyT4agVybR0DjlkDHA8898lamLD6kfkf9MMn8D+zDAUR4+GxaymQ==} engines: {node: '>=12.13'} @@ -3014,6 +3276,11 @@ packages: slash: 3.0.0 dev: true + /denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + dev: false + /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -3119,7 +3386,7 @@ packages: - supports-color dev: true - /drizzle-orm@0.29.3(@planetscale/database@1.13.0): + /drizzle-orm@0.29.3(mysql2@3.7.0): resolution: {integrity: sha512-uSE027csliGSGYD0pqtM+SAQATMREb3eSM/U8s6r+Y0RFwTKwftnwwSkqx3oS65UBgqDOM0gMTl5UGNpt6lW0A==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' @@ -3190,7 +3457,7 @@ packages: sqlite3: optional: true dependencies: - '@planetscale/database': 1.13.0 + mysql2: 3.7.0 dev: false /eastasianwidth@0.2.0: @@ -3870,6 +4137,12 @@ packages: next: 14.0.4(react-dom@18.2.0)(react@18.2.0) dev: false + /generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + dependencies: + is-property: 1.0.2 + dev: false + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -4154,6 +4427,13 @@ packages: safer-buffer: 2.1.2 dev: true + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true @@ -4377,6 +4657,10 @@ packages: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} dev: true + /is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + dev: false + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -4501,14 +4785,6 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true - /jose@5.1.3: - resolution: {integrity: sha512-GPExOkcMsCLBTi1YetY2LmkoY559fss0+0KVa6kOfb2YFe84nAM7Nm/XzuZozah4iHgmBGrCOHL5/cy670SBRw==} - dev: false - - /jose@5.2.0: - resolution: {integrity: sha512-oW3PCnvyrcm1HMvGTzqjxxfnEs9EoFOFWi2HsEGhlFVOXxTE3K9GKWVMFoFw06yPUqwpvEWic1BmtUZBI/tIjw==} - dev: false - /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false @@ -4650,6 +4926,10 @@ packages: is-unicode-supported: 0.1.0 dev: true + /long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: false + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -4686,7 +4966,11 @@ packages: /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - dev: true + + /lru-cache@8.0.5: + resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} + engines: {node: '>=16.14'} + dev: false /lru-queue@0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} @@ -4694,6 +4978,12 @@ packages: es5-ext: 0.10.62 dev: true + /lucia@3.0.0-beta.14: + resolution: {integrity: sha512-MXJILHb4xyvf3qjO7w7mDnvVOub2LGWLSjgP1TBGPLDkBF62uXNfvPNH7QRvOwvuSLtQK+w7JoPjnjiFiIj9rg==} + dependencies: + oslo: 0.27.0 + dev: false + /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true @@ -4781,6 +5071,20 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true + /mysql2@3.7.0: + resolution: {integrity: sha512-c45jA3Jc1X8yJKzrWu1GpplBKGwv/wIV6ITZTlCSY7npF2YfJR+6nMP5e+NTQhUeJPSyOQAbGDCGEHbAl8HN9w==} + engines: {node: '>= 8.0'} + dependencies: + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.6.3 + long: 5.2.3 + lru-cache: 8.0.5 + named-placeholders: 1.1.3 + seq-queue: 0.0.5 + sqlstring: 2.3.3 + dev: false + /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: @@ -4788,6 +5092,13 @@ packages: object-assign: 4.1.1 thenify-all: 1.6.0 + /named-placeholders@1.1.3: + resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} + engines: {node: '>=12.0.0'} + dependencies: + lru-cache: 7.18.3 + dev: false + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4805,21 +5116,6 @@ packages: engines: {node: '>= 0.4.0'} dev: true - /next-auth@5.0.0-beta.4(next@14.0.4)(react@18.2.0): - resolution: {integrity: sha512-vgocjvwPA8gxd/zrIP/vr9lJ/HeNe+C56lPP1D3sdyenHt8KncQV6ro7q0xCsDp1fcOKx7WAWVZH5o8aMxDzgw==} - peerDependencies: - next: ^14 - nodemailer: ^6.6.5 - react: ^18.2.0 - peerDependenciesMeta: - nodemailer: - optional: true - dependencies: - '@auth/core': 0.18.4 - next: 14.0.4(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - dev: false - /next-themes@0.2.1(next@14.0.4)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} peerDependencies: @@ -4923,14 +5219,6 @@ packages: path-key: 3.1.1 dev: true - /oauth4webapi@2.4.0: - resolution: {integrity: sha512-ZWl8ov8HeGVyc9Icl1cag76HvIcDAp23eIIT+UVGir+dEu8BMgMlvZeZwqLVd0P8DqaumH4N+QLQXN69G1QjSA==} - dev: false - - /oauth4webapi@2.4.3: - resolution: {integrity: sha512-mvJqgWMhUUPrKWOikSVA9s3SssYNgxOlyebV4m69rLMUv+EOoLATLxHr+RX9gDCaweiPxr0NhQplYxInFCdLjw==} - dev: false - /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5085,6 +5373,20 @@ packages: engines: {node: '>=0.10.0'} dev: true + /oslo@0.24.0: + resolution: {integrity: sha512-ALOypmwQXyu7AluDqF/EySx7AjWk85gHKY+3yb2LaZ5vArc2jxxZF6tNwGKQ3Rb968ednCFf3opAOoaetRN9+g==} + dependencies: + '@node-rs/argon2': 1.6.1 + '@node-rs/bcrypt': 1.8.1 + dev: false + + /oslo@0.27.0: + resolution: {integrity: sha512-93bfsAlsn2du5rUVUmdmXyTJW7nsO1dViouMc2B9sjmCUzqnTYMtvHSuqti/cmgm96XZIVJEjU+mMWfceLWyYQ==} + dependencies: + '@node-rs/argon2': 1.6.1 + '@node-rs/bcrypt': 1.8.1 + dev: false + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -5267,19 +5569,6 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 - /preact-render-to-string@5.2.3(preact@10.11.3): - resolution: {integrity: sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==} - peerDependencies: - preact: '>=10' - dependencies: - preact: 10.11.3 - pretty-format: 3.8.0 - dev: false - - /preact@10.11.3: - resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} - dev: false - /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -5342,10 +5631,6 @@ packages: engines: {node: '>=14'} hasBin: true - /pretty-format@3.8.0: - resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} - dev: false - /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: @@ -5649,7 +5934,6 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} @@ -5676,6 +5960,10 @@ packages: upper-case-first: 1.1.2 dev: true + /seq-queue@0.0.5: + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} + dev: false + /set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} @@ -5835,6 +6123,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /sqlstring@2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} + engines: {node: '>= 0.6'} + dev: false + /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} diff --git a/tooling/prettier/index.js b/tooling/prettier/index.js index 08bbb473..99da4e3b 100644 --- a/tooling/prettier/index.js +++ b/tooling/prettier/index.js @@ -25,7 +25,7 @@ const config = { "^@acme/(.*)$", "", "^[.|..|~]", - "^~/", + "^@/", "^[../]", "^[./]", ],