package.json 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. {
  2. "name": "overleaf",
  3. "private": true,
  4. "packageManager": "yarn@4.14.1",
  5. "devDependencies": {
  6. "@eslint/compat": "^2.1.0",
  7. "@eslint/js": "^10.0.1",
  8. "@overleaf/eslint-plugin": "workspace:*",
  9. "@prettier/plugin-pug": "^3.4.0",
  10. "@types/chai": "^4.3.0",
  11. "@types/chai-as-promised": "^7.1.8",
  12. "@types/mocha": "^10.0.6",
  13. "@types/multer": "^2.1.0",
  14. "@typescript-eslint/eslint-plugin": "^8.59.4",
  15. "@typescript-eslint/parser": "^8.59.4",
  16. "@vitest/eslint-plugin": "^1.5.0",
  17. "eslint": "^10.4.0",
  18. "eslint-config-prettier": "^10.0.1",
  19. "eslint-formatter-unix": "^8.40.0",
  20. "eslint-plugin-chai-expect": "^4.0.0",
  21. "eslint-plugin-chai-friendly": "^1.1.0",
  22. "eslint-plugin-cypress": "^4.1.0",
  23. "eslint-plugin-import": "^2.32.0",
  24. "eslint-plugin-mocha": "^11.0.0",
  25. "eslint-plugin-n": "^18.0.0",
  26. "eslint-plugin-promise": "^7.2.1",
  27. "eslint-plugin-unicorn": "^56.0.0",
  28. "globals": "^17.6.0",
  29. "prettier": "3.7.4",
  30. "prettier-plugin-groovy": "0.2.1",
  31. "typescript": "^5.9.3"
  32. },
  33. "engines": {
  34. "node": ">=20.19.0"
  35. },
  36. "resolutions": {
  37. "@xmldom/xmldom": "0.8.13",
  38. "argparse/underscore": "1.13.8",
  39. "east/underscore": "1.13.8",
  40. "referer-parser/js-yaml": "^4.1.1",
  41. "sandboxed-module": "patch:sandboxed-module@npm%3A2.0.4#~/.yarn/patches/sandboxed-module-npm-2.0.4-f8b45aacc9.patch",
  42. "request/tough-cookie": "5.1.2",
  43. "request/form-data": "2.5.5",
  44. "request/qs": "6.14.1",
  45. "@cypress/request/qs": "6.14.1",
  46. "@opentelemetry/api": "1.9.0",
  47. "mocha/serialize-javascript": "7.0.5",
  48. "pprof/protobufjs": "7.5.5",
  49. "@google-cloud/profiler/protobufjs": "7.5.5",
  50. "mocha-multi-reporters": "patch:mocha-multi-reporters@npm%3A1.5.1#~/.yarn/patches/mocha-multi-reporters-npm-1.5.1-0a1088aed5.patch",
  51. "pdfjs-dist": "patch:pdfjs-dist@npm%3A5.1.91#~/.yarn/patches/pdfjs-dist-npm-5.1.91.patch",
  52. "referer-parser": "patch:referer-parser@npm%3A0.0.3#~/.yarn/patches/referer-parser-npm-0.0.3.patch",
  53. "sass": "1.77.1",
  54. "@codemirror/autocomplete": "patch:@codemirror/autocomplete@npm%3A6.18.4#~/.yarn/patches/@codemirror-autocomplete-npm-6.18.4.patch",
  55. "@codemirror/commands": "6.10.1",
  56. "@codemirror/language": "6.12.1",
  57. "@codemirror/lint": "6.9.2",
  58. "@codemirror/search": "patch:@codemirror/search@npm%3A6.5.8#~/.yarn/patches/@codemirror-search-npm-6.5.8.patch",
  59. "@codemirror/state": "6.5.4",
  60. "@codemirror/view": "6.38.6",
  61. "@lezer/common": "1.5.0",
  62. "@lezer/highlight": "1.2.3",
  63. "@lezer/lr": "1.4.7",
  64. "@types/react": "18.3.28",
  65. "@types/react-dom": "18.3.7",
  66. "@vitest/expect": "4.1.5",
  67. "@vitest/mocker": "4.1.5",
  68. "@vitest/pretty-format": "4.1.5",
  69. "@vitest/spy": "4.1.5",
  70. "@vitest/utils": "4.1.5",
  71. "cheerio": "1.0.0-rc.10",
  72. "react": "18.3.1",
  73. "react-dom": "18.3.1",
  74. "sinon-chai": "3.7.0",
  75. "i18next-scanner/i18next": "23.16.8",
  76. "downshift": "9.0.9",
  77. "body-parser@npm:1.20.4": "patch:body-parser@npm%3A1.20.4#~/.yarn/patches/body-parser-npm-1.20.4.patch",
  78. "cypress-multi-reporters": "patch:cypress-multi-reporters@npm%3A2.0.5#~/.yarn/patches/cypress-multi-reporters-npm-2.0.5.patch",
  79. "forwarded@npm:0.2.0": "patch:forwarded@npm%3A0.2.0#~/.yarn/patches/forwarded-npm-0.2.0.patch",
  80. "multer@npm:2.1.1": "patch:multer@npm%3A2.1.1#~/.yarn/patches/multer-npm-2.1.1.patch",
  81. "node-fetch": "patch:node-fetch@npm%3A2.7.0#~/.yarn/patches/node-fetch-npm-2.7.0.patch",
  82. "passport-oauth2": "patch:passport-oauth2@npm%3A1.6.1#~/.yarn/patches/passport-oauth2-npm-1.6.1.patch",
  83. "send": "patch:send@npm%3A0.19.0#~/.yarn/patches/send-npm-0.19.0.patch",
  84. "serve-static": "1.16.2",
  85. "@uppy/xhr-upload": "3.6.0",
  86. "recurly": "4.12.0",
  87. "mongoose": "8.22.1",
  88. "pg": "8.7.1",
  89. "pg-query-stream": "4.7.1",
  90. "@aws-sdk/client-s3": "3.994.0",
  91. "@aws-sdk/client-ses": "3.994.0",
  92. "@aws-sdk/s3-request-presigner": "3.994.0",
  93. "contentful": "10.8.5",
  94. "@contentful/rich-text-html-renderer": "16.0.2",
  95. "@contentful/rich-text-types": "16.0.2",
  96. "i18next": "23.10.0",
  97. "sanitize-html": "2.17.4",
  98. "lodash": "4.18.1",
  99. "express-session": "1.17.2",
  100. "ioredis": "4.27.11",
  101. "knip": "5.64.1",
  102. "eslint-plugin-testing-library": "7.5.3",
  103. "chart.js": "4.0.1",
  104. "mock-fs": "5.2.0",
  105. "@customerio/cdp-analytics-node": "0.3.9",
  106. "@google-cloud/bigquery": "8.1.1",
  107. "moment": "2.29.4",
  108. "sequelize-cli": "6.6.0",
  109. "async": "3.2.5",
  110. "dockerode": "4.0.9",
  111. "tar-fs": "3.1.1",
  112. "cluster-key-slot": "1.1.0",
  113. "@octokit/request": "9.2.2",
  114. "randomstring": "1.2.2",
  115. "vite": "7.3.1",
  116. "isomorphic-git": "1.33.1",
  117. "http-status": "1.5.0",
  118. "knex": "2.4.0",
  119. "utf-8-validate": "5.0.8",
  120. "samlp": "7.0.2",
  121. "compression": "1.7.4",
  122. "cookie-parser": "1.4.6",
  123. "react-cookie": "7.2.0",
  124. "react-dropzone": "14.2.3",
  125. "@babel/core": "7.28.5",
  126. "@babel/preset-env": "7.28.5",
  127. "@babel/register": "7.28.3",
  128. "@vitejs/plugin-react": "4.4.1",
  129. "cssnano": "7.1.4",
  130. "mini-css-extract-plugin": "2.7.6",
  131. "nodemon": "3.0.1",
  132. "postcss": "8.5.8",
  133. "postcss-reporter": "7.0.5",
  134. "zod": "4.1.11",
  135. "zod-validation-error": "4.0.1",
  136. "simple-oauth2": "5.0.0",
  137. "@types/simple-oauth2": "5.0.7",
  138. "@node-oauth/oauth2-server": "5.3.0",
  139. "@phosphor-icons/react": "2.1.7",
  140. "@slack/webhook": "7.0.2",
  141. "@stripe/react-stripe-js": "3.9.0",
  142. "@stripe/stripe-js": "7.7.0",
  143. "cache-flow": "1.9.0",
  144. "focus-trap-react": "11.0.4",
  145. "i18next-http-middleware": "3.5.0",
  146. "jose": "4.15.5",
  147. "nodemailer": "8.0.5",
  148. "on-headers": "1.0.2",
  149. "pug": "3.0.3",
  150. "rate-limiter-flexible": "2.4.1",
  151. "react-hook-form": "7.71.1",
  152. "stripe": "18.4.0",
  153. "@babel/plugin-proposal-decorators": "7.28.0",
  154. "@floating-ui/react": "0.27.16",
  155. "@juggle/resize-observer": "3.3.1",
  156. "@storybook/addon-a11y": "10.3.5",
  157. "@storybook/addon-essentials": "10.3.5",
  158. "@storybook/addon-interactions": "10.3.5",
  159. "@storybook/addon-links": "10.3.5",
  160. "@storybook/cli": "10.3.5",
  161. "@storybook/react": "10.3.5",
  162. "@storybook/react-webpack5": "10.3.5",
  163. "@storybook/theming": "10.3.5",
  164. "@streamdown/cjk": "1.0.2",
  165. "@testing-library/dom": "10.4.0",
  166. "@testing-library/user-event": "14.5.2",
  167. "@types/express": "4.17.23",
  168. "@types/recurly__recurly-js": "4.38.0",
  169. "@types/sanitize-html": "2.16.0",
  170. "@uppy/dashboard": "3.7.1",
  171. "@uppy/drag-drop": "3.0.3",
  172. "@uppy/file-input": "3.0.4",
  173. "@uppy/progress-bar": "3.0.4",
  174. "@uppy/react": "3.2.1",
  175. "autoprefixer": "10.4.16",
  176. "babel-plugin-module-resolver": "5.0.2",
  177. "backbone": "1.6.0",
  178. "dompurify": "3.4.0",
  179. "eventsource-client": "1.1.4",
  180. "fake-indexeddb": "6.0.0",
  181. "formik": "2.2.9",
  182. "katex": "0.16.28",
  183. "match-sorter": "6.3.1",
  184. "micromark": "4.0.0",
  185. "pirates": "4.0.6",
  186. "qrcode": "1.5.0",
  187. "react-chartjs-2": "5.0.1",
  188. "react-i18next": "13.3.1",
  189. "react-resizable-panels": "2.1.1",
  190. "rehype-harden": "1.1.7",
  191. "scroll-into-view-if-needed": "2.2.28",
  192. "storybook": "10.3.5",
  193. "streamdown": "2.2.0",
  194. "tailwindcss": "3.4.17",
  195. "thread-loader": "patch:thread-loader@npm%3A4.0.2#~/.yarn/patches/thread-loader-npm-4.0.2-dab5735f54.patch",
  196. "unist-util-visit": "5.0.0",
  197. "use-stick-to-bottom": "1.1.1",
  198. "zustand": "5.0.8",
  199. "retry-request@npm:^8.0.0": "patch:retry-request@npm%3A8.0.2#~/.yarn/patches/retry-request-npm-8.0.2-448ad084c8.patch",
  200. "retry-request@npm:^7.0.0": "patch:retry-request@npm%3A7.0.2#~/.yarn/patches/retry-request-npm-7.0.2-a41087680c.patch",
  201. "teeny-request@npm:^10.0.0": "patch:teeny-request@npm%3A10.1.0#~/.yarn/patches/teeny-request-npm-10.1.0.patch",
  202. "teeny-request@npm:^9.0.0": "patch:teeny-request@npm%3A9.0.0#~/.yarn/patches/teeny-request-npm-9.0.0-4d571e3c55.patch",
  203. "@babel/plugin-transform-modules-systemjs": "7.29.4",
  204. "fast-xml-builder": "1.1.7",
  205. "ip-address": "10.1.1",
  206. "systeminformation": "5.31.6",
  207. "fast-uri": "3.1.2"
  208. },
  209. "scripts": {
  210. "format": "prettier --cache --cache-location ./node_modules/.cache/prettier/.prettier-cache --check",
  211. "format:fix": "prettier --cache --cache-location ./node_modules/.cache/prettier/.prettier-cache --write --check",
  212. "format:styles": "prettier --cache --cache-location ./node_modules/.cache/prettier/.prettier-cache --check '**/*.{css,scss}'",
  213. "format:styles:fix": "prettier --cache --cache-location ./node_modules/.cache/prettier/.prettier-cache --write --check '**/*.{css,scss}'",
  214. "format:pug": "prettier --cache --cache-location ./node_modules/.cache/prettier/.prettier-cache --check '**/*.pug'",
  215. "format:pug:fix": "prettier --cache --cache-location ./node_modules/.cache/prettier/.prettier-cache --write --check '**/*.pug'",
  216. "format:jenkins": "prettier --cache --cache-location ./node_modules/.cache/prettier/.prettier-cache --check '**/Jenkinsfile'",
  217. "format:jenkins:fix": "prettier --cache --cache-location ./node_modules/.cache/prettier/.prettier-cache --write --check '**/Jenkinsfile'",
  218. "format:monorepo-check": "prettier --cache --cache-location ./node_modules/.cache/prettier/.prettier-cache --check '**/Jenkinsfile' '**/*.md' '**/docker-compose.yml' '**/docker-compose.*.yml' '.agents/**/*.js' '.agents/**/*.md'",
  219. "format:monorepo-check:fix": "prettier --cache --cache-location ./node_modules/.cache/prettier/.prettier-cache --write --check '**/Jenkinsfile' '**/*.md' '**/docker-compose.yml' '**/docker-compose.*.yml' '.agents/**/*.js' '.agents/**/*.md'",
  220. "lint": "eslint --cache --cache-location ./node_modules/.cache/eslint/ --max-warnings 0 --format unix .",
  221. "lint:fix": "eslint --cache --cache-location ./node_modules/.cache/eslint/ --fix ."
  222. },
  223. "workspaces": [
  224. "jobs/mirror-documentation",
  225. "libraries/*",
  226. "server-ce/test",
  227. "services/analytics",
  228. "services/chat",
  229. "services/clsi",
  230. "services/clsi-cache",
  231. "services/clsi-perf",
  232. "services/docstore",
  233. "services/document-updater",
  234. "services/filestore",
  235. "services/freegeoip",
  236. "services/github-sync",
  237. "services/history-v1",
  238. "services/idp",
  239. "services/latexqc",
  240. "services/notifications",
  241. "services/project-history",
  242. "services/real-time",
  243. "services/templates",
  244. "services/third-party-datastore",
  245. "services/third-party-references",
  246. "services/web",
  247. "tools/dependency-management",
  248. "tools/npm-overrides-helper",
  249. "tools/saas-e2e",
  250. "tools/migrations"
  251. ]
  252. }