{
  "id": "35599184",
  "name": "Bicrypto",
  "private": true,
  "version": "6.3.0",
  "scripts": {
    "dev": "cross-env NODE_OPTIONS=--max-old-space-size=7780 concurrently \"pnpm --filter frontend dev\" \"pnpm --filter backend dev\"",
    "dev:backend": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter backend dev",
    "dev:frontend": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter frontend dev",
    "build:backend": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter backend build",
    "build:frontend": "cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=7780 pnpm build:i18n && pnpm --filter frontend build",
    "build:i18n": "node frontend/i18n/scripts/generate-i18n-manifest.js",
    "build:permission": "cross-env NODE_OPTIONS=--max-old-space-size=7780 node tools/build-permission.js",
    "build:chart-engine": "cd frontend/components/(ext)/chart-engine && npm install && npm run build",
    "start": "node scripts/maintenance-off.js && cross-env NODE_OPTIONS=--max-old-space-size=7780 pm2 start production.config.js --env production",
    "start:thread": "node scripts/maintenance-off.js && cross-env NODE_OPTIONS=--max-old-space-size=7780 pm2 start production.thread.config.js --env production",
    "start:frontend": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter frontend start",
    "start:backend": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pm2 start production.backend.config.js --env production",
    "stop": "node scripts/maintenance-on.js",
    "restart": "pnpm stop && pnpm start",
    "stop:all": "pm2 stop all 2>/dev/null || echo 'No PM2 processes to stop'",
    "maintenance:start": "pm2 start maintenance.config.js",
    "maintenance:stop": "pm2 stop maintenance && pm2 delete maintenance",
    "updator": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm stop && pnpm update-packages-quick && pnpm start:backend && node -e \"console.log('⏳ Waiting 180 seconds before seeding...'); setTimeout(() => { console.log('✅ Wait complete, proceeding with seed...'); process.exit(0); }, 180000)\" && pnpm stop && pnpm seed && pnpm build:frontend && pnpm start",
    "update-packages": "cross-env NODE_OPTIONS=--max-old-space-size=7780 node tools/update-packages.js",
    "update-packages-quick": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter backend update && pnpm --filter frontend update && pnpm update",
    "seed": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter backend seed",
    "seed:notification": "cross-env NODE_OPTIONS=--max-old-space-size=7780 node scripts/update-notification-templates.js",
    "test": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter backend test",
    "test:watch": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter backend test:watch",
    "test:coverage": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter backend test:coverage",
    "test:integration": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter backend test:integration",
    "test:unit": "cross-env NODE_OPTIONS=--max-old-space-size=7780 pnpm --filter backend test:unit",
    "extract:permission": "cross-env NODE_OPTIONS=--max-old-space-size=7780 node tools/extract-permission.js",
    "i18n": "cross-env NODE_OPTIONS=--max-old-space-size=7780 cd tools/translation-manager && npm start",
    "i18n:install": "cd tools/translation-manager && npm install",
    "btc-node:setup": "cross-env NODE_OPTIONS=--max-old-space-size=7780 node scripts/btc-node-setup.mjs",
    "update-cache-version": "cross-env NODE_OPTIONS=--max-old-space-size=7780 node docs/update-cache-version.js",
    "format": "prettier --write \"frontend/**/*.{ts,tsx,md,mdx,css,scss}\" --ignore-path .prettierignore",
    "lint": "eslint frontend --fix --ext .ts,.tsx",
    "fix:eco-orders": "cd backend && cross-env NODE_OPTIONS=--max-old-space-size=7780 node scripts/fix-ecosystem-orders.mjs",
    "fix:eco-candles": "cd backend && cross-env NODE_OPTIONS=--max-old-space-size=7780 node scripts/fix-ecosystem-candles.mjs",
    "ob": "node scripts/ob.mjs",
    "bundle": "pnpm extract:permission && pnpm build:chart-engine && node -e \"require('fs').rmSync('backend/dist',{recursive:true,force:true})\" && pnpm build:backend && pnpm ob",
    "get-ip": "node scripts/get-local-ip.js",
    "vapid:generate": "node scripts/generate-vapid-keys.js"
  },
  "devDependencies": {
    "@babel/generator": "^7.29.1",
    "@babel/parser": "^7.29.2",
    "@babel/traverse": "^7.29.0",
    "@babel/types": "^7.29.0",
    "@eslint/js": "^9.39.4",
    "@next/eslint-plugin-next": "^15.5.13",
    "@tailwindcss/oxide-win32-x64-msvc": "4.1.18",
    "@types/jest": "^29.5.14",
    "@types/lodash": "^4.17.24",
    "@types/node": "^22.19.15",
    "@typescript-eslint/eslint-plugin": "8.0.0-alpha.26",
    "@typescript-eslint/parser": "8.0.0-alpha.26",
    "concurrently": "^7.6.0",
    "cross-env": "^10.1.0",
    "eslint": "^9.39.4",
    "eslint-config-prettier": "^9.1.2",
    "eslint-plugin-import": "^2.32.0",
    "eslint-plugin-prettier": "^5.5.5",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-react-hooks": "^7.0.1",
    "eslint-plugin-unused-imports": "^4.4.1",
    "ethers": "^6.16.0",
    "fast-glob": "^3.3.3",
    "globals": "^15.15.0",
    "prettier": "^3.8.1",
    "prettier-plugin-tailwindcss": "^0.6.14",
    "ts-jest": "^29.4.6",
    "typescript": "^5.9.3",
    "typescript-eslint": "^8.57.1"
  },
  "_moduleAliases": {
    "@": "frontend",
    "@b": "backend/src",
    "@db": "backend/models"
  },
  "dependencies": {
    "@google-cloud/translate": "^9.3.0",
    "@reown/appkit": "1.8.15",
    "@reown/appkit-adapter-wagmi": "1.8.15",
    "@tanstack/react-query": "^5.90.21",
    "@vitalets/google-translate-api": "^9.2.1",
    "ccxt": "^4.5.44",
    "dotenv": "^16.6.1",
    "jose": "^5.10.0",
    "mysql2": "^3.20.0",
    "tonweb": "^0.0.66",
    "viem": "^2.47.5",
    "wagmi": "^2.19.5",
    "web-push": "^3.6.7"
  },
  "pnpm": {
    "overrides": {
      "log-update": "^5.0.1",
      "cli-spinners": "^2.9.2",
      "p-queue": "^8.0.1",
      "@metamask/sdk": "0.30.0",
      "@types/react": "19.1.9",
      "@types/react-dom": "19.1.7",
      "lit": "^3.3.1",
      "@lit/reactive-element": "^2.0.0",
      "@jridgewell/trace-mapping": "^0.3.20",
      "react": "19.1.1",
      "react-dom": "19.1.1",
      "typescript": "^5.9.2",
      "mysql2": "^3.14.3",
      "pbkdf2": "^3.1.3",
      "form-data": "^4.0.4",
      "xlsx": "^0.18.5",
      "nth-check": "^2.1.1",
      "@walletconnect/ethereum-provider": "2.23.1",
      "@reown/appkit": "1.8.15",
      "@reown/appkit-adapter-wagmi": "1.8.15",
      "@reown/appkit-pay": "1.8.15",
      "@reown/appkit-scaffold-ui": "1.8.15",
      "@reown/appkit-controllers": "1.8.15",
      "@reown/appkit-ui": "1.8.15",
      "@reown/appkit-utils": "1.8.15",
      "@reown/appkit-core": "1.8.15",
      "@reown/appkit-common": "1.8.15",
      "@reown/appkit-wallet": "1.8.15",
      "viem": "^2.41.2",
      "wagmi": "^2.19.5",
      "@tanstack/react-query": "^5.90.12"
    },
    "peerDependencyRules": {
      "ignoreMissing": [
        "react",
        "react-dom",
        "typescript"
      ],
      "allowedVersions": {
        "react": "19",
        "react-dom": "19",
        "typescript": "5",
        "tailwindcss": "4",
        "lit": "3"
      }
    },
    "ignoredBuiltDependencies": [
      "esbuild"
    ],
    "onlyBuiltDependencies": [
      "@firebase/util",
      "@parcel/watcher",
      "@reown/appkit",
      "bufferutil",
      "ccxt",
      "keccak",
      "protobufjs",
      "secp256k1",
      "sharp",
      "unrs-resolver",
      "utf-8-validate"
    ]
  },
  "lastCommit": "4cb69a3806abdf7743d6c7a32858a4cdbecccac1",
  "lastCommitDate": "2025-12-17T12:01:28.100Z"
}