{
  "name": "nexuscrm",
  "private": true,
  "version": "3.0.0",
  "type": "module",
  "scripts": {
    "dev": "npm run dev:full",
    "dev:local": "docker compose --env-file .env.local up -d && NEXUS_USE_LOCAL=1 npm run dev:full",
    "dev:client": "bash ./scripts/start-frontend.sh dev",
    "dev:server": "bash ./scripts/start-backend.sh go",
    "dev:full": "npm run generate:constants && concurrently \"npm run dev:client\" \"npm run dev:server\"",
    "split:postman-collection": "node scripts/split-postman-collection-by-service.mjs",
    "build": "npm run generate:constants && npm run build:client && npm run build:server",
    "build:client": "cd frontend && vite build",
    "build:server": "cd backend && go build -o bin/server ./cmd/server/",
    "check": "npm run lint && npm run test",
    "check:codegen": "npm run generate:constants && git diff --exit-code frontend/src/generated-schema.ts shared/pkg/constants/z_generated_tables.go shared/pkg/constants/z_generated_fields.go",
    "lint": "npm run lint:frontend && npm run lint:backend",
    "lint:frontend": "cd frontend && eslint . --ext ts,tsx --report-unused-disable-directives --ignore-pattern \"src/generated-*.ts\"",
    "lint:backend": "cd backend && go vet ./...",
    "test": "npm run test:frontend",
    "test:frontend": "cd frontend && npm run test",
    "clean": "rm -rf backend/bin frontend/dist",
    "generate": "npm run generate:constants",
    "generate:constants": "cd backend && go run ./cmd/codegen",
    "start": "bash ./scripts/start-backend.sh bin",
    "preview": "bash ./scripts/start-frontend.sh preview",
    "e2e": "playwright test --config=tests/e2e/playwright.config.ts",
    "e2e:headed": "playwright test --config=tests/e2e/playwright.config.ts --headed",
    "e2e:ui": "playwright test --config=tests/e2e/playwright.config.ts --ui",
    "e2e:debug": "playwright test --config=tests/e2e/playwright.config.ts --debug",
    "e2e:report": "playwright show-report tests/e2e/playwright-report",
    "e2e:codegen": "bash -lc 'source ./scripts/runtime-env.sh && nexus_export_runtime_env \"$PWD\" && playwright codegen \"$FRONTEND_URL\"'",
    "e2e:setup": "node --loader ts-node/esm tests/e2e/global-setup.ts"
  },
  "dependencies": {
    "@dnd-kit/core": "^6.3.1",
    "@dnd-kit/sortable": "^10.0.0",
    "@dnd-kit/utilities": "^3.2.2",
    "@floating-ui/dom": "^1.7.6",
    "@tanstack/react-query": "^5.90.19",
    "@tiptap/extension-mention": "^3.13.0",
    "@tiptap/react": "^3.13.0",
    "@tiptap/starter-kit": "^3.13.0",
    "@types/d3-hierarchy": "^3.1.7",
    "@types/dompurify": "^3.0.5",
    "@types/react-grid-layout": "^1.3.6",
    "@types/react-syntax-highlighter": "^15.5.13",
    "@xyflow/react": "^12.10.0",
    "d3-hierarchy": "^3.1.2",
    "dagre": "^0.8.5",
    "date-fns": "^4.1.0",
    "dompurify": "^3.3.1",
    "lucide-react": "^0.554.0",
    "react": "^19.2.0",
    "react-dom": "^19.2.0",
    "react-grid-layout": "^1.5.2",
    "react-hook-form": "^7.68.0",
    "react-markdown": "^10.1.0",
    "react-router-dom": "^7.9.6",
    "react-syntax-highlighter": "^16.1.0",
    "react-toastify": "^11.0.3",
    "recharts": "^3.5.0",
    "remark-gfm": "^4.0.1",
    "tippy.js": "^6.3.7"
  },
  "devDependencies": {
    "@eslint/js": "^9.17.0",
    "@playwright/test": "^1.58.2",
    "@tailwindcss/typography": "^0.5.19",
    "@testing-library/jest-dom": "^6.9.1",
    "@testing-library/react": "^16.3.1",
    "@testing-library/user-event": "^14.6.1",
    "@types/dagre": "^0.7.53",
    "@types/node": "^22.19.7",
    "@types/react": "^19.0.2",
    "@types/react-dom": "^19.0.2",
    "@vitejs/plugin-react": "^5.0.0",
    "autoprefixer": "^10.4.23",
    "concurrently": "^9.2.1",
    "eslint": "^9.17.0",
    "eslint-plugin-react-hooks": "^5.0.0",
    "eslint-plugin-react-refresh": "^0.4.16",
    "globals": "^15.14.0",
    "jsdom": "^27.4.0",
    "postcss": "^8.5.6",
    "tailwindcss": "^4.1.18",
    "ts-node": "^10.9.2",
    "typescript": "~5.8.2",
    "typescript-eslint": "^8.18.2",
    "vite": "^5.4.21",
    "vitest": "^4.0.17"
  },
  "overrides": {
    "esbuild": "^0.25.0"
  }
}
