{
  "name": "cryptpad",
  "description": "a collaborative office suite that is end-to-end encrypted and open-source",
  "version": "2025.6.0",
  "license": "AGPL-3.0+",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/cryptpad/cryptpad.git"
  },
  "funding": {
    "type": "opencollective",
    "url": "https://opencollective.com/cryptpad"
  },
  "dependencies": {
    "@mcrowe/minibloom": "^0.2.0",
    "@node-saml/node-saml": "^4.0.5",
    "alertify.js": "1.0.11",
    "body-parser": "^1.20.2",
    "bootstrap": "^4.0.0",
    "bootstrap-tokenfield": "^0.12.0",
    "chainpad": "^5.2.6",
    "chainpad-crypto": "^0.3.0",
    "chainpad-listmap": "^1.2.0",
    "chainpad-netflux": "^1.3.0",
    "chainpad-server": "^5.2.4",
    "ckeditor": "npm:ckeditor4@~4.22.1",
    "codemirror": "^5.19.0",
    "components-font-awesome": "^4.6.3",
    "connect-gzip-static": "^4.2.1",
    "cookie-parser": "^1.4.7",
    "croppie": "^2.5.0",
    "dragula": "3.7.2",
    "drawio": "github:cryptpad/drawio-npm#npm-21.8.2+5",
    "express": "~4.21.2",
    "file-saver": "1.3.1",
    "fs-extra": "^7.0.0",
    "get-folder-size": "^2.0.1",
    "html2canvas": "^1.4.0",
    "http-proxy-middleware": "^3.0.3",
    "hyper-json": "~1.4.0",
    "jquery": "3.6.0",
    "json.sortify": "github:cryptpad/JSON.sortify",
    "jsonwebtoken": "^9.0.0",
    "jszip": "3.10.1",
    "localforage": "^1.5.2",
    "marked": "^4.3.0",
    "mathjax": "3.0.5",
    "netflux-websocket": "^1.2.1",
    "notp": "^2.0.3",
    "nthen": "0.1.8",
    "open-sans-fontface": "^1.4.0",
    "openid-client": "^5.7.1",
    "pako": "^2.1.0",
    "prompt-confirm": "^2.0.4",
    "pull-stream": "^3.6.1",
    "require-css": "0.1.10",
    "requirejs": "2.3.7",
    "requirejs-plugins": "^1.0.2",
    "saferphore": "0.0.1",
    "scrypt-async": "1.2.0",
    "sortablejs": "^1.6.0",
    "sortify": "^1.0.4",
    "stream-to-pull-stream": "^1.7.2",
    "thirty-two": "^1.0.2",
    "tweetnacl": "^1.0.3",
    "tweetnacl-util": "^0.15.1",
    "ulimit": "0.0.2",
    "ws": "^8.17.1",
    "x2js": "^3.4.4"
  },
  "devDependencies": {
    "@rollup/plugin-commonjs": "^28.0.0",
    "@rollup/plugin-json": "^6.1.0",
    "@rollup/plugin-node-resolve": "^15.3.0",
    "@rollup/plugin-terser": "^0.4.4",
    "@rollup/plugin-typescript": "^12.1.0",
    "eslint": "^9.16.0",
    "eslint-plugin-compat": "^6.0.1",
    "rollup": "^4.24.0",
    "stylelint": "^16.9.0",
    "stylelint-config-standard-less": "^3.0.1",
    "tslib": "^2.7.0",
    "typescript": "^5.6.2"
  },
  "overrides": {
    "minimist": "~1.2.3",
    "minimatch": "~3.1.2",
    "ws": "^8.17.1",
    "jquery": "3.6.0"
  },
  "scripts": {
    "install:components": "node scripts/copy-components.js",
    "start": "node server.js",
    "dev": "DEV=1 node server.js",
    "windev": "set DEV=1& node server.js",
    "fresh": "FRESH=1 node server.js",
    "offline": "FRESH=1 OFFLINE=1 node server.js",
    "offlinedev": "DEV=1 OFFLINE=1 node server.js",
    "package": "PACKAGE=1 node server.js",
    "lint": "eslint . && stylelint \"./customize.dist/src/less2/**/*.less\"",
    "lint:js": "eslint .",
    "lint:less": "stylelint \"./customize.dist/src/less2/**/*.less\"",
    "lint:translations": "node ./scripts/translations/lint-translations.js",
    "unused-translations": "node ./scripts/translations/unused-translations.js",
    "test": "node scripts/TestSelenium.js",
    "test-rpc": "cd scripts/tests && node test-rpc",
    "evict-inactive": "node scripts/evict-inactive.js",
    "build": "node scripts/build.js",
    "clear": "node scripts/clear.js",
    "installtoken": "node scripts/install.js",
    "api": "rollup -c"
  },
  "browserslist": [
    "> 0.5%, last 2 versions, Firefox ESR, not dead, not op_mini all"
  ]
}
