{
  "name": "tidb_cloud_ui",
  "version": "0.272.0",
  "private": true,
  "scripts": {
    "start": "GENERATE_SOURCEMAP=true rsbuild dev",
    "dev": "pnpm start",
    "start:mock": "REACT_APP_MOCK=true GENERATE_SOURCEMAP=true rsbuild dev",
    "build:app": "rsbuild build",
    "build": "pnpm gen:api && pnpm build:app",
    "build:analyze": "BUNDLE_ANALYZER=true pnpm build",
    "publish:release": "./scripts/release.sh",
    "publish:hotfix": "./scripts/hotfix.sh",
    "typecheck": "tsc --noEmit",
    "test": "jest --testPathPattern=src",
    "test:e2e-agent": "playwright test --config=playwright.agent.config.ts",
    "test:e2e-agent:unit": "pnpm test:e2e-agent browser-executor.spec.ts agent-evidence.spec.ts ai-provider.spec.ts",
    "typecheck:e2e-agent": "tsc -p tsconfig.e2e-agent.json",
    "gen:api": "tsx scripts/swagger/prepare.ts && prettier --write ./swagger/ && orval",
    "gen:icon": "tsx scripts/generateIconPreview.ts",
    "gen:changelog": "./scripts/changelog.sh",
    "prepare": "is-ci || husky install",
    "gen:mp": "tsx scripts/generateMpAttrs.ts",
    "lint:all": "eslint src/",
    "showreport": "pnpm playwright show-report test-results",
    "lint:unused": "knip",
    "lint:remove-unused-files": "knip --fix --allow-remove-files --fix-type files",
    "swagger:download:all": "tsx scripts/swagger/gh-swagger-fetcher.ts",
    "swagger:download:tidb-management-service": "tsx scripts/swagger/gh-swagger-fetcher.ts --repo tidbcloud/tidb-management-service",
    "swagger:download:dataflow-service": "tsx scripts/swagger/gh-swagger-fetcher.ts --repo tidbcloud/dataflow-service",
    "swagger:download:serverless-service": "tsx scripts/swagger/gh-swagger-fetcher.ts --repo tidbcloud/serverless-service",
    "swagger:download:clinic-service": "tsx scripts/swagger/gh-swagger-fetcher.ts --repo pingcap-inc/clinic",
    "swagger:download:observability": "tsx scripts/swagger/gh-swagger-fetcher.ts --repo tidbcloud/observability",
    "swagger:download:metrics-integration": "tsx scripts/swagger/gh-swagger-fetcher.ts --repo tidbcloud/metrics-integration",
    "swagger:sync2rap": "tsx scripts/swagger-upload-rap.ts"
  },
  "dependencies": {
    "@ahooksjs/use-url-state": "^3.5.1",
    "@baurine/grafana-value-formats": "^1.0.5",
    "@baurine/sql-formatter-plus": "^1.5.3",
    "@codemirror/autocomplete": "^6.12.0",
    "@codemirror/commands": "^6.3.3",
    "@codemirror/lang-markdown": "^6.2.4",
    "@codemirror/lang-sql": "^6.5.5",
    "@codemirror/language": "^6.10.0",
    "@codemirror/lint": "^6.4.2",
    "@codemirror/merge": "^6.5.0",
    "@codemirror/search": "^6.5.5",
    "@codemirror/state": "^6.4.0",
    "@codemirror/view": "^6.23.0",
    "@elastic/charts": "^47.2.1",
    "@hookform/error-message": "^2.0.1",
    "@hookform/resolvers": "^3.10.0",
    "@json2csv/plainjs": "^7.0.6",
    "@lezer/highlight": "^1.2.0",
    "@lezer/lr": "^1.4.3",
    "@mantine/form": "^5.10.4",
    "@playwright/test": "1.59.1",
    "@sentry/core": "~8.55.2",
    "@sentry/react": "~8.55.2",
    "@stripe/react-stripe-js": "^1.10.0",
    "@stripe/stripe-js": "^1.35.0",
    "@tidbcloud/codemirror-extension-basic-setup": "^0.0.6",
    "@tidbcloud/codemirror-extension-cur-sql": "^0.0.6",
    "@tidbcloud/codemirror-extension-cur-sql-gutter": "^0.0.6",
    "@tidbcloud/codemirror-extension-events": "^0.0.7",
    "@tidbcloud/codemirror-extension-linters": "^0.0.6",
    "@tidbcloud/codemirror-extension-save-helper": "^0.0.6",
    "@tidbcloud/codemirror-extension-sql-autocomplete": "^0.0.7",
    "@tidbcloud/codemirror-extension-sql-parser": "^0.0.6",
    "@tidbcloud/uikit": "^2.8.3",
    "@uiw/react-codemirror": "^4.21.21",
    "ahooks": "^3.7.0",
    "auth0-js": "^9.19.1",
    "axios": "^0.24.0",
    "clsx": "^1.2.1",
    "codemirror": "^6.0.1",
    "compare-versions": "^4.1.3",
    "copy-to-clipboard": "^3.3.2",
    "d3": "^7.9.0",
    "dayjs": "^1.11.5",
    "dompurify": "^3.3.0",
    "dotenv": "^17.2.3",
    "driver.js": "^1.3.6",
    "embla-carousel-react": "^7.0.5",
    "generate-password": "^1.7.0",
    "google-libphonenumber": "^3.2.30",
    "history": "^4.10.1",
    "immer": "^10.0.3",
    "js-base64": "^3.7.5",
    "js-sha256": "^0.10.1",
    "lodash-es": "^4.17.21",
    "metrics-chart": "^1.0.30",
    "mixpanel-browser": "^2.45.0",
    "mobx": "^6.13.5",
    "mobx-react": "^9.2.0",
    "moment-timezone": "^0.5.37",
    "ms": "^2.1.3",
    "platform": "^1.3.6",
    "pretty-ms": "^9.2.0",
    "prism-react-renderer": "^2.0.4",
    "prismjs": "^1.29.0",
    "qs": "^6.11.0",
    "re-resizable": "^6.9.9",
    "react": "^18.3.1",
    "react-beautiful-dnd": "^13.1.0",
    "react-content-loader": "^5.1.4",
    "react-csv": "^2.2.2",
    "react-dom": "^18.3.1",
    "react-google-recaptcha": "^2.1.0",
    "react-hook-form": "^7.51.5",
    "react-json-tree": "^0.18.0",
    "react-markdown": "^8.0.3",
    "react-markdown-github": "^3.3.1",
    "react-phone-input-2": "^2.15.1",
    "react-query": "^3.39.2",
    "react-router": "^5.3.3",
    "react-router-dom": "^5.3.3",
    "react-syntax-highlighter": "^15.5.0",
    "react-table": "^7.8.0",
    "react-window": "^1.8.7",
    "reactflow": "^11.10.4",
    "remark-gfm": "^3.0.1",
    "sql-formatter": "^12.0.5",
    "swagger-ui-react": "^5.2.0",
    "use-immer": "^0.9.0",
    "use-resize-observer": "^9.1.0",
    "zod": "^3.25.76"
  },
  "browserslist": {
    "production": [
      "Chrome >= 72",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@ai-sdk/openai-compatible": "2.0.73",
    "ai": "6.0.271",
    "@rsbuild/core": "^1.2.1",
    "@rsbuild/plugin-eslint": "^1.1.0",
    "@rsbuild/plugin-less": "^1.1.0",
    "@rsbuild/plugin-node-polyfill": "^1.2.0",
    "@rsbuild/plugin-react": "^1.1.0",
    "@rsbuild/plugin-svgr": "^1.0.6",
    "@rsbuild/plugin-type-check": "^1.2.1",
    "@swc/core": "^1.10.9",
    "@swc/jest": "^0.2.37",
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^12.1.5",
    "@testing-library/react-hooks": "^8.0.1",
    "@testing-library/user-event": "^13.5.0",
    "@types/auth0-js": "^9.14.6",
    "@types/dompurify": "^2.3.4",
    "@types/google-libphonenumber": "^7.4.23",
    "@types/jest": "^27.5.2",
    "@types/lodash-es": "^4.17.6",
    "@types/mixpanel-browser": "^2.38.0",
    "@types/node": "^22.10.10",
    "@types/platform": "^1.3.4",
    "@types/react": "^18.3.3",
    "@types/react-beautiful-dnd": "^13.1.2",
    "@types/react-csv": "^1.1.3",
    "@types/react-dom": "^18.3.0",
    "@types/react-google-recaptcha": "^2.1.5",
    "@types/react-router-dom": "^5.3.3",
    "@types/react-syntax-highlighter": "^15.5.6",
    "@types/react-table": "^7.7.20",
    "@types/react-window": "^1.8.8",
    "@types/swagger-ui-react": "^4.18.0",
    "@unocss/preset-wind": "^65.4.3",
    "@unocss/webpack": "^65.4.3",
    "aws-sdk": "^2.1211.0",
    "babel-plugin-prismjs": "^2.1.0",
    "eslint": "8",
    "eslint-config-react-app": "^7.0.1",
    "glob": "^10.3.3",
    "gogocode": "^1.0.55",
    "husky": "^8.0.1",
    "is-ci": "^3.0.1",
    "jest": "^29.7.0",
    "jest-environment-jsdom": "^29.7.0",
    "knip": "^5.43.3",
    "lint-staged": "^13.0.3",
    "markdown-table": "^3.0.3",
    "node-mime-types": "^1.1.0",
    "orval": "~6.12.1",
    "prettier": "^3.4.2",
    "tsx": "^3.12.1",
    "typescript": "^5.7.2",
    "unocss": "^65.4.3"
  },
  "jest": {
    "testEnvironment": "jest-environment-jsdom",
    "resetMocks": false,
    "setupFilesAfterEnv": [
      "<rootDir>/src/setupTests.ts"
    ],
    "transform": {
      "^.+\\.(t|j)sx?$": [
        "@swc/jest",
        {
          "jsc": {
            "parser": {
              "tsx": true,
              "syntax": "typescript"
            },
            "transform": {
              "react": {
                "runtime": "automatic"
              }
            }
          },
          "isModule": "unknown"
        }
      ]
    },
    "transformIgnorePatterns": [
      "node_modules/(?!(.pnpm|lodash-es|react-phone-input-2))"
    ],
    "moduleNameMapper": {
      "@tidb-cloud-uikit/(.*)": "<rootDir>/src/uikit/$1",
      "dbaas/(.*)": "<rootDir>/src/dbaas/$1",
      "@tidb-cloud/ui-components": "<rootDir>/src/ui-components/src",
      "^@tidbcloud/uikit/icons$": "<rootDir>/src/jest/icons.js",
      "@tidbcloud/uikit/(.*)": "<rootDir>/node_modules/@tidbcloud/uikit",
      "\\.(css|less)$": "<rootDir>/src/jest/styleMock.js"
    }
  },
  "msw": {
    "workerDirectory": "public"
  },
  "sideEffects": [
    "*.css",
    "*.less",
    "src/uikit/**/*.ts",
    "src/uikit/**/*.tsx",
    "src/ui-components/src/**/*.ts",
    "src/ui-components/src/**/*.tsx"
  ],
  "resolutions": {
    "@types/react": "^18.3.3",
    "@types/react-dom": "^18.3.0"
  },
  "packageManager": "pnpm@10.19.0"
}
