feat: add basic webui
This commit is contained in:
69
packages/env/index.ts
vendored
Normal file
69
packages/env/index.ts
vendored
Normal 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
18
packages/env/package.json
vendored
Normal 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
10
packages/env/tsconfig.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"extends": "@konobangu/typescript-config/react-library.json",
|
||||
"compilerOptions": {
|
||||
"module": "preserve",
|
||||
"moduleResolution": "bundler",
|
||||
"baseUrl": "."
|
||||
},
|
||||
"include": ["./*.ts", "./*.tsx"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
Reference in New Issue
Block a user