{
  "name": "wacrm",
  "version": "6.8.9",
  "private": true,
  "homepage": "https://wrapcoders.bid",
  "description": "WACRM – A complete, production-grade guide to installing, configuring, deploying, and operating WACRM — the multi-tenant WhatsApp CRM & Omnichannel platform.",
  "author": "WRAPCODERS",
  "type": "commonjs",
  "main": "eslint.config.js",
  "sideEffects": false,
  "directories": {
    "doc": "docs"
  },
  "scripts": {
    "dev": "vite dev",
    "build": "node scripts/build-cloudflare.mjs",
    "build:server": "vite build",
    "postbuild": "node scripts/fix-ssr-export-all-cycle.mjs && node scripts/copy-docs-to-output.mjs",
    "build:dev": "vite build --mode development",
    "preview": "vite preview",
    "lint": "eslint .",
    "security:scan": "node scripts/security-scan-ci.mjs && node scripts/security-check-extensions.mjs",
    "security:baseline": "node scripts/security-scan-ci.mjs --update-baseline && node scripts/security-check-extensions.mjs",
    "security:policies": "node scripts/security-policy-assertions.mjs",
    "test:security:policies": "vitest run tests/unit/rls-policy-argument-order.test.ts tests/unit/rls-billing-invite-policies.test.ts tests/unit/messaging-account-security.test.ts tests/unit/gateway-secret-access.test.ts tests/integration/chatbot-webhook-secret-access.test.ts tests/integration/avatar-storage-access.test.ts tests/integration/workflow-rls-access.test.ts tests/integration/cross-tenant-access-prevention.test.ts tests/integration/tenant-access-audit-trail.test.ts tests/integration/tenant-audit-event-recording.test.ts tests/api/security-realtime-rls.test.ts",
    "format": "prettier --write .",
    "test": "vitest run",
    "test:watch": "vitest",
    "test:ui": "vitest --ui",
    "test:coverage": "vitest run --coverage",
    "test:unit": "vitest run tests/unit",
    "test:integration": "vitest run tests/integration",
    "test:api": "vitest run tests/api",
    "test:e2e": "playwright test",
    "test:e2e:ui": "playwright test --ui",
    "test:rls": "vitest run --config vitest.rls.config.ts",
    "test:rls:policies": "vitest run tests/unit/rls-policy-argument-order.test.ts tests/unit/rls-billing-invite-policies.test.ts",
    "test:rls:billing-invites": "vitest run --config vitest.rls.config.ts tests/rls/billing-invite-privacy.test.ts tests/rls/billing-template-roles.test.ts",
    "test:e2e:rls": "playwright test tests/e2e/rls-cross-org.spec.ts",
    "test:accent": "vitest run tests/integration/tenant-accent-propagation.test.tsx",
    "test:e2e:accent": "playwright test tests/e2e/tenant-accent-propagation.spec.ts",
    "test:smoke": "playwright test --project=smoke",
    "test:a11y": "playwright test --project=a11y",
    "test:perf": "playwright test tests/e2e/performance.spec.ts",
    "test:security": "playwright test tests/e2e/security.spec.ts",
    "test:regression": "playwright test tests/e2e/regression.spec.ts",
    "test:visual:inbox": "playwright test tests/e2e/inbox-conversation-visual.spec.ts",
    "test:visual:gradients": "playwright test tests/e2e/gradient-tokens-visual.spec.ts",
    "test:visual:gradients:app": "playwright test tests/e2e/gradient-tokens-authenticated-visual.spec.ts",
    "test:visual:gradients:accents": "playwright test tests/e2e/gradient-tokens-accents-visual.spec.ts",
    "test:visual:gradients:responsive": "playwright test tests/e2e/gradient-tokens-responsive-visual.spec.ts",
    "test:visual:gradients:zoom": "playwright test tests/e2e/gradient-tokens-zoom-visual.spec.ts",
    "test:visual:gradients:cross-browser": "playwright test tests/e2e/gradient-tokens-visual.spec.ts tests/e2e/gradient-tokens-responsive-visual.spec.ts tests/e2e/gradient-tokens-accents-visual.spec.ts --project=chromium --project=firefox --project=webkit",
    "test:visual:gradients:firefox": "playwright test tests/e2e/gradient-tokens-visual.spec.ts tests/e2e/gradient-tokens-responsive-visual.spec.ts tests/e2e/gradient-tokens-accents-visual.spec.ts --project=firefox",
    "test:visual:gradients:webkit": "playwright test tests/e2e/gradient-tokens-visual.spec.ts tests/e2e/gradient-tokens-responsive-visual.spec.ts tests/e2e/gradient-tokens-accents-visual.spec.ts --project=webkit",
    "test:visual:all": "playwright test tests/e2e/gradient-tokens-visual.spec.ts tests/e2e/gradient-tokens-zoom-visual.spec.ts tests/e2e/gradient-tokens-responsive-visual.spec.ts tests/e2e/gradient-tokens-accents-visual.spec.ts tests/e2e/gradient-tokens-authenticated-visual.spec.ts tests/e2e/inbox-conversation-visual.spec.ts --project=chromium",
    "test:overlap:inbox": "playwright test tests/e2e/inbox-conversation-overlap.spec.ts",
    "test:mobile": "playwright test --project=mobile",
    "test:all": "npm run audit:fonts && npm run test:coverage && npm run test:e2e",
    "audit:accent": "node scripts/audit-accent-usage.mjs",
    "audit:accent:strict": "node scripts/audit-accent-usage.mjs --strict",
    "audit:buttons": "node scripts/check-button-uniformity.mjs",
    "audit:fonts": "node scripts/check-forbidden-font-features.mjs",
    "audit:menu-tokens": "node scripts/check-menu-item-tokens.mjs",
    "audit:branding": "node scripts/check-outbound-branding.mjs",
    "audit:deprecated-utilities": "node scripts/check-deprecated-utilities.mjs",
    "prebuild": "node scripts/check-forbidden-font-features.mjs && node scripts/check-menu-item-tokens.mjs && node scripts/check-outbound-branding.mjs && node scripts/check-deprecated-utilities.mjs",
    "test:security:api": "vitest run tests/api/security-cron-token.test.ts tests/api/security-bulk-mass-assignment.test.ts tests/api/security-realtime-rls.test.ts",
    "audit:realtime-rls": "node scripts/audit-realtime-rls.mjs",
    "typecheck": "tsgo --noEmit -p tsconfig.json",
    "typecheck:full": "tsc-classic --noEmit -p tsconfig.json",
    "preflight": "node scripts/ci-preflight.mjs",
    "postinstall": "node scripts/install-fast-tsc.mjs",
    "build:cloudflare": "node scripts/build-cloudflare.mjs",
    "deploy:cloudflare": "node scripts/copy-docs-to-output.mjs && node scripts/deploy-cloudflare.mjs"
  },
  "dependencies": {
    "@ai-sdk/openai-compatible": "^3.0.12",
    "@fontsource/inter": "^5.2.8",
    "@hookform/resolvers": "^5.2.2",
    "@radix-ui/react-accordion": "^1.2.12",
    "@radix-ui/react-alert-dialog": "^1.1.15",
    "@radix-ui/react-aspect-ratio": "^1.1.8",
    "@radix-ui/react-avatar": "^1.1.11",
    "@radix-ui/react-checkbox": "^1.3.3",
    "@radix-ui/react-collapsible": "^1.1.12",
    "@radix-ui/react-context-menu": "^2.2.16",
    "@radix-ui/react-dialog": "^1.1.15",
    "@radix-ui/react-dropdown-menu": "^2.1.16",
    "@radix-ui/react-hover-card": "^1.1.15",
    "@radix-ui/react-label": "^2.1.8",
    "@radix-ui/react-menubar": "^1.1.16",
    "@radix-ui/react-navigation-menu": "^1.2.14",
    "@radix-ui/react-popover": "^1.1.15",
    "@radix-ui/react-progress": "^1.1.8",
    "@radix-ui/react-radio-group": "^1.3.8",
    "@radix-ui/react-scroll-area": "^1.2.10",
    "@radix-ui/react-select": "^2.2.6",
    "@radix-ui/react-separator": "^1.1.8",
    "@radix-ui/react-slider": "^1.3.6",
    "@radix-ui/react-slot": "^1.2.4",
    "@radix-ui/react-switch": "^1.2.6",
    "@radix-ui/react-tabs": "^1.1.13",
    "@radix-ui/react-toggle": "^1.1.10",
    "@radix-ui/react-toggle-group": "^1.1.11",
    "@radix-ui/react-tooltip": "^1.2.8",
    "@supabase/supabase-js": "^2.110.5",
    "@tailwindcss/vite": "^4.2.1",
    "@tanstack/react-query": "^5.101.1",
    "@tanstack/react-router": "^1.170.16",
    "@tanstack/react-start": "^1.168.26",
    "@tanstack/react-virtual": "^3.14.6",
    "@tanstack/router-plugin": "^1.168.18",
    "@tanstack/zod-adapter": "^1.167.0",
    "ai": "^7.0.31",
    "browser-image-compression": "^2.0.2",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "cmdk": "^1.1.1",
    "date-fns": "^4.1.0",
    "dompurify": "^3.4.13",
    "embla-carousel-react": "^8.6.0",
    "exceljs": "^4.4.0",
    "framer-motion": "^12.42.2",
    "input-otp": "^1.4.2",
    "jspdf": "^4.2.1",
    "jspdf-autotable": "^5.0.8",
    "lucide-react": "^0.575.0",
    "mammoth": "^1.12.0",
    "pdf-lib": "^1.17.1",
    "pdfjs-dist": "^6.1.200",
    "qrcode.react": "^4.2.0",
    "react": "^19.2.0",
    "react-day-picker": "^9.14.0",
    "react-dom": "^19.2.0",
    "react-easy-crop": "^6.2.2",
    "react-hook-form": "^7.71.2",
    "react-icons": "^5.7.0",
    "react-markdown": "^10.1.0",
    "react-resizable-panels": "^4.6.5",
    "reactflow": "^11.11.4",
    "recharts": "^2.15.4",
    "sonner": "^2.0.7",
    "tailwind-merge": "^3.5.0",
    "tailwindcss": "^4.2.1",
    "turndown": "^7.2.4",
    "tw-animate-css": "^1.3.4",
    "vaul": "^1.1.2",
    "vite-tsconfig-paths": "^6.0.2",
    "zod": "^3.24.2"
  },
  "devDependencies": {
    "@axe-core/playwright": "^4.12.1",
    "@eslint/js": "^9.32.0",
    "@playwright/test": "^1.61.1",
    "@testing-library/dom": "^10.4.2",
    "@testing-library/jest-dom": "^6.9.1",
    "@testing-library/react": "^16.3.2",
    "@testing-library/user-event": "^14.6.1",
    "@types/dompurify": "^3.2.0",
    "@types/node": "^22.16.5",
    "@types/react": "^19.2.0",
    "@types/react-dom": "^19.2.0",
    "@types/turndown": "^5.0.6",
    "@typescript/native-preview": "^7.0.0-dev.20260707.2",
    "@vitejs/plugin-react": "^5.2.0",
    "@vitest/coverage-v8": "^4.1.10",
    "@vitest/ui": "^4.1.10",
    "eslint": "^9.32.0",
    "eslint-config-prettier": "^10.1.1",
    "eslint-plugin-prettier": "^5.2.6",
    "eslint-plugin-react-hooks": "^5.2.0",
    "eslint-plugin-react-refresh": "^0.4.20",
    "globals": "^15.15.0",
    "happy-dom": "^20.10.6",
    "jsdom": "^29.1.1",
    "msw": "^2.15.0",
    "nitro": "3.0.260603-beta",
    "prettier": "^3.7.3",
    "typescript": "^5.8.3",
    "typescript-eslint": "^8.56.1",
    "vite": "^8.0.16",
    "vite-plugin-pwa": "^1.3.0",
    "vitest": "^4.1.10",
    "workbox-window": "^7.4.1"
  },
  "overrides": {
    "argparse": "^2.0.1",
    "exceljs": {
      "uuid": "^11.1.1"
    }
  }
}
