{ "name": "mattermost-webapp", "browser": { "./client/web_client.jsx": "./client/browser_web_client.jsx" }, "version": "0.0.1", "private": true, "dependencies": { "@formatjs/intl-pluralrules": "3.2.3", "@formatjs/intl-relativetimeformat": "6.2.3", "bootstrap": "3.4.1", "chart.js": "2.9.3", "compass-mixins": "0.12.10", "core-js": "3.6.5", "css-vars-ponyfill": "2.3.2", "custom-protocol-detection": "github:ismailhabib/custom-protocol-detection", "dynamic-virtualized-list": "github:mattermost/dynamic-virtualized-list#119db968c96643c7106d4d2c965f05b2e251bc83", "emoji-regex": "9.0.0", "exif2css": "1.3.0", "fastclick": "1.0.6", "flexsearch": "0.6.32", "flux": "3.1.3", "font-awesome": "4.7.0", "highlight.js": "10.1.2", "hoist-non-react-statics": "3.3.2", "html-to-react": "1.4.3", "inobounce": "0.2.0", "jasny-bootstrap": "3.1.3", "jquery": "3.5.1", "katex": "0.11.1", "key-mirror": "1.0.1", "localforage": "1.7.3", "localforage-observable": "2.0.1", "mark.js": "8.11.1", "marked": "github:mattermost/marked#87769262aa02e1784570f61f4f962050e07cc335", "mattermost-redux": "github:mattermost/mattermost-redux#6fdb4667fdb689ac209eb27d2726922d8b422104", "moment-timezone": "0.5.31", "p-queue": "6.6.1", "pdfjs-dist": "2.1.266", "popper.js": "1.16.1", "prettier": "2.0.5", "prop-types": "15.7.2", "react": "16.13.1", "react-beautiful-dnd": "^13.0.0", "react-bootstrap": "github:mattermost/react-bootstrap#c6957962364e0818a51bbfd13e89919903b422d6", "react-color": "2.18.1", "react-contextmenu": "2.14.0", "react-custom-scrollbars": "4.2.1", "react-day-picker": "7.4.8", "react-dom": "16.13.1", "react-hot-loader": "4.12.21", "react-inlinesvg": "1.2.0", "react-intl": "5.3.2", "react-is": "16.13.1", "react-overlays": "1.2.0", "react-redux": "7.2.1", "react-router-dom": "5.2.0", "react-select": "2.4.4", "react-transition-group": "4.4.1", "react-virtualized-auto-sizer": "1.0.2", "rebound": "0.1.0", "redux": "4.0.5", "redux-batched-actions": "0.5.0", "redux-persist": "4.10.2", "regenerator-runtime": "0.13.7", "reselect": "4.0.0", "semver": "7.3.2", "superagent": "5.2.2", "tinycolor2": "1.4.1", "typescript": "3.9.7", "xregexp": "4.3.0", "zen-observable": "0.8.15" }, "devDependencies": { "@babel/cli": "7.10.5", "@babel/core": "7.10.5", "@babel/plugin-proposal-class-properties": "7.10.4", "@babel/plugin-proposal-object-rest-spread": "7.10.4", "@babel/preset-env": "7.10.4", "@babel/preset-react": "7.10.4", "@babel/preset-typescript": "7.10.4", "@hot-loader/react-dom": "16.13.0", "@storybook/addon-actions": "5.3.19", "@storybook/addon-knobs": "5.3.19", "@storybook/addon-links": "5.3.19", "@storybook/addon-notes": "5.3.19", "@storybook/addons": "5.3.19", "@storybook/react": "5.3.19", "@testing-library/jest-dom": "5.11.4", "@testing-library/react": "10.4.9", "@types/bootstrap": "4.5.0", "@types/chart.js": "2.9.24", "@types/classnames": "2.2.10", "@types/enzyme": "3.10.5", "@types/highlight.js": "9.12.4", "@types/history": "4.7.7", "@types/jest": "26.0.12", "@types/jquery": "3.5.1", "@types/lodash": "4.14.161", "@types/mark.js": "8.11.5", "@types/marked": "0.7.4", "@types/moment-timezone": "0.5.30", "@types/node": "14.0.23", "@types/react": "16.9.49", "@types/react-beautiful-dnd": "^13.0.0", "@types/react-bootstrap": "0.32.22", "@types/react-color": "3.0.4", "@types/react-custom-scrollbars": "4.0.7", "@types/react-dom": "16.9.8", "@types/react-is": "16.7.1", "@types/react-redux": "7.1.9", "@types/react-router-dom": "5.1.5", "@types/react-select": "3.0.19", "@types/react-transition-group": "4.4.0", "@types/redux-mock-store": "1.0.2", "@types/tinycolor2": "1.4.2", "@typescript-eslint/eslint-plugin": "3.6.1", "@typescript-eslint/parser": "3.6.1", "babel-eslint": "10.1.0", "babel-jest": "26.1.0", "babel-loader": "8.1.0", "babel-plugin-typescript-to-proptypes": "0.17.1", "browser-resolve": "1.11.3", "bundle-loader": "0.5.6", "clone": "2.1.2", "copy-webpack-plugin": "6.0.3", "cross-env": "7.0.2", "css-loader": "3.6.0", "enzyme": "3.11.0", "enzyme-adapter-react-16": "1.15.4", "enzyme-to-json": "3.5.0", "eslint": "7.4.0", "eslint-import-resolver-webpack": "0.12.2", "eslint-plugin-babel": "5.3.1", "eslint-plugin-cypress": "2.11.1", "eslint-plugin-header": "3.0.0", "eslint-plugin-import": "2.22.0", "eslint-plugin-jquery": "1.5.1", "eslint-plugin-mattermost": "github:mattermost/eslint-plugin-mattermost#070ce792d105482ffb2b27cfc0b7e78b3d20acee", "eslint-plugin-no-only-tests": "2.4.0", "eslint-plugin-react": "7.20.6", "exports-loader": "1.1.0", "file-loader": "6.0.0", "full-icu": "1.3.1", "html-loader": "1.1.0", "html-webpack-plugin": "4.3.0", "identity-obj-proxy": "3.0.0", "image-webpack-loader": "6.0.0", "imports-loader": "1.1.0", "jest": "26.1.0", "jest-canvas-mock": "2.2.0", "jest-cli": "26.1.0", "jest-junit": "11.0.1", "jquery-deferred": "0.3.1", "mini-css-extract-plugin": "0.9.0", "mmjstool": "github:mattermost/mattermost-utilities#519b99a4e51e6c67a0dbd46a6efdff27dc835aaa", "node-sass": "4.14.1", "react-router-enzyme-context": "1.2.0", "redux-mock-store": "1.5.4", "redux-persist-node-storage": "2.0.0", "remote-redux-devtools": "0.5.16", "sass-loader": "8.0.2", "style-loader": "1.2.1", "webpack": "4.43.0", "webpack-cli": "3.3.12", "webpack-dev-server": "3.11.0", "webpack-livereload-plugin": "2.3.0", "webpack-node-externals": "1.7.2", "webpack-pwa-manifest": "4.2.0", "yup": "0.29.3" }, "jest": { "snapshotSerializers": [ "enzyme-to-json/serializer" ], "testPathIgnorePatterns": [ "/node_modules/" ], "clearMocks": true, "collectCoverageFrom": [ "actions/**/*.{js,jsx,ts,tsx}", "client/**/*.{js,jsx,ts,tsx}", "components/**/*.{jsx,tsx}", "plugins/**/*.{js,jsx,ts,tsx}", "reducers/**/*.{js,jsx,ts,tsx}", "routes/**/*.{js,jsx,ts,tsx}", "selectors/**/*.{js,jsx,ts,tsx}", "stores/**/*.{js,jsx,ts,tsx}", "utils/**/*.{js,jsx,ts,tsx}" ], "coverageReporters": [ "lcov", "text-summary" ], "moduleNameMapper": { "^.+\\.(jpg|jpeg|png|apng|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "identity-obj-proxy", "^.+\\.(css|less|scss)$": "identity-obj-proxy", "^.*i18n.*\\.(json)$": "/tests/i18n_mock.json", "^bundle-loader\\?lazy\\!(.*)$": "$1" }, "moduleDirectories": [ "", "node_modules" ], "moduleFileExtensions": [ "ts", "tsx", "js", "jsx", "json" ], "reporters": [ "default", "jest-junit" ], "transformIgnorePatterns": [ "node_modules/(?!react-native|react-router)" ], "setupFiles": [ "jest-canvas-mock" ], "setupFilesAfterEnv": [ "/tests/setup.js" ], "testURL": "http://localhost:8065" }, "jest-junit": { "outputDirectory": "build", "outputName": "test-results.xml" }, "scripts": { "check": "eslint --ext .js,.jsx,.tsx,.ts . --quiet --cache", "fix": "eslint --ext .js,.jsx,.tsx,.ts . --quiet --fix --cache", "build": "cross-env NODE_ENV=production webpack --display-error-details --verbose", "run": "webpack --progress --watch", "dev-server": "webpack-dev-server", "test": "cross-env NODE_ICU_DATA=node_modules/full-icu TZ=Etc/UTC jest --maxWorkers=50%", "test-ci": "cross-env NODE_ICU_DATA=node_modules/full-icu TZ=Etc/UTC jest --ci --maxWorkers=8", "stats": "cross-env NODE_ENV=production webpack --profile --json > webpack_stats.json", "updatesnapshot": "cross-env NODE_ICU_DATA=node_modules/full-icu TZ=Etc/UTC jest --updateSnapshot", "test:debug": "cross-env NODE_ICU_DATA=node_modules/full-icu TZ=Etc/UTC jest --forceExit --detectOpenHandles", "test:speed": "cross-env NODE_ICU_DATA=node_modules/full-icu TZ=Etc/UTC jest", "test:watch": "cross-env NODE_ICU_DATA=node_modules/full-icu TZ=Etc/UTC jest --watch", "test:coverage": "cross-env NODE_ICU_DATA=node_modules/full-icu TZ=Etc/UTC jest --coverage", "mmjstool": "mmjstool", "i18n-extract": "npm run mmjstool -- i18n extract-webapp", "i18n-clean-empty": "npm run mmjstool -- i18n clean-empty --webapp-dir .", "storybook": "start-storybook -p 6006 -s ./storybook/static", "build-storybook": "build-storybook -s ./storybook/static", "check-types": "tsc" } }