This commit is contained in:
Darren Clarke 2024-03-17 12:58:25 +01:00
parent f62c9f064d
commit b8c6e893ff
43 changed files with 4721 additions and 1807 deletions

View file

@ -0,0 +1,14 @@
import NextAuth from "next-auth"
import GoogleProvider from "next-auth/providers/google"
import { KyselyAdapter } from "@auth/kysely-adapter"
import { db } from "./database";
export const authOptions = NextAuth({
adapter: KyselyAdapter(db),
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
}),
],
})

View file

@ -0,0 +1,62 @@
import { PostgresDialect } from "kysely";
import { Pool } from "pg";
import { KyselyAuth } from "@auth/kysely-adapter";
import { CamelCasePlugin } from "kysely";
import type { GeneratedAlways } from "kysely";
interface Database {
User: {
id: GeneratedAlways<string>;
name: string | null;
email: string;
emailVerified: Date | null;
image: string | null;
};
Account: {
id: GeneratedAlways<string>;
userId: string;
type: string;
provider: string;
providerAccountId: string;
refresh_token: string | null;
access_token: string | null;
expires_at: number | null;
token_type: string | null;
scope: string | null;
id_token: string | null;
session_state: string | null;
};
Session: {
id: GeneratedAlways<string>;
userId: string;
sessionToken: string;
expires: Date;
};
VerificationToken: {
identifier: string;
token: string;
expires: Date;
};
WhatsAppBot: {
id: GeneratedAlways<string>;
userId: string;
phone: string;
password: string;
};
}
export const db = new KyselyAuth<Database>({
dialect: new PostgresDialect({
pool: new Pool({
host: process.env.DATABASE_HOST,
database: process.env.DATABASE_NAME,
user: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
}),
}),
plugins: [new CamelCasePlugin()],
});

View file

@ -0,0 +1,6 @@
import NextAuth from "next-auth";
import { authOptions } from "@/app/_lib/authentication";
const handler = NextAuth(authOptions);
export { handler as GET, handler as POST };

View file

@ -1,7 +1,7 @@
"use client";
import { GridColDef } from "@mui/x-data-grid-pro";
import { List } from "@/app/_components/List";
import { List } from "ui";
export default function Page() {
const columns: GridColDef[] = [

View file

@ -1,7 +1,7 @@
"use client";
import { GridColDef } from "@mui/x-data-grid-pro";
import { List } from "@/app/_components/List";
import { List } from "ui";
export default function Page() {
const columns: GridColDef[] = [

View file

@ -1,7 +1,7 @@
"use client";
import { GridColDef } from "@mui/x-data-grid-pro";
import { List } from "@/app/_components/List";
import { List } from "ui";
export default function Page() {
const columns: GridColDef[] = [

View file

@ -1,7 +1,7 @@
"use client";
import { GridColDef } from "@mui/x-data-grid-pro";
import { List } from "@/app/_components/List";
import { List } from "ui";
export default function Page() {
const columns: GridColDef[] = [

View file

@ -1,7 +1,7 @@
"use client";
import { GridColDef } from "@mui/x-data-grid-pro";
import { List } from "@/app/_components/List";
import { List } from "ui";
export default function Page() {
const columns: GridColDef[] = [

View file

@ -1,4 +1,6 @@
/** @type {import('next').NextConfig} */
const nextConfig = {};
const nextConfig = {
transpilePackages: ["ui"]
};
export default nextConfig;

View file

@ -9,37 +9,40 @@
"lint": "next lint"
},
"dependencies": {
"@auth/kysely-adapter": "^0.6.0",
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.4",
"@emotion/server": "^11.11.0",
"@emotion/styled": "^11.11.0",
"@mui/icons-material": "^5",
"@mui/lab": "^5.0.0-alpha.168",
"@mui/material": "^5",
"@mui/material-nextjs": "^5.15.11",
"@mui/x-data-grid-pro": "^6.19.6",
"@mui/x-date-pickers-pro": "^6.19.7",
"date-fns": "^3.5.0",
"kysely": "^0.27.3",
"leafcutter-common": "*",
"kysely": "^0.26.1",
"material-ui-popup-state": "^5.0.10",
"mui-chips-input": "^2.1.4",
"next": "14.1.3",
"next-auth": "^4.24.7",
"pg": "^8.11.3",
"react": "18.2.0",
"react-cookie": "^7.1.0",
"react-digit-input": "^2.1.0",
"react-dom": "18.2.0",
"react-polyglot": "^0.7.2",
"react-qr-code": "^2.0.12",
"react-timer-hook": "^3.0.7",
"tss-react": "^4.9.4"
"tss-react": "^4.9.4",
"ui": "*"
},
"devDependencies": {
"@types/node": "^20",
"@types/pg": "^8.11.2",
"@types/react": "^18",
"@types/react-dom": "^18",
"eslint": "^8",
"eslint-config-next": "14.1.3",
"typescript": "^5"
"typescript": "^5",
"ts-config": "*"
}
}