feat: add basic webui

This commit is contained in:
2024-12-30 06:39:09 +08:00
parent 608a7fb9c6
commit a4c549e7c3
462 changed files with 35900 additions and 2491 deletions

69
packages/env/index.ts vendored Normal file
View File

@@ -0,0 +1,69 @@
import { createEnv } from '@t3-oss/env-nextjs';
import { z } from 'zod';
const server: Parameters<typeof createEnv>[0]['server'] = {
BETTER_AUTH_SECRET: z.string().min(1),
DATABASE_URL: z.string().min(1).url(),
BETTERSTACK_API_KEY: z.string().min(1).optional(),
BETTERSTACK_URL: z.string().min(1).url().optional(),
ARCJET_KEY: z.string().min(1).startsWith('ajkey_').optional(),
ANALYZE: z.string().optional(),
SVIX_TOKEN: z
.union([
z.string().min(1).startsWith('sk_'),
z.string().min(1).startsWith('testsk_'),
])
.optional(),
LIVEBLOCKS_SECRET: z.string().min(1).startsWith('sk_').optional(),
OPENAI_API_KEY: z.string().min(1).startsWith('sk-').optional(),
UPSTASH_REDIS_REST_URL: z.string().min(1).url().optional(),
UPSTASH_REDIS_REST_TOKEN: z.string().min(1).optional(),
// Added by Sentry Integration, Vercel Marketplace
SENTRY_ORG: z.string().min(1).optional(),
SENTRY_PROJECT: z.string().min(1).optional(),
// Added by Vercel
VERCEL: z.string().optional(),
NEXT_RUNTIME: z.enum(['nodejs', 'edge']).optional(),
FLAGS_SECRET: z.string().min(1).optional(),
BLOB_READ_WRITE_TOKEN: z.string().min(1).optional(),
};
const client: Parameters<typeof createEnv>[0]['client'] = {
NEXT_PUBLIC_APP_URL: z.string().min(1).url(),
NEXT_PUBLIC_WEB_URL: z.string().min(1).url(),
NEXT_PUBLIC_API_URL: z.string().min(1).url().optional(),
// Added by Vercel
NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL: z.string().min(1),
};
export const env = createEnv({
client,
server,
runtimeEnv: {
BETTER_AUTH_SECRET: process.env.BETTER_AUTH_SECRET,
DATABASE_URL: process.env.DATABASE_URL,
BETTERSTACK_API_KEY: process.env.BETTERSTACK_API_KEY,
BETTERSTACK_URL: process.env.BETTERSTACK_URL,
ARCJET_KEY: process.env.ARCJET_KEY,
ANALYZE: process.env.ANALYZE,
SENTRY_ORG: process.env.SENTRY_ORG,
SENTRY_PROJECT: process.env.SENTRY_PROJECT,
VERCEL: process.env.VERCEL,
NEXT_RUNTIME: process.env.NEXT_RUNTIME,
FLAGS_SECRET: process.env.FLAGS_SECRET,
BLOB_READ_WRITE_TOKEN: process.env.BLOB_READ_WRITE_TOKEN,
SVIX_TOKEN: process.env.SVIX_TOKEN,
LIVEBLOCKS_SECRET: process.env.LIVEBLOCKS_SECRET,
OPENAI_API_KEY: process.env.OPENAI_API_KEY,
NEXT_PUBLIC_APP_URL: process.env.NEXT_PUBLIC_APP_URL,
NEXT_PUBLIC_WEB_URL: process.env.NEXT_PUBLIC_WEB_URL,
NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL,
NEXT_PUBLIC_DOCS_URL: process.env.NEXT_PUBLIC_DOCS_URL,
NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL:
process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL,
},
emptyStringAsUndefined: true
});

18
packages/env/package.json vendored Normal file
View File

@@ -0,0 +1,18 @@
{
"name": "@konobangu/env",
"version": "0.0.0",
"private": true,
"scripts": {
"clean": "git clean -xdf .cache .turbo dist node_modules",
"typecheck": "tsc --noEmit --emitDeclarationOnly false"
},
"dependencies": {
"@t3-oss/env-nextjs": "^0.11.1",
"zod": "^3.24.1"
},
"devDependencies": {
"@konobangu/typescript-config": "workspace:*",
"@types/node": "22.10.1",
"typescript": "^5.7.2"
}
}

10
packages/env/tsconfig.json vendored Normal file
View File

@@ -0,0 +1,10 @@
{
"extends": "@konobangu/typescript-config/react-library.json",
"compilerOptions": {
"module": "preserve",
"moduleResolution": "bundler",
"baseUrl": "."
},
"include": ["./*.ts", "./*.tsx"],
"exclude": ["node_modules"]
}