{
  "name": "seahub-frontend",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@codemirror/lang-markdown": "6.2.3",
    "@codemirror/language-data": "6.3.1",
    "@codemirror/view": "^6.34.1",
    "@emoji-mart/data": "^1.2.1",
    "@emoji-mart/react": "^1.1.1",
    "@excalidraw/excalidraw": "^0.18.0",
    "@gatsbyjs/reach-router": "2.0.1",
    "@seafile/react-image-lightbox": "4.0.2",
    "@seafile/resumablejs": "1.1.16",
    "@seafile/sdoc-editor": "2.0.35",
    "@seafile/seafile-calendar": "0.0.28",
    "@seafile/seafile-editor": "2.0.2",
    "@seafile/stldraw-editor": "1.0.1",
    "@uiw/codemirror-extensions-langs": "^4.19.4",
    "@uiw/codemirror-themes": "^4.23.5",
    "@uiw/react-codemirror": "^4.19.4",
    "axios": "^1.8.2",
    "chart.js": "4.4.7",
    "classnames": "^2.2.6",
    "codemirror": "^6.0.1",
    "copy-to-clipboard": "^3.0.8",
    "crypto-js": "4.2.0",
    "dayjs": "1.10.7",
    "deep-copy": "1.4.2",
    "emoji-mart": "^5.6.0",
    "i18next": "^17.0.13",
    "i18next-browser-languagedetector": "^3.0.3",
    "i18next-xhr-backend": "^3.1.2",
    "is-hotkey": "0.2.0",
    "MD5": "^1.3.0",
    "object-assign": "4.1.1",
    "prop-types": "^15.8.1",
    "qrcode.react": "4.2.0",
    "react": "18.3.1",
    "react-app-polyfill": "^2.0.0",
    "react-chartjs-2": "5.3.0",
    "react-cookies": "^0.1.0",
    "react-dnd": "^2.6.0",
    "react-dnd-html5-backend": "^2.6.0",
    "react-dom": "18.3.1",
    "react-i18next": "^10.12.2",
    "react-responsive": "10.0.0",
    "react-select": "5.9.0",
    "react-transition-group": "4.4.5",
    "reactstrap": "9.2.3",
    "svg-sprite-loader": "^6.0.11",
    "svgo-loader": "^3.0.1",
    "unified": "^7.0.0",
    "url-parse": "^1.4.3",
    "uuid": "9.0.1",
    "video.js": "^7.4.1",
    "watermark-dom": "^1.0.0"
  },
  "scripts": {
    "lint": "export NODE_ENV=development && ./node_modules/.bin/eslint ./src/",
    "lint-fix": "export NODE_ENV=development && ./node_modules/.bin/eslint ./src/ --fix",
    "start": "node scripts/start.js",
    "build": "node scripts/build.js",
    "test": "node scripts/test.js --env=jsdom",
    "dev": "export NODE_ENV=development && node --max-old-space-size=4096 config/server.js"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all",
      "ie 11"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version",
      "ie 11"
    ]
  },
  "jest": {
    "collectCoverageFrom": [
      "src/**/*.{js,jsx,mjs}"
    ],
    "setupFiles": [
      "<rootDir>/config/polyfills.js"
    ],
    "testMatch": [
      "<rootDir>/src/**/__tests__/**/*.{js,jsx,mjs}",
      "<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}"
    ],
    "testEnvironment": "node",
    "testURL": "http://localhost",
    "transform": {
      "^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
      "^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
      "^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
    },
    "transformIgnorePatterns": [
      "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
    ],
    "moduleNameMapper": {
      "^react-native$": "react-native-web"
    },
    "moduleFileExtensions": [
      "web.js",
      "mjs",
      "js",
      "json",
      "web.jsx",
      "jsx",
      "node"
    ]
  },
  "devDependencies": {
    "@babel/core": "^7.16.0",
    "@babel/plugin-proposal-private-property-in-object": "7.21.11",
    "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3",
    "@svgr/webpack": "^5.5.0",
    "@testing-library/jest-dom": "5.17.0",
    "@testing-library/react": "^11.1.0",
    "@testing-library/user-event": "13.5.0",
    "babel-eslint": "10.1.0",
    "babel-jest": "^27.4.2",
    "babel-loader": "^8.2.3",
    "babel-plugin-dynamic-import-node": "2.3.3",
    "babel-plugin-named-asset-import": "^0.3.7",
    "babel-preset-react-app": "^10.0.0",
    "bfj": "^7.0.2",
    "browserslist": "^4.18.1",
    "camelcase": "^6.2.1",
    "case-sensitive-paths-webpack-plugin": "^2.4.0",
    "css-loader": "^6.5.1",
    "css-minimizer-webpack-plugin": "^3.2.0",
    "dotenv": "^10.0.0",
    "dotenv-expand": "^5.1.0",
    "eslint": "^8.3.0",
    "eslint-config-react-app": "^7.0.1",
    "eslint-webpack-plugin": "^3.1.1",
    "file-loader": "^6.2.0",
    "fs-extra": "^10.0.0",
    "html-webpack-plugin": "^5.5.0",
    "identity-obj-proxy": "^3.0.0",
    "jest": "^27.4.3",
    "jest-resolve": "^27.4.2",
    "jest-watch-typeahead": "^1.0.0",
    "mini-css-extract-plugin": "^2.4.5",
    "node-polyfill-webpack-plugin": "2.0.1",
    "postcss": "^8.4.31",
    "postcss-flexbugs-fixes": "^5.0.2",
    "postcss-loader": "^6.2.1",
    "postcss-normalize": "^10.0.1",
    "postcss-preset-env": "^7.0.1",
    "prompts": "^2.4.2",
    "react-app-polyfill": "^3.0.0",
    "react-dev-utils": "^12.0.1",
    "react-refresh": "^0.11.0",
    "resolve": "^1.20.0",
    "resolve-url-loader": "^4.0.0",
    "sass-loader": "^12.3.0",
    "semver": "6.3.1",
    "source-map-loader": "^3.0.0",
    "style-loader": "^3.3.1",
    "tailwindcss": "^3.0.2",
    "terser-webpack-plugin": "^5.2.5",
    "ts-pnp": "1.2.0",
    "url-loader": "4.1.1",
    "web-vitals": "2.1.4",
    "webpack": "^5.64.4",
    "webpack-bundle-tracker": "1.7.0",
    "webpack-dev-server": "^4.6.0",
    "webpack-manifest-plugin": "^4.0.2",
    "workbox-webpack-plugin": "^6.4.1"
  }
}
