{ "name": "@overleaf/project-history", "description": "An API for saving and compressing individual document updates into a browseable history", "private": true, "main": "app.js", "type": "module", "scripts": { "test:acceptance": "yarn run test:acceptance:_run -- --grep=$MOCHA_GREP", "test:unit": "yarn run test:unit:_run -- --grep=$MOCHA_GREP", "start": "node app.js", "nodemon": "node --watch app.js", "test:acceptance:_run": "mocha --loader=esmock --recursive --timeout 15000 --exit --retries=$RETRIES $@ test/acceptance/js", "test:unit:_run": "mocha --loader=esmock --recursive --exit $@ test/unit/js", "lint": "eslint --cache --cache-location ../../node_modules/.cache/eslint/ --max-warnings 0 --format unix .", "lint:fix": "eslint --cache --cache-location ../../node_modules/.cache/eslint/ --fix .", "types:check": "tsc --noEmit" }, "dependencies": { "@overleaf/fetch-utils": "workspace:*", "@overleaf/logger": "workspace:*", "@overleaf/metrics": "workspace:*", "@overleaf/mongo-utils": "workspace:*", "@overleaf/o-error": "workspace:*", "@overleaf/promise-utils": "workspace:*", "@overleaf/redis-wrapper": "workspace:*", "@overleaf/settings": "workspace:*", "@overleaf/stream-utils": "workspace:*", "@overleaf/validation-tools": "workspace:*", "async": "^3.2.5", "body-parser": "1.20.4", "bunyan": "^1.8.15", "celebrate": "^15.0.3", "diff-match-patch": "overleaf/diff-match-patch#89805f9c671a77a263fc53461acd62aa7498f688", "express": "4.22.1", "lodash": "^4.17.20", "minimist": "^1.2.8", "mongodb-legacy": "6.1.3", "overleaf-editor-core": "workspace:*", "p-queue": "^8.1.0", "request": "2.88.2" }, "devDependencies": { "@overleaf/migrations": "workspace:*", "chai": "^4.3.6", "chai-as-promised": "^7.1.1", "esmock": "^2.7.3", "mocha": "^11.1.0", "mocha-junit-reporter": "^2.2.1", "mocha-multi-reporters": "^1.5.1", "nock": "^13.5.3", "sinon": "~9.0.1", "sinon-chai": "^3.7.0", "timekeeper": "2.2.0", "typescript": "^5.0.4" } }