{ "name": "web-overleaf", "version": "0.1.4", "description": "The HTTP front end for ShareLaTeX", "license": "AGPL-3.0-only", "private": true, "repository": { "type": "git", "url": "https://github.com/sharelatex/web-sharelatex.git" }, "directories": { "public": "./public" }, "scripts": { "test:acceptance:run_dir": "mocha --recursive --reporter spec --timeout 25000 --exit --grep=$MOCHA_GREP --require test/acceptance/bootstrap.js", "test:acceptance:app": "npm run test:acceptance:run_dir -- test/acceptance/src", "test:unit:run_dir": "mocha --recursive --reporter spec --timeout 25000 --exit --grep=$MOCHA_GREP --file test/unit/bootstrap.js", "test:unit:app": "npm run test:unit:run_dir -- test/unit/src", "test:frontend": "karma start", "test:frontend:single": "karma start --single-run", "start": "node $NODE_APP_OPTIONS app.js", "nodemon": "nodemon --config nodemon.json", "webpack": "webpack-dev-server --config webpack.config.dev.js", "webpack:production": "webpack --config webpack.config.prod.js", "lint": "eslint -f unix .", "format": "prettier-eslint '**/*.{js,less}' --list-different", "format:fix": "prettier-eslint '**/*.{js,less}' --write", "migrations": "east" }, "dependencies": { "@babel/cli": "^7.5.5", "@babel/core": "^7.5.5", "@babel/preset-env": "^7.5.5", "@babel/preset-react": "^7.0.0", "@overleaf/o-error": "^2.1.0", "algoliasearch": "^3.35.1", "angular": "~1.6.10", "angular-sanitize": "~1.6.10", "archiver": "0.9.0", "async": "0.6.2", "backbone": "^1.3.3", "basic-auth-connect": "^1.0.0", "bcrypt": "^3.0.4", "body-parser": "^1.13.1", "bufferedstream": "1.6.0", "celebrate": "^10.0.1", "chai-as-promised": "^7.1.1", "codemirror": "^5.33.0", "connect-redis": "^3.1.0", "contentful": "^6.1.1", "cookie": "^0.2.3", "cookie-parser": "1.3.5", "core-js": "^3.6.2", "crypto-js": "^3.1.9-1", "csurf": "^1.8.3", "d3": "^3.5.16", "dateformat": "1.0.4-1.2.3", "daterangepicker": "^2.1.27", "east": "^1.1.0", "express": "4.13.0", "express-bearer-token": "^2.2.0", "express-http-proxy": "^1.1.0", "express-session": "^1.14.2", "fs-extra": "^4.0.2", "fuse.js": "^3.0.0", "handlebars": "^4.0.11", "helmet": "^3.8.1", "http-proxy": "^1.8.1", "joi-mongodb-objectid": "^0.1.0", "jquery": "^2.2.4", "json2csv": "^4.3.3", "jsonwebtoken": "^8.0.1", "lodash": "^4.13.1", "logger-sharelatex": "^1.8.0", "mailchimp-api-v3": "^1.12.0", "marked": "^0.3.5", "method-override": "^2.3.3", "metrics-sharelatex": "^2.2.0", "minimist": "1.2.0", "mmmagic": "^0.5.2", "mocha": "^6.2.2", "moment": "^2.24.0", "mongojs": "2.4.0", "mongoose": "^4.13.19", "multer": "git+https://github.com/overleaf/multer.git", "node-html-encoder": "0.0.2", "nodemailer": "2.1.0", "nodemailer-mandrill-transport": "^1.2.0", "nodemailer-sendgrid-transport": "^0.2.0", "nodemailer-ses-transport": "^1.3.0", "nvd3": "^1.8.6", "oauth2-server": "^3.0.1", "p-limit": "^2.2.1", "passport": "^0.3.2", "passport-google-oauth20": "^1.0.0", "passport-ldapauth": "^0.6.0", "passport-local": "^1.0.0", "passport-oauth2": "^1.4.0", "passport-oauth2-refresh": "^1.0.0", "passport-orcid": "0.0.3", "passport-saml": "^1.3.3", "passport-twitter": "^1.0.4", "pdfjs-dist": "^2.2.228", "pug": "^2.0.0-beta6", "react": "^15.4.2", "react-dom": "^15.4.2", "redis-sharelatex": "^1.0.11", "request": "^2.69.0", "request-promise-native": "^1.0.7", "requestretry": "^1.13.0", "rimraf": "2.2.6", "rolling-rate-limiter": "git+https://github.com/ShaneKilkelly/rolling-rate-limiter.git#master", "sanitizer": "0.1.1", "settings-sharelatex": "^1.1.0", "temp": "^0.8.3", "underscore": "1.6.0", "url-parse": "^1.4.7", "utf-8-validate": "^5.0.2", "uuid": "^3.0.1", "valid-url": "^1.0.9", "xml2js": "^0.4.22", "xregexp": "^4.2.4", "yauzl": "^2.10.0" }, "devDependencies": { "acorn": "^6.1.0", "acorn-walk": "^6.1.1", "angular-mocks": "~1.6.10", "autoprefixer": "^9.7.2", "babel-eslint": "^10.0.2", "babel-loader": "^8.0.6", "babel-plugin-angularjs-annotate": "^0.10.0", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "chaid": "^1.0.2", "cheerio": "^1.0.0-rc.3", "copy-webpack-plugin": "^5.0.4", "css-loader": "^3.2.0", "dom-testing-library": "^3.19.4", "es6-promise": "^4.0.5", "eslint": "^4.18.1", "eslint-config-prettier": "^3.1.0", "eslint-config-standard": "^11.0.0", "eslint-config-standard-jsx": "^5.0.0", "eslint-config-standard-react": "^6.0.0", "eslint-plugin-chai-expect": "^1.1.1", "eslint-plugin-chai-friendly": "^0.4.1", "eslint-plugin-import": "^2.9.0", "eslint-plugin-jsx-a11y": "^6.1.2", "eslint-plugin-mocha": "^5.2.0", "eslint-plugin-node": "^6.0.0", "eslint-plugin-promise": "^3.6.0", "eslint-plugin-react": "^7.11.1", "eslint-plugin-standard": "^3.0.1", "expose-loader": "^0.7.5", "file-loader": "^5.0.2", "glob": "^7.1.3", "handlebars-loader": "^1.7.0", "karma": "^2.0.0", "karma-chai-sinon": "^0.1.5", "karma-chrome-launcher": "^2.2.0", "karma-mocha": "^1.3.0", "karma-mocha-reporter": "^2.2.5", "karma-requirejs": "^1.1.0", "karma-webpack": "^4.0.2", "less": "^2.7.3", "less-loader": "^5.0.0", "less-plugin-autoprefix": "^2.0.0", "mini-css-extract-plugin": "^0.8.0", "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "nodemon": "^1.14.3", "optimize-css-assets-webpack-plugin": "^5.0.3", "postcss-loader": "^3.0.0", "prettier-eslint-cli": "^4.7.1", "react-testing-library": "^5.4.2", "requirejs": "^2.1.22", "samlp": "^3.4.1", "sandboxed-module": "0.2.0", "sinon": "^7.5.0", "sinon-chai": "^3.3.0", "sinon-mongoose": "^2.3.0", "terser-webpack-plugin": "^2.2.1", "timekeeper": "^2.2.0", "translations-sharelatex": "git+https://github.com/sharelatex/translations-sharelatex.git#master", "val-loader": "^1.1.1", "webpack": "^4.39.0", "webpack-cli": "^3.3.6", "webpack-dev-server": "^3.7.2", "webpack-manifest-plugin": "^2.0.4", "webpack-merge": "^4.2.1" } }