{ "name": "server", "version": "1.0.0", "description": "", "type": "module", "scripts": { "dev-o": "tsx watch src/index.ts", "dev": "sh ./scripts/dev.sh", "start": "node dist/main_node.cjs", "build": "tsc -p tsconfig.build.json", "build:webpack": "npm run build && webpack --config webpack.config.js", "build:exe": "npm run build:webpack && node scripts/nexe.js", "generate:config": "npx vite-node scripts/generate-app-config.ts", "seed": "tsx src/seed.ts", "migrate": "cd .. && npx supabase db push", "test": "vitest --run", "test:feed": "vitest run src/products/serving/__tests__/feed.e2e.test.ts", "test:ui": "vitest --run --ui", "test:coverage": "vitest --run --coverage", "test:usage": "vitest run usage", "test:emails": "vitest run email_real", "test:pgboss": "vitest run pgboss", "test:pgboss-e2e": "vitest run pgboss-e2e", "test:product:locations": "vitest run src/products/locations/__tests__/e2e.test.ts", "test:product:images": "vitest run src/products/images/__tests__/e2e.test.ts", "test:images": "vitest run src/products/images/__tests__/e2e.test.ts", "test:video": "vitest run src/products/videos/__tests__/e2e.test.ts", "test:video:probe": "vitest run src/products/videos/__tests__/upload.test.ts", "test:serve": "vitest run src/products/serving/__tests__/e2e.test.ts", "supabase:types": "npx supabase gen types typescript --linked > ./src/integrations/supabase/types.ts", "semgrep": "sh ./scripts/semgrep.sh", "scalar:token": "tsx scripts/get-scalar-token.js", "test:bots": "vitest run src/products/serving/__tests__/e2e.test.ts -t \"should serve HTML to bots\"", "swagger:get": "tsx scripts/swagger-get.js", "swagger:gen": "tsx scripts/swagger-gen-client.js", "supabase:schemas": "supazod -i src/integrations/supabase/types.ts -o src/integrations/supabase/schemas.ts --inline-types -s public" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "@hey-api/client-fetch": "^0.13.1", "@hey-api/openapi-ts": "^0.92.3", "@hono/node-server": "^1.19.6", "@types/node": "^24.10.1", "@types/pg": "^8.15.6", "@vitest/ui": "^4.0.18", "hono": "^4.10.6", "nexe": "^1.1.6", "pino-pretty": "^13.1.2", "supazod": "^4.5.0", "tsx": "^4.20.6", "typescript": "^5.9.3", "vite-tsconfig-paths": "^5.1.4", "vitest": "^4.0.18", "webpack": "^5.97.1", "webpack-cli": "^6.0.1" }, "dependencies": { "@hono/node-ws": "^1.2.0", "@hono/swagger-ui": "^0.5.2", "@hono/zod-openapi": "^1.1.5", "@polymech/acl": "file:../polymech-mono/packages/acl", "@polymech/commons": "file:../polymech-mono/packages/commons", "@polymech/core": "file:../polymech-mono/packages/core", "@polymech/fs": "file:../polymech-mono/packages/fs", "@polymech/i18n": "file:../polymech-mono/packages/i18n", "@polymech/media": "file:../polymech-mono/packages/media", "@polymech/registry": "file:../polymech-mono/packages/registry", "@polymech/search": "file:../polymech-mono/packages/search", "@scalar/hono-api-reference": "^0.9.25", "@ssut/tiktok-api": "^1.5.2", "@supabase/supabase-js": "^2.87.1", "@types/pdfmake": "^0.2.12", "@types/sharp": "^0.31.1", "@types/ws": "^8.18.1", "cheerio": "^1.1.2", "chokidar": "^5.0.0", "deepl-node": "^1.24.0", "dotenv": "^17.2.3", "exifreader": "^4.33.1", "feed": "^5.1.0", "glob": "^13.0.3", "hono-rate-limiter": "^0.4.2", "i": "^0.3.7", "ignore": "^7.0.5", "isbot": "^5.1.34", "juice": "^11.1.1", "lru-cache": "^11.2.4", "marked": "^17.0.1", "mime": "^4.1.0", "npm": "^11.7.0", "pdfmake": "^0.2.20", "pg-boss": "^12.5.2", "pino": "^10.1.0", "quicktype-core": "^23.2.6", "sharp": "^0.34.5", "stripe": "^20.3.1", "swagger-typescript-codegen": "^3.2.4", "vite-node": "^5.3.0", "ws": "^8.19.0", "zod": "^4.3.6" } }