{ "name": "@overleaf/real-time", "description": "The socket.io layer of Overleaf for real-time editor interactions", "private": true, "main": "app.js", "type": "module", "scripts": { "start": "node app.js", "test:acceptance:_run": "mocha --recursive --timeout 15000 --exit --retries=$RETRIES $@ test/acceptance/js", "test:acceptance": "yarn run test:acceptance:_run -- --grep=$MOCHA_GREP", "test:unit:_run": "vitest --config ./vitest.config.unit.cjs", "test:unit": "yarn run test:unit:_run", "nodemon": "node --watch app.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/o-error": "workspace:*", "@overleaf/promise-utils": "workspace:*", "@overleaf/redis-wrapper": "workspace:*", "@overleaf/settings": "workspace:*", "@overleaf/validation-tools": "workspace:*", "async": "^3.2.5", "base64id": "0.1.0", "body-parser": "1.20.4", "bunyan": "^1.8.15", "connect-redis": "^6.1.3", "cookie-parser": "^1.4.6", "express": "4.22.1", "express-session": "^1.17.1", "lodash": "^4.18.1", "proxy-addr": "^2.0.7", "socket.io": "github:overleaf/socket.io#0.9.19-overleaf-12", "socket.io-client": "github:overleaf/socket.io-client#0.9.17-overleaf-5", "zod-validation-error": "^4.0.1" }, "devDependencies": { "chai": "^4.3.6", "chai-as-promised": "^7.1.1", "cookie-signature": "^1.1.0", "mocha": "^11.1.0", "mocha-junit-reporter": "^2.2.1", "mocha-multi-reporters": "^1.5.1", "sinon": "^9.2.4", "sinon-chai": "3.7.0", "timekeeper": "0.0.4", "typescript": "^5.0.4", "uid-safe": "^2.1.5", "vitest": "4.1.5" } }