tpmjs/apps/web/package.json
Thomas Davis 7dca00b5da feat: add /tech page with Isoflow isometric architecture diagram
Interactive isometric visualization of the TPMJS ecosystem showing external
services, applications, published packages, internal packages, and official
tools with their interconnections.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 19:00:45 +10:00

93 lines
3.1 KiB
JSON

{
"name": "@tpmjs/web",
"version": "0.0.0",
"private": true,
"scripts": {
"postinstall": "prisma generate --schema=../../packages/db/prisma/schema.prisma",
"dev": "next dev",
"build": "prisma generate --schema=../../packages/db/prisma/schema.prisma && next build",
"start": "next start",
"lint": "eslint .",
"type-check": "tsc --noEmit",
"clean": "rm -rf .next .turbo",
"test": "vitest run",
"test:watch": "vitest",
"test:integration": "INTEGRATION_TESTS=true vitest run --config vitest.integration.config.mjs",
"test:integration:watch": "INTEGRATION_TESTS=true vitest --config vitest.integration.config.mjs",
"test:setup-credentials": "tsx src/test/integration/_helpers/setup-test-credentials.ts",
"test:setup-openai-key": "tsx src/test/integration/_helpers/setup-openai-key.ts",
"test:cleanup-orphans": "tsx src/test/integration/_helpers/cleanup-orphans.ts",
"generate-og": "tsx scripts/generate-og-images.ts"
},
"dependencies": {
"@ai-sdk/anthropic": "^3.0.9",
"@ai-sdk/devtools": "^0.0.8",
"@ai-sdk/google": "^3.0.6",
"@ai-sdk/groq": "^3.0.4",
"@ai-sdk/mistral": "^3.0.5",
"@ai-sdk/openai": "3.0.7",
"@isoflow/isopacks": "^0.0.10",
"@modelcontextprotocol/sdk": "^1.25.2",
"@prisma/client": "^6.19.1",
"@react-three/drei": "^10.7.7",
"@react-three/fiber": "^9.5.0",
"@tpmjs/db": "workspace:*",
"@tpmjs/env": "workspace:*",
"@tpmjs/npm-client": "workspace:*",
"@tpmjs/package-executor": "workspace:*",
"@tpmjs/registry-execute": "workspace:*",
"@tpmjs/registry-search": "workspace:*",
"@tpmjs/types": "workspace:*",
"@tpmjs/ui": "workspace:*",
"@tpmjs/utils": "workspace:*",
"@types/d3": "^7.4.3",
"@types/react-syntax-highlighter": "^15.5.13",
"@vercel/analytics": "^1.6.1",
"@vercel/blob": "^2.0.0",
"@vercel/kv": "^3.0.0",
"ai": "6.0.49",
"ajv": "^8.17.1",
"ajv-formats": "^3.0.1",
"better-auth": "^1.4.10",
"bm25": "^0.1.1",
"d3": "^7.9.0",
"isoflow": "^1.1.1",
"next": "^16.1.1",
"next-themes": "^0.4.6",
"openai": "^6.15.0",
"prisma": "^6.19.1",
"react": "^19.2.3",
"react-dom": "^19.2.3",
"react-markdown": "^10.1.0",
"react-syntax-highlighter": "^16.1.0",
"react-virtuoso": "^4.18.1",
"rehype-raw": "^7.0.0",
"rehype-sanitize": "^6.0.0",
"remark-gfm": "^4.0.1",
"resend": "^6.7.0",
"sonner": "^2.0.7",
"streamdown": "^1.6.11",
"swr": "^2.2.5",
"three": "^0.182.0",
"zod": "^4.3.5"
},
"devDependencies": {
"@tailwindcss/typography": "^0.5.19",
"@tpmjs/eslint-config": "workspace:*",
"@tpmjs/tailwind-config": "workspace:*",
"@tpmjs/tsconfig": "workspace:*",
"@types/node": "^25.0.3",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@types/three": "^0.182.0",
"autoprefixer": "^10.4.23",
"dotenv": "^17.2.3",
"eslint": "^9.39.2",
"eslint-config-next": "^16.1.1",
"postcss": "^8.5.6",
"tailwindcss": "^3.4.19",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"vitest": "^4.0.16"
}
}