diff --git a/package.json b/package.json
index b11d34ae3..c1661936c 100644
--- a/package.json
+++ b/package.json
@@ -2,6 +2,7 @@
"name": "sendou.ink",
"version": "1.0.0",
"workspaces": [
- "packages/server"
+ "packages/server",
+ "packages/frontend"
]
}
diff --git a/packages/frontend/next-env.d.ts b/packages/frontend/next-env.d.ts
new file mode 100644
index 000000000..9bc3dd46b
--- /dev/null
+++ b/packages/frontend/next-env.d.ts
@@ -0,0 +1,6 @@
+///
{JSON.stringify(data, null, 2)};
+}
diff --git a/packages/frontend/tsconfig.json b/packages/frontend/tsconfig.json
new file mode 100644
index 000000000..77df39b37
--- /dev/null
+++ b/packages/frontend/tsconfig.json
@@ -0,0 +1,32 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve"
+ },
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
+}
diff --git a/packages/server/package-lock.json b/packages/server/package-lock.json
index e0e8436ef..db6278b00 100644
--- a/packages/server/package-lock.json
+++ b/packages/server/package-lock.json
@@ -16,6 +16,7 @@
"passport-discord": "^0.1.4"
},
"devDependencies": {
+ "@tinyhttp/cors": "^2.0.0",
"@types/node": "^16.11.4",
"@types/passport": "^1.0.7",
"@types/passport-discord": "^0.1.5",
@@ -147,6 +148,18 @@
"node": ">=12.4.0"
}
},
+ "node_modules/@tinyhttp/cors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@tinyhttp/cors/-/cors-2.0.0.tgz",
+ "integrity": "sha512-IwQsPBnK+gRrhTsPA4FPOfbNzZZt8cVsOIMNFb6HzoScaiWcoLEogL0Bz/aBSm8KM13uieVXoVT6udMqhqUS2A==",
+ "dev": true,
+ "dependencies": {
+ "es-vary": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=12.4 || 14.x || >=16"
+ }
+ },
"node_modules/@tinyhttp/encode-url": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/encode-url/-/encode-url-2.0.3.tgz",
@@ -1066,6 +1079,15 @@
"resolved": "https://registry.npmjs.org/@tinyhttp/cookie-signature/-/cookie-signature-2.0.2.tgz",
"integrity": "sha512-lyIdDzLILp6T2fymJn9zKBgXwlZMIUiqMUIEd4x/ZGFNvnNs/zeYDBQFdAygBtv4Bgl5Zpf6tN+e6fkj6TlMYQ=="
},
+ "@tinyhttp/cors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@tinyhttp/cors/-/cors-2.0.0.tgz",
+ "integrity": "sha512-IwQsPBnK+gRrhTsPA4FPOfbNzZZt8cVsOIMNFb6HzoScaiWcoLEogL0Bz/aBSm8KM13uieVXoVT6udMqhqUS2A==",
+ "dev": true,
+ "requires": {
+ "es-vary": "^0.1.1"
+ }
+ },
"@tinyhttp/encode-url": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/encode-url/-/encode-url-2.0.3.tgz",
diff --git a/packages/server/package.json b/packages/server/package.json
index d9c7a29fa..504b3b715 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -17,6 +17,7 @@
"passport-discord": "^0.1.4"
},
"devDependencies": {
+ "@tinyhttp/cors": "^2.0.0",
"@types/node": "^16.11.4",
"@types/passport": "^1.0.7",
"@types/passport-discord": "^0.1.5",
diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts
index 679228fc2..90863197f 100644
--- a/packages/server/src/index.ts
+++ b/packages/server/src/index.ts
@@ -3,6 +3,7 @@ config();
import { App } from "@tinyhttp/app";
import { logger } from "@tinyhttp/logger";
+import { cors } from "@tinyhttp/cors";
import passport from "passport";
import { Strategy as DiscordStrategy } from "passport-discord";
import routes from "./routes/index";
@@ -53,6 +54,7 @@ passport.deserializeUser(async (id, done) => {
app
.use(logger())
+ .use(cors())
// @ts-expect-error - Mismatch of types but seems to work fine
.use(passport.initialize())
.get("/auth/discord", passport.authenticate("discord"))