From e8cd5473eb55fd4c9e992fa75b393e272a77d76d Mon Sep 17 00:00:00 2001 From: dal Date: Fri, 18 Jul 2025 14:26:46 -0600 Subject: [PATCH] initial commit of daytona package --- packages/sandbox/biome.json | 7 +++++ packages/sandbox/env.d.ts | 10 +++++++ packages/sandbox/package.json | 31 ++++++++++++++++++++ packages/sandbox/scripts/validate-env.js | 36 ++++++++++++++++++++++++ packages/sandbox/src/index.ts | 1 + packages/sandbox/src/lib/index.ts | 4 +++ packages/sandbox/tsconfig.json | 10 +++++++ packages/sandbox/vitest.config.ts | 3 ++ pnpm-lock.yaml | 9 ++++++ 9 files changed, 111 insertions(+) create mode 100644 packages/sandbox/biome.json create mode 100644 packages/sandbox/env.d.ts create mode 100644 packages/sandbox/package.json create mode 100644 packages/sandbox/scripts/validate-env.js create mode 100644 packages/sandbox/src/index.ts create mode 100644 packages/sandbox/src/lib/index.ts create mode 100644 packages/sandbox/tsconfig.json create mode 100644 packages/sandbox/vitest.config.ts diff --git a/packages/sandbox/biome.json b/packages/sandbox/biome.json new file mode 100644 index 000000000..e0ac3c56f --- /dev/null +++ b/packages/sandbox/biome.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "extends": ["../../biome.json"], + "files": { + "include": ["src/**/*", "scripts/**/*"] + } +} diff --git a/packages/sandbox/env.d.ts b/packages/sandbox/env.d.ts new file mode 100644 index 000000000..fceadd51e --- /dev/null +++ b/packages/sandbox/env.d.ts @@ -0,0 +1,10 @@ +declare global { + namespace NodeJS { + interface ProcessEnv { + NODE_ENV?: 'development' | 'production' | 'test'; + // Add your environment variables here + } + } +} + +export {}; diff --git a/packages/sandbox/package.json b/packages/sandbox/package.json new file mode 100644 index 000000000..89a33e3dd --- /dev/null +++ b/packages/sandbox/package.json @@ -0,0 +1,31 @@ +{ + "name": "@buster/sandbox", + "version": "1.0.0", + "type": "module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./*": { + "types": "./dist/*.d.ts", + "default": "./dist/*.js" + } + }, + "scripts": { + "prebuild": "node scripts/validate-env.js", + "build": "tsc", + "typecheck": "tsc --noEmit", + "dev": "tsc --watch", + "lint": "biome check", + "test": "vitest run", + "test:watch": "vitest watch", + "test:coverage": "vitest run --coverage" + }, + "dependencies": { + "@buster/typescript-config": "workspace:*", + "@buster/vitest-config": "workspace:*" + } +} diff --git a/packages/sandbox/scripts/validate-env.js b/packages/sandbox/scripts/validate-env.js new file mode 100644 index 000000000..a150f2519 --- /dev/null +++ b/packages/sandbox/scripts/validate-env.js @@ -0,0 +1,36 @@ +#!/usr/bin/env node + +// Load environment variables from .env file +import { config } from 'dotenv'; +config(); + +// Build-time environment validation + +console.info('🔍 Validating environment variables...'); + +const env = { + NODE_ENV: process.env.NODE_ENV || 'development', + // Add your required environment variables here + // DATABASE_URL: process.env.DATABASE_URL, + // API_KEY: process.env.API_KEY, +}; + +let hasErrors = false; + +for (const [envKey, value] of Object.entries(env)) { + if (!value) { + console.error(`❌ Missing required environment variable: ${envKey}`); + hasErrors = true; + } else { + console.info(`✅ ${envKey} is set`); + } +} + +if (hasErrors) { + console.error(''); + console.error('❌ Build cannot continue with missing environment variables.'); + console.error('Please check your .env file and ensure all required variables are set.'); + process.exit(1); +} + +console.info('✅ All required environment variables are present'); diff --git a/packages/sandbox/src/index.ts b/packages/sandbox/src/index.ts new file mode 100644 index 000000000..11aece60c --- /dev/null +++ b/packages/sandbox/src/index.ts @@ -0,0 +1 @@ +export * from './lib/index'; diff --git a/packages/sandbox/src/lib/index.ts b/packages/sandbox/src/lib/index.ts new file mode 100644 index 000000000..05f6f0141 --- /dev/null +++ b/packages/sandbox/src/lib/index.ts @@ -0,0 +1,4 @@ +// Export your library functions here +export const howdy = () => { + return 'Hello from @buster/sandbox!'; +}; diff --git a/packages/sandbox/tsconfig.json b/packages/sandbox/tsconfig.json new file mode 100644 index 000000000..98d2d738b --- /dev/null +++ b/packages/sandbox/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@buster/typescript-config/base.json", + "compilerOptions": { + "tsBuildInfoFile": "dist/.cache/tsbuildinfo.json", + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*", "env.d.ts"], + "exclude": ["node_modules", "dist", "tests", "**/*.test.ts", "**/*.spec.ts"] +} diff --git a/packages/sandbox/vitest.config.ts b/packages/sandbox/vitest.config.ts new file mode 100644 index 000000000..d86b4007a --- /dev/null +++ b/packages/sandbox/vitest.config.ts @@ -0,0 +1,3 @@ +import { baseConfig } from '@buster/vitest-config'; + +export default baseConfig; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 990f2f8da..9a2b529a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -800,6 +800,15 @@ importers: specifier: 'catalog:' version: 3.25.1 + packages/sandbox: + dependencies: + '@buster/typescript-config': + specifier: workspace:* + version: link:../typescript-config + '@buster/vitest-config': + specifier: workspace:* + version: link:../vitest-config + packages/server-shared: dependencies: '@buster/database':