{ "name": "react_client", "license": "AGPL-3.0", "version": "0.1.0", "scripts": { "start": "cross-env PORT=3001 craco start", "start:test": "cross-env REACT_APP_TEST_MODE=true yarn start", "start:for-real-backend": "cross-env REACT_APP_BACKEND_BASE_URL=http://localhost:3000/ yarn start", "serve:build": "http-server build/ -s -p 3001 -P \"http://localhost:3001?\"", "build:test": "cross-env REACT_APP_TEST_MODE=true craco build", "build:mock": "cross-env craco build", "build:production": "(cross-env node check-build-env-vars.js) && (cross-env craco build)", "analyze": "cross-env ANALYZE=true yarn build:mock", "test": "craco test", "lint": "eslint --max-warnings=0 --ext .ts,.tsx src", "lint:fix": "eslint --fix --ext .ts,.tsx src", "format": "prettier -c \"src/**/*.{ts,tsx,js}\" \"cypress/**/*.{ts,tsx}\"", "format:fix": "prettier -w \"src/**/*.{ts,tsx,js}\" \"cypress/**/*.{ts,tsx}\"", "eject": "react-scripts eject", "cy:open": "cypress open", "cy:run:chrome": "cypress run --browser chrome", "cy:run:firefox": "cypress run --browser firefox" }, "eslintConfig": { "parserOptions": { "tsconfigRootDir": "", "project": [ "./tsconfig.json" ] }, "rules": { "no-use-before-define": "off", "no-debugger": "warn", "default-param-last": "off", "@typescript-eslint/consistent-type-imports": [ "error", { "prefer": "type-imports", "disallowTypeAnnotations": false } ] }, "plugins": [ "@typescript-eslint" ], "extends": [ "react-app", "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking", "plugin:import/recommended", "plugin:import/typescript", "prettier" ] }, "prettier": { "parser": "typescript", "singleQuote": true, "jsxSingleQuote": true, "semi": false, "tabWidth": 2, "trailingComma": "none", "bracketSpacing": true, "bracketSameLine": true, "arrowParens": "always" }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "dependencies": {}, "devDependencies": { "@craco/craco": "6.4.2", "@cypress/webpack-preprocessor": "5.10.0", "@fontsource/source-sans-pro": "4.5.1", "@hedgedoc/html-to-react": "1.1.0", "@hedgedoc/markdown-it-image-size": "1.0.1", "@hedgedoc/markdown-it-task-lists": "1.0.2", "@matejmazur/react-katex": "3.1.3", "@redux-devtools/core": "3.9.1", "@testing-library/cypress": "8.0.2", "@testing-library/jest-dom": "5.16.0", "@testing-library/react": "12.1.2", "@testing-library/user-event": "13.5.0", "@types/codemirror": "5.60.5", "@types/d3-graphviz": "2.6.7", "@types/diff": "5.0.1", "@types/dompurify": "2.3.1", "@types/jest": "27.0.3", "@types/js-yaml": "4.0.5", "@types/luxon": "2.0.7", "@types/markdown-it": "12.2.3", "@types/markdown-it-container": "2.0.4", "@types/markdown-it-plantuml": "1.4.1", "@types/mermaid": "8.2.7", "@types/node": "16.11.11", "@types/react": "17.0.37", "@types/react-bootstrap-typeahead": "5.1.8", "@types/react-dom": "17.0.11", "@types/react-router": "5.1.17", "@types/react-router-bootstrap": "0.24.5", "@types/react-router-dom": "5.3.2", "@types/redux-devtools": "3.0.47", "@types/sass": "1.43.1", "@types/uuid": "8.3.3", "@typescript-eslint/eslint-plugin": "5.5.0", "@typescript-eslint/parser": "5.5.0", "abcjs": "6.0.0-beta.35", "bootstrap": "4.6.1", "codemirror": "5.64.0", "copy-webpack-plugin": "6.4.1", "cross-env": "7.0.3", "cypress": "7.7.0", "cypress-commands": "1.1.0", "cypress-file-upload": "5.0.8", "d3-graphviz": "3.2.0", "diff": "5.0.0", "dompurify": "2.3.3", "emoji-picker-element": "1.8.2", "emoji-picker-element-data": "1.2.0", "eslint-config-prettier": "8.3.0", "eslint-config-react-app": "6.0.0", "eslint-plugin-chai-friendly": "0.7.2", "eslint-plugin-cypress": "2.12.1", "eslint-plugin-import": "2.25.3", "eslint-plugin-jsx-a11y": "6.5.1", "eslint-plugin-node": "11.1.0", "eslint-plugin-promise": "5.2.0", "fast-deep-equal": "3.1.3", "firacode": "6.1.0", "flowchart.js": "1.17.0", "fork-awesome": "1.2.0", "highlight.js": "11.3.1", "http-server": "14.0.0", "i18next": "21.5.4", "i18next-browser-languagedetector": "6.1.2", "i18next-resources-to-backend": "1.0.0", "js-yaml": "4.1.0", "katex": "0.15.1", "luxon": "2.1.1", "markdown-it": "12.2.0", "markdown-it-abbr": "1.0.4", "markdown-it-anchor": "8.4.1", "markdown-it-container": "3.0.0", "markdown-it-deflist": "2.1.0", "markdown-it-emoji": "2.0.0", "markdown-it-footnote": "3.0.3", "markdown-it-ins": "3.0.1", "markdown-it-mark": "3.0.1", "markdown-it-mathjax": "2.0.0", "markdown-it-plantuml": "1.4.1", "markdown-it-regex": "0.2.0", "markdown-it-sub": "1.0.0", "markdown-it-sup": "1.0.0", "markdown-it-task-lists": "2.1.1", "markdown-it-toc-done-right": "4.2.0", "markmap-common": "0.1.6", "markmap-lib": "0.12.0", "markmap-view": "0.2.7", "mermaid": "8.13.4", "optional-js": "2.3.0", "prettier": "2.5.1", "react": "17.0.2", "react-bootstrap": "1.6.4", "react-bootstrap-typeahead": "5.2.1", "react-codemirror2": "7.2.1", "react-diff-viewer": "3.1.1", "react-dom": "17.0.2", "react-i18next": "11.14.3", "react-redux": "7.2.6", "react-router": "5.2.1", "react-router-bootstrap": "0.25.0", "react-router-dom": "5.3.0", "react-router-use-location-state": "2.5.0", "react-scripts": "4.0.3", "react-use": "17.3.1", "redux": "4.1.2", "redux-devtools-extension": "2.13.9", "reveal.js": "4.2.0", "sanitize-filename": "1.6.3", "sass": "1.44.0", "ts-loader": "9.2.6", "ts-mockery": "1.2.0", "twemoji-colr-font": "0.0.4", "typescript": "4.5.2", "use-resize-observer": "8.0.0", "uuid": "8.3.2", "vega": "5.21.0", "vega-embed": "6.20.5", "vega-lite": "5.2.0", "webpack-bundle-analyzer": "4.5.0", "words-count": "2.0.2" }, "resolutions": { "cypress": "7.7.0" } }