Merge branch 'main' of github.com:amruthpillai/reactive-resume

This commit is contained in:
Amruth Pillai
2026-05-07 15:14:21 +02:00
1015 changed files with 106087 additions and 141872 deletions
+26
View File
@@ -0,0 +1,26 @@
{
"name": "@reactive-resume/env",
"version": "0.0.0",
"type": "module",
"private": true,
"exports": {
"./server": "./src/server.ts"
},
"scripts": {
"typecheck": "tsgo --noEmit",
"test": "vitest run --passWithNoTests",
"test:coverage": "vitest run --coverage --passWithNoTests",
"test:ci": "vitest run --coverage --reporter=default --reporter=github-actions --reporter=json --reporter=junit --outputFile.json=reports/vitest-results.json --outputFile.junit=reports/vitest-junit.xml --passWithNoTests",
"test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests"
},
"dependencies": {
"@t3-oss/env-core": "^0.13.11",
"zod": "^4.4.3"
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
"@types/node": "^25.6.0",
"@typescript/native-preview": "7.0.0-dev.20260507.1",
"typescript": "^6.0.3"
}
}
+71
View File
@@ -0,0 +1,71 @@
import { createEnv } from "@t3-oss/env-core";
import { z } from "zod";
export const env = createEnv({
server: {
// Application
APP_URL: z.url({ protocol: /https?/ }),
// Database
DATABASE_URL: z.url({ protocol: /postgres(ql)?/ }),
// Authentication
AUTH_SECRET: z.string().min(1),
BETTER_AUTH_API_KEY: z.string().min(1).optional(),
// Social Auth (Google)
GOOGLE_CLIENT_ID: z.string().min(1).optional(),
GOOGLE_CLIENT_SECRET: z.string().min(1).optional(),
// Social Auth (GitHub)
GITHUB_CLIENT_ID: z.string().min(1).optional(),
GITHUB_CLIENT_SECRET: z.string().min(1).optional(),
// Social Auth (LinkedIn)
LINKEDIN_CLIENT_ID: z.string().min(1).optional(),
LINKEDIN_CLIENT_SECRET: z.string().min(1).optional(),
// Custom OAuth Provider
OAUTH_PROVIDER_NAME: z.string().min(1).optional(),
OAUTH_CLIENT_ID: z.string().min(1).optional(),
OAUTH_CLIENT_SECRET: z.string().min(1).optional(),
OAUTH_DISCOVERY_URL: z.url({ protocol: /https?/ }).optional(),
OAUTH_AUTHORIZATION_URL: z.url({ protocol: /https?/ }).optional(),
OAUTH_TOKEN_URL: z.url({ protocol: /https?/ }).optional(),
OAUTH_USER_INFO_URL: z.url({ protocol: /https?/ }).optional(),
OAUTH_DYNAMIC_CLIENT_REDIRECT_HOSTS: z.string().optional(),
OAUTH_SCOPES: z
.string()
.min(1)
.transform((value) => value.split(" "))
.default(["openid", "profile", "email"]),
// Email (SMTP)
SMTP_HOST: z.string().min(1).optional(),
SMTP_PORT: z.coerce.number().int().min(1).max(65535).default(587),
SMTP_USER: z.string().min(1).optional(),
SMTP_PASS: z.string().min(1).optional(),
SMTP_FROM: z.string().min(1).optional(),
SMTP_SECURE: z.stringbool().default(false),
// Storage (Optional)
S3_ACCESS_KEY_ID: z.string().min(1).optional(),
S3_SECRET_ACCESS_KEY: z.string().min(1).optional(),
S3_REGION: z.string().default("us-east-1"),
S3_ENDPOINT: z.url({ protocol: /https?/ }).optional(),
S3_BUCKET: z.string().min(1).optional(),
S3_FORCE_PATH_STYLE: z.stringbool().default(false),
// Feature Flags
FLAG_DISABLE_SIGNUPS: z.stringbool().default(false),
FLAG_DISABLE_EMAIL_AUTH: z.stringbool().default(false),
FLAG_DISABLE_IMAGE_PROCESSING: z.stringbool().default(false),
// Crowdin (optional, for translation tooling)
CROWDIN_PROJECT_ID: z.string().optional(),
CROWDIN_API_TOKEN: z.string().optional(),
GOOGLE_CLOUD_API_KEY: z.string().optional(),
},
runtimeEnv: process.env,
emptyStringAsUndefined: true,
});
+3
View File
@@ -0,0 +1,3 @@
{
"extends": "@reactive-resume/config/tsconfig.base.json"
}
+7
View File
@@ -0,0 +1,7 @@
import { fileURLToPath } from "node:url";
import { createVitestProjectConfig } from "../../vitest.shared";
export default createVitestProjectConfig({
name: "@reactive-resume/env",
dirname: fileURLToPath(new URL(".", import.meta.url)),
});