Explorar o código

Switch to mongodb-legacy

GitOrigin-RevId: 11e09528c153de6b7766d18c3c90d94962190371
andrew rumble %!s(int64=2) %!d(string=hai) anos
pai
achega
032deaf05c
Modificáronse 100 ficheiros con 139 adicións e 113 borrados
  1. 21 2
      package-lock.json
  2. 1 1
      services/web/app/src/Features/Authorization/AuthorizationManager.js
  3. 1 1
      services/web/app/src/Features/Authorization/AuthorizationMiddleware.js
  4. 1 1
      services/web/app/src/Features/Collaborators/CollaboratorsController.js
  5. 1 1
      services/web/app/src/Features/Collaborators/CollaboratorsGetter.js
  6. 1 1
      services/web/app/src/Features/Helpers/Mongo.js
  7. 1 1
      services/web/app/src/Features/History/HistoryRangesSupportMigration.js
  8. 1 1
      services/web/app/src/Features/InactiveData/InactiveProjectManager.js
  9. 1 1
      services/web/app/src/Features/Institutions/InstitutionsManager.js
  10. 1 1
      services/web/app/src/Features/Project/FolderStructureBuilder.js
  11. 1 1
      services/web/app/src/Features/Project/ProjectCollabratecDetailsHandler.js
  12. 1 1
      services/web/app/src/Features/Project/ProjectController.js
  13. 1 1
      services/web/app/src/Features/Project/ProjectCreationHandler.js
  14. 1 1
      services/web/app/src/Features/Project/ProjectEntityMongoUpdateHandler.js
  15. 1 1
      services/web/app/src/Features/Project/ProjectHelper.js
  16. 1 1
      services/web/app/src/Features/SplitTests/SplitTestSessionHandler.js
  17. 1 1
      services/web/app/src/Features/Subscription/RecurlyEventHandler.js
  18. 1 1
      services/web/app/src/Features/Subscription/TeamInvitesHandler.js
  19. 1 1
      services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.js
  20. 1 1
      services/web/app/src/Features/TokenAccess/TokenAccessHandler.js
  21. 1 1
      services/web/app/src/Features/User/SAMLIdentityManager.js
  22. 1 1
      services/web/app/src/Features/User/UserInfoController.js
  23. 1 1
      services/web/app/src/Features/UserMembership/UserMembershipHandler.js
  24. 1 1
      services/web/app/src/infrastructure/Validation.js
  25. 1 1
      services/web/app/src/infrastructure/mongodb.js
  26. 1 1
      services/web/migrations/20231105000000_move_doc_versions_from_docops_to_docs.js
  27. 1 1
      services/web/modules/history-v1/test/acceptance/src/LabelsTests.js
  28. 1 1
      services/web/modules/history-v1/test/acceptance/src/ProjectStructureTests.js
  29. 1 1
      services/web/modules/server-ce-scripts/scripts/check-mongodb.js
  30. 1 1
      services/web/package.json
  31. 1 1
      services/web/scripts/analytics/sync_group_subscription_memberships.js
  32. 1 1
      services/web/scripts/back_fill_dummy_doc_meta.js
  33. 1 1
      services/web/scripts/delete_dangling_file_refs.js
  34. 1 1
      services/web/scripts/delete_orphaned_chat_threads.js
  35. 1 1
      services/web/scripts/delete_orphaned_docs_online_check.js
  36. 1 1
      services/web/scripts/delete_subscriptions.js
  37. 1 1
      services/web/scripts/fix_malformed_filetree.js
  38. 1 1
      services/web/scripts/force_doc_flush.js
  39. 1 1
      services/web/scripts/helpers/batchedUpdate.js
  40. 1 1
      services/web/scripts/oauth/register_client.js
  41. 1 1
      services/web/scripts/remove_deleted_users_from_token_access_refs.js
  42. 1 1
      services/web/scripts/set_tex_live_image.js
  43. 1 1
      services/web/test/acceptance/bootstrap.js
  44. 1 1
      services/web/test/acceptance/src/AuthenticationTests.js
  45. 1 1
      services/web/test/acceptance/src/ConvertArchivedState.js
  46. 1 1
      services/web/test/acceptance/src/DocUpdateTests.js
  47. 1 1
      services/web/test/acceptance/src/MongoHelper.js
  48. 1 1
      services/web/test/acceptance/src/ProjectCRUDTests.js
  49. 1 1
      services/web/test/acceptance/src/ProjectStructureTests.js
  50. 1 1
      services/web/test/acceptance/src/helpers/Institution.js
  51. 1 1
      services/web/test/acceptance/src/helpers/Publisher.js
  52. 1 1
      services/web/test/acceptance/src/helpers/RecurlySubscription.js
  53. 1 1
      services/web/test/acceptance/src/helpers/UserHelper.js
  54. 1 1
      services/web/test/acceptance/src/mocks/MockProjectHistoryApi.js
  55. 1 1
      services/web/test/unit/bootstrap.js
  56. 1 1
      services/web/test/unit/src/Analytics/AnalyticsManagerTests.js
  57. 1 1
      services/web/test/unit/src/Authentication/AuthenticationControllerTests.js
  58. 1 1
      services/web/test/unit/src/Authentication/AuthenticationManagerTests.js
  59. 1 1
      services/web/test/unit/src/Authentication/SessionManagerTests.js
  60. 2 2
      services/web/test/unit/src/Authorization/AuthorizationManagerTests.js
  61. 2 1
      services/web/test/unit/src/Authorization/AuthorizationMiddlewareTests.js
  62. 2 2
      services/web/test/unit/src/Collaborators/CollaboratorsControllerTests.js
  63. 2 2
      services/web/test/unit/src/Collaborators/CollaboratorsGetterTests.js
  64. 1 1
      services/web/test/unit/src/Collaborators/CollaboratorsHandlerTests.js
  65. 1 1
      services/web/test/unit/src/Collaborators/CollaboratorsInviteControllerTests.js
  66. 1 1
      services/web/test/unit/src/Collaborators/CollaboratorsInviteHandlerTests.js
  67. 1 1
      services/web/test/unit/src/Collaborators/OwnershipTransferHandlerTests.js
  68. 1 1
      services/web/test/unit/src/DocumentUpdater/DocumentUpdaterHandlerTests.js
  69. 1 1
      services/web/test/unit/src/Editor/EditorControllerTests.js
  70. 1 1
      services/web/test/unit/src/Editor/EditorHttpControllerTests.js
  71. 1 1
      services/web/test/unit/src/History/HistoryManagerTests.js
  72. 2 2
      services/web/test/unit/src/InactiveData/InactiveProjectManagerTests.js
  73. 2 2
      services/web/test/unit/src/Institutions/InstitutionsManagerTests.js
  74. 4 2
      services/web/test/unit/src/Project/FolderStructureBuilderTests.js
  75. 2 2
      services/web/test/unit/src/Project/ProjectCollabratecDetailsTest.js
  76. 2 2
      services/web/test/unit/src/Project/ProjectControllerTests.js
  77. 1 1
      services/web/test/unit/src/Project/ProjectDeleterTests.js
  78. 1 1
      services/web/test/unit/src/Project/ProjectDetailsHandlerTests.js
  79. 1 1
      services/web/test/unit/src/Project/ProjectDuplicatorTests.js
  80. 2 2
      services/web/test/unit/src/Project/ProjectEntityMongoUpdateHandlerTests.js
  81. 1 1
      services/web/test/unit/src/Project/ProjectEntityUpdateHandlerTests.js
  82. 1 1
      services/web/test/unit/src/Project/ProjectGetterTests.js
  83. 2 2
      services/web/test/unit/src/Project/ProjectHelperTests.js
  84. 2 2
      services/web/test/unit/src/Project/ProjectListControllerTests.js
  85. 1 1
      services/web/test/unit/src/Project/ProjectOptionsHandlerTests.js
  86. 1 1
      services/web/test/unit/src/Project/ProjectRootDocManagerTests.js
  87. 1 1
      services/web/test/unit/src/SplitTests/SplitTestHandlerTests.js
  88. 2 0
      services/web/test/unit/src/SplitTests/SplitTestSessionHandlerTests.js
  89. 1 1
      services/web/test/unit/src/Subscription/FeaturesUpdaterTests.js
  90. 2 0
      services/web/test/unit/src/Subscription/RecurlyEventHandlerTests.js
  91. 1 1
      services/web/test/unit/src/Subscription/SubscriptionUpdaterTests.js
  92. 2 2
      services/web/test/unit/src/Subscription/TeamInvitesHandlerTests.js
  93. 1 1
      services/web/test/unit/src/Tags/TagsHandlerTests.js
  94. 1 1
      services/web/test/unit/src/ThirdPartyDataStore/TpdsControllerTests.js
  95. 1 1
      services/web/test/unit/src/ThirdPartyDataStore/TpdsProjectFlusherTests.js
  96. 1 1
      services/web/test/unit/src/ThirdPartyDataStore/TpdsUpdateHandlerTests.js
  97. 2 2
      services/web/test/unit/src/ThirdPartyDataStore/TpdsUpdateSenderTests.js
  98. 1 1
      services/web/test/unit/src/ThirdPartyDataStore/UpdateMergerTests.js
  99. 1 1
      services/web/test/unit/src/TokenAccess/TokenAccessControllerTests.js
  100. 2 2
      services/web/test/unit/src/TokenAccess/TokenAccessHandlerTests.js

+ 21 - 2
package-lock.json

@@ -44629,7 +44629,7 @@
         "minimist": "^1.2.7",
         "mmmagic": "^0.5.3",
         "moment": "^2.29.4",
-        "mongodb": "5.9.2",
+        "mongodb-legacy": "5.0.0",
         "mongoose": "^7.8.0",
         "multer": "overleaf/multer#e1df247fbf8e7590520d20ae3601eaef9f3d2e9e",
         "nocache": "^2.1.0",
@@ -45844,6 +45844,17 @@
         }
       }
     },
+    "services/web/node_modules/mongodb-legacy": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/mongodb-legacy/-/mongodb-legacy-5.0.0.tgz",
+      "integrity": "sha512-q2G+MRwde6114bCAF/EZLmMXSsebIKMHmzsfOJq6M/Tj4gr3wLT50+rJsJNkiR0e0kjFx3dllWjqwRR1n11Zsw==",
+      "dependencies": {
+        "mongodb": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=14.20.1"
+      }
+    },
     "services/web/node_modules/mongoose": {
       "version": "7.8.0",
       "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.8.0.tgz",
@@ -53393,7 +53404,7 @@
         "mocha-each": "^2.0.1",
         "mock-fs": "^5.1.2",
         "moment": "^2.29.4",
-        "mongodb": "5.9.2",
+        "mongodb-legacy": "5.0.0",
         "mongoose": "^7.8.0",
         "multer": "overleaf/multer#e1df247fbf8e7590520d20ae3601eaef9f3d2e9e",
         "nocache": "^2.1.0",
@@ -54199,6 +54210,14 @@
             "socks": "^2.7.1"
           }
         },
+        "mongodb-legacy": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/mongodb-legacy/-/mongodb-legacy-5.0.0.tgz",
+          "integrity": "sha512-q2G+MRwde6114bCAF/EZLmMXSsebIKMHmzsfOJq6M/Tj4gr3wLT50+rJsJNkiR0e0kjFx3dllWjqwRR1n11Zsw==",
+          "requires": {
+            "mongodb": "^5.0.0"
+          }
+        },
         "mongoose": {
           "version": "7.8.0",
           "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.8.0.tgz",

+ 1 - 1
services/web/app/src/Features/Authorization/AuthorizationManager.js

@@ -1,5 +1,5 @@
 const { callbackify } = require('util')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const CollaboratorsGetter = require('../Collaborators/CollaboratorsGetter')
 const CollaboratorsHandler = require('../Collaborators/CollaboratorsHandler')
 const ProjectGetter = require('../Project/ProjectGetter')

+ 1 - 1
services/web/app/src/Features/Authorization/AuthorizationMiddleware.js

@@ -1,6 +1,6 @@
 const AuthorizationManager = require('./AuthorizationManager')
 const logger = require('@overleaf/logger')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Errors = require('../Errors/Errors')
 const HttpErrorHandler = require('../Errors/HttpErrorHandler')
 const AuthenticationController = require('../Authentication/AuthenticationController')

+ 1 - 1
services/web/app/src/Features/Collaborators/CollaboratorsController.js

@@ -1,6 +1,6 @@
 const OError = require('@overleaf/o-error')
 const HttpErrorHandler = require('../../Features/Errors/HttpErrorHandler')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const CollaboratorsHandler = require('./CollaboratorsHandler')
 const CollaboratorsGetter = require('./CollaboratorsGetter')
 const OwnershipTransferHandler = require('./OwnershipTransferHandler')

+ 1 - 1
services/web/app/src/Features/Collaborators/CollaboratorsGetter.js

@@ -1,6 +1,6 @@
 const { callbackify } = require('util')
 const pLimit = require('p-limit')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const OError = require('@overleaf/o-error')
 const { Project } = require('../../models/Project')
 const UserGetter = require('../User/UserGetter')

+ 1 - 1
services/web/app/src/Features/Helpers/Mongo.js

@@ -1,5 +1,5 @@
 const OError = require('@overleaf/o-error')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { ObjectId: MongooseObjectId } = require('mongoose').mongo
 
 function _getObjectIdInstance(id) {

+ 1 - 1
services/web/app/src/Features/History/HistoryRangesSupportMigration.js

@@ -1,7 +1,7 @@
 // @ts-check
 
 const { callbackify } = require('util')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const OError = require('@overleaf/o-error')
 const logger = require('@overleaf/logger')
 const HistoryManager = require('../History/HistoryManager')

+ 1 - 1
services/web/app/src/Features/InactiveData/InactiveProjectManager.js

@@ -4,7 +4,7 @@ const DocstoreManager = require('../Docstore/DocstoreManager')
 const ProjectGetter = require('../Project/ProjectGetter')
 const ProjectUpdateHandler = require('../Project/ProjectUpdateHandler')
 const { Project } = require('../../models/Project')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { READ_PREFERENCE_SECONDARY } = require('../../infrastructure/mongodb')
 const { callbackifyAll } = require('@overleaf/promise-utils')
 

+ 1 - 1
services/web/app/src/Features/Institutions/InstitutionsManager.js

@@ -2,7 +2,7 @@ const {
   callbackifyAll,
   promiseMapWithLimit,
 } = require('@overleaf/promise-utils')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Settings = require('@overleaf/settings')
 const logger = require('@overleaf/logger')
 const { fetchJson } = require('@overleaf/fetch-utils')

+ 1 - 1
services/web/app/src/Features/Project/FolderStructureBuilder.js

@@ -1,6 +1,6 @@
 const Path = require('path')
 const OError = require('@overleaf/o-error')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 module.exports = { buildFolderStructure }
 

+ 1 - 1
services/web/app/src/Features/Project/ProjectCollabratecDetailsHandler.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { Project } = require('../../models/Project')
 const { callbackifyAll } = require('@overleaf/promise-utils')
 

+ 1 - 1
services/web/app/src/Features/Project/ProjectController.js

@@ -5,7 +5,7 @@ const { setTimeout } = require('timers/promises')
 const pProps = require('p-props')
 const logger = require('@overleaf/logger')
 const { expressify } = require('@overleaf/promise-utils')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const ProjectDeleter = require('./ProjectDeleter')
 const ProjectDuplicator = require('./ProjectDuplicator')
 const ProjectCreationHandler = require('./ProjectCreationHandler')

+ 1 - 1
services/web/app/src/Features/Project/ProjectCreationHandler.js

@@ -1,7 +1,7 @@
 const OError = require('@overleaf/o-error')
 const metrics = require('@overleaf/metrics')
 const Settings = require('@overleaf/settings')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Features = require('../../infrastructure/Features')
 const { Project } = require('../../models/Project')
 const { Folder } = require('../../models/Folder')

+ 1 - 1
services/web/app/src/Features/Project/ProjectEntityMongoUpdateHandler.js

@@ -2,7 +2,7 @@ const { callbackify } = require('util')
 const { callbackifyMultiResult } = require('@overleaf/promise-utils')
 const logger = require('@overleaf/logger')
 const path = require('path')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Settings = require('@overleaf/settings')
 const OError = require('@overleaf/o-error')
 const CooldownManager = require('../Cooldown/CooldownManager')

+ 1 - 1
services/web/app/src/Features/Project/ProjectHelper.js

@@ -1,5 +1,5 @@
 // ts-check
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const _ = require('lodash')
 const { promisify } = require('util')
 const Settings = require('@overleaf/settings')

+ 1 - 1
services/web/app/src/Features/SplitTests/SplitTestSessionHandler.js

@@ -1,6 +1,6 @@
 const { callbackify } = require('util')
 const _ = require('lodash')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const logger = require('@overleaf/logger')
 const Metrics = require('@overleaf/metrics')
 const SessionManager = require('../Authentication/SessionManager')

+ 1 - 1
services/web/app/src/Features/Subscription/RecurlyEventHandler.js

@@ -1,6 +1,6 @@
 const AnalyticsManager = require('../Analytics/AnalyticsManager')
 const SubscriptionEmailHandler = require('./SubscriptionEmailHandler')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const INVOICE_SUBSCRIPTION_LIMIT = 10
 

+ 1 - 1
services/web/app/src/Features/Subscription/TeamInvitesHandler.js

@@ -3,7 +3,7 @@ const crypto = require('crypto')
 
 const settings = require('@overleaf/settings')
 const Modules = require('../../infrastructure/Modules')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const { Subscription } = require('../../models/Subscription')
 const { SSOConfig } = require('../../models/SSOConfig')

+ 1 - 1
services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const _ = require('lodash')
 const { callbackify } = require('util')
 const logger = require('@overleaf/logger')

+ 1 - 1
services/web/app/src/Features/TokenAccess/TokenAccessHandler.js

@@ -1,7 +1,7 @@
 const { Project } = require('../../models/Project')
 const PublicAccessLevels = require('../Authorization/PublicAccessLevels')
 const PrivilegeLevels = require('../Authorization/PrivilegeLevels')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Metrics = require('@overleaf/metrics')
 const Settings = require('@overleaf/settings')
 const logger = require('@overleaf/logger')

+ 1 - 1
services/web/app/src/Features/User/SAMLIdentityManager.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const EmailHandler = require('../Email/EmailHandler')
 const Errors = require('../Errors/Errors')
 const InstitutionsAPI = require('../Institutions/InstitutionsAPI')

+ 1 - 1
services/web/app/src/Features/User/UserInfoController.js

@@ -1,6 +1,6 @@
 const UserGetter = require('./UserGetter')
 const SessionManager = require('../Authentication/SessionManager')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 function getLoggedInUsersPersonalInfo(req, res, next) {
   const userId = SessionManager.getLoggedInUserId(req.session)

+ 1 - 1
services/web/app/src/Features/UserMembership/UserMembershipHandler.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { promisifyAll, callbackify } = require('@overleaf/promise-utils')
 const EntityModels = {
   Institution: require('../../models/Institution').Institution,

+ 1 - 1
services/web/app/src/infrastructure/Validation.js

@@ -1,5 +1,5 @@
 const { Joi: CelebrateJoi, celebrate, errors } = require('celebrate')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const objectIdValidator = {
   type: 'objectId',

+ 1 - 1
services/web/app/src/infrastructure/mongodb.js

@@ -1,4 +1,4 @@
-const mongodb = require('mongodb')
+const mongodb = require('mongodb-legacy')
 const OError = require('@overleaf/o-error')
 const Settings = require('@overleaf/settings')
 const Mongoose = require('./Mongoose')

+ 1 - 1
services/web/migrations/20231105000000_move_doc_versions_from_docops_to_docs.js

@@ -1,4 +1,4 @@
-const { ObjectId, ReadPreference } = require('mongodb')
+const { ObjectId, ReadPreference } = require('mongodb-legacy')
 
 const BATCH_SIZE = parseInt(process.env.BATCH_SIZE || '1000', 10)
 const MIN_ID = process.env.MIN_ID

+ 1 - 1
services/web/modules/history-v1/test/acceptance/src/LabelsTests.js

@@ -12,7 +12,7 @@
  */
 const _ = require('lodash')
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const User = require('../../../../../test/acceptance/src/helpers/User')
 const MockProjectHistoryApiClass = require('../../../../../test/acceptance/src/mocks/MockProjectHistoryApi')

+ 1 - 1
services/web/modules/history-v1/test/acceptance/src/ProjectStructureTests.js

@@ -1,5 +1,5 @@
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Path = require('path')
 const fs = require('fs')
 const Settings = require('@overleaf/settings')

+ 1 - 1
services/web/modules/server-ce-scripts/scripts/check-mongodb.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { waitForDb, db } = require('../../../app/src/infrastructure/mongodb')
 const { getMongoClient } = require('../../../app/src/infrastructure/Mongoose')
 

+ 1 - 1
services/web/package.json

@@ -137,7 +137,7 @@
     "minimist": "^1.2.7",
     "mmmagic": "^0.5.3",
     "moment": "^2.29.4",
-    "mongodb": "5.9.2",
+    "mongodb-legacy": "5.0.0",
     "mongoose": "^7.8.0",
     "multer": "overleaf/multer#e1df247fbf8e7590520d20ae3601eaef9f3d2e9e",
     "nocache": "^2.1.0",

+ 1 - 1
services/web/scripts/analytics/sync_group_subscription_memberships.js

@@ -7,7 +7,7 @@ const {
 } = require('../../app/src/models/DeletedSubscription')
 const minimist = require('minimist')
 const _ = require('lodash')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 let FETCH_LIMIT, COMMIT, VERBOSE
 

+ 1 - 1
services/web/scripts/back_fill_dummy_doc_meta.js

@@ -1,5 +1,5 @@
 const { promisify } = require('util')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const {
   db,
   waitForDb,

+ 1 - 1
services/web/scripts/delete_dangling_file_refs.js

@@ -3,7 +3,7 @@
  */
 
 const minimist = require('minimist')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const { db, waitForDb } = require('../app/src/infrastructure/mongodb')
 const Errors = require('../app/src/Features/Errors/Errors')

+ 1 - 1
services/web/scripts/delete_orphaned_chat_threads.js

@@ -13,7 +13,7 @@ process.env.BATCH_SIZE = BATCH_SIZE
 process.env.MONGO_SOCKET_TIMEOUT =
   parseInt(process.env.MONGO_SOCKET_TIMEOUT, 10) || 600000
 
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { promiseMapWithLimit } = require('@overleaf/promise-utils')
 const { batchedUpdate } = require('./helpers/batchedUpdate')
 const ChatApiHandler = require('../app/src/Features/Chat/ChatApiHandler')

+ 1 - 1
services/web/scripts/delete_orphaned_docs_online_check.js

@@ -1,6 +1,6 @@
 const DocstoreManager = require('../app/src/Features/Docstore/DocstoreManager')
 const { promisify } = require('util')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const {
   db,
   waitForDb,

+ 1 - 1
services/web/scripts/delete_subscriptions.js

@@ -3,7 +3,7 @@ const SubscriptionUpdater = require('../app/src/Features/Subscription/Subscripti
 const minimist = require('minimist')
 
 const { waitForDb } = require('../app/src/infrastructure/mongodb')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const run = async () => {
   for (const id of ids) {

+ 1 - 1
services/web/scripts/fix_malformed_filetree.js

@@ -5,7 +5,7 @@
  * This is the output format of each line in the find_malformed_filetrees.js
  * script.
  */
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { db, waitForDb } = require('../app/src/infrastructure/mongodb')
 const ProjectLocator = require('../app/src/Features/Project/ProjectLocator')
 

+ 1 - 1
services/web/scripts/force_doc_flush.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { db, waitForDb } = require('../app/src/infrastructure/mongodb')
 const DocumentUpdaterHandler = require('../app/src/Features/DocumentUpdater/DocumentUpdaterHandler')
 

+ 1 - 1
services/web/scripts/helpers/batchedUpdate.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const {
   db,
   waitForDb,

+ 1 - 1
services/web/scripts/oauth/register_client.js

@@ -1,5 +1,5 @@
 const minimist = require('minimist')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { waitForDb, db } = require('../../app/src/infrastructure/mongodb')
 const {
   hashSecret,

+ 1 - 1
services/web/scripts/remove_deleted_users_from_token_access_refs.js

@@ -1,6 +1,6 @@
 const { db, waitForDb } = require('../app/src/infrastructure/mongodb')
 const { batchedUpdate } = require('./helpers/batchedUpdate')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const minimist = require('minimist')
 const CollaboratorsHandler = require('../app/src/Features/Collaborators/CollaboratorsHandler')
 const {

+ 1 - 1
services/web/scripts/set_tex_live_image.js

@@ -1,5 +1,5 @@
 const Settings = require('@overleaf/settings')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { Project } = require('../app/src/models/Project')
 
 async function main() {

+ 1 - 1
services/web/test/acceptance/bootstrap.js

@@ -8,4 +8,4 @@ chai.use(require('chai-exclude'))
 chai.config.truncateThreshold = 0
 
 // ensure every ObjectId has the id string as a property for correct comparisons
-require('mongodb').ObjectId.cacheHexString = true
+require('mongodb-legacy').ObjectId.cacheHexString = true

+ 1 - 1
services/web/test/acceptance/src/AuthenticationTests.js

@@ -1,5 +1,5 @@
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Settings = require('@overleaf/settings')
 const User = require('./helpers/User').promises
 

+ 1 - 1
services/web/test/acceptance/src/ConvertArchivedState.js

@@ -1,6 +1,6 @@
 const { expect } = require('chai')
 const { exec } = require('child_process')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const User = require('./helpers/User').promises
 

+ 1 - 1
services/web/test/acceptance/src/DocUpdateTests.js

@@ -2,7 +2,7 @@ const User = require('./helpers/User')
 const request = require('./helpers/request')
 const { expect } = require('chai')
 const settings = require('@overleaf/settings')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 describe('DocUpdate', function () {
   beforeEach(function (done) {

+ 1 - 1
services/web/test/acceptance/src/MongoHelper.js

@@ -1,6 +1,6 @@
 const { expect } = require('chai')
 
-const { ObjectId: NativeObjectId } = require('mongodb')
+const { ObjectId: NativeObjectId } = require('mongodb-legacy')
 const { ObjectId: MongooseObjectId } = require('mongoose').mongo
 
 const { User: UserModel } = require('../../../app/src/models/User')

+ 1 - 1
services/web/test/acceptance/src/ProjectCRUDTests.js

@@ -1,7 +1,7 @@
 const { expect } = require('chai')
 const User = require('./helpers/User').promises
 const { Project } = require('../../../app/src/models/Project')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const cheerio = require('cheerio')
 const { Subscription } = require('../../../app/src/models/Subscription')
 const Features = require('../../../app/src/infrastructure/Features')

+ 1 - 1
services/web/test/acceptance/src/ProjectStructureTests.js

@@ -1,5 +1,5 @@
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Path = require('path')
 const fs = require('fs')
 

+ 1 - 1
services/web/test/acceptance/src/helpers/Institution.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const InstitutionModel =
   require('../../../../app/src/models/Institution').Institution
 

+ 1 - 1
services/web/test/acceptance/src/helpers/Publisher.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const PublisherModel = require('../../../../app/src/models/Publisher').Publisher
 const { callbackifyClass } = require('@overleaf/promise-utils')
 

+ 1 - 1
services/web/test/acceptance/src/helpers/RecurlySubscription.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Subscription = require('./Subscription')
 const MockRecurlyApiClass = require('../mocks/MockRecurlyApi')
 const RecurlyWrapper = require('../../../../app/src/Features/Subscription/RecurlyWrapper')

+ 1 - 1
services/web/test/acceptance/src/helpers/UserHelper.js

@@ -8,7 +8,7 @@ const UserUpdater = require('../../../../app/src/Features/User/UserUpdater')
 const moment = require('moment')
 const fetch = require('node-fetch')
 const { db } = require('../../../../app/src/infrastructure/mongodb')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const {
   UserAuditLogEntry,
 } = require('../../../../app/src/models/UserAuditLogEntry')

+ 1 - 1
services/web/test/acceptance/src/mocks/MockProjectHistoryApi.js

@@ -1,6 +1,6 @@
 const AbstractMockApi = require('./AbstractMockApi')
 const _ = require('lodash')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const {
   plainTextResponse,
 } = require('../../../../app/src/infrastructure/Response')

+ 1 - 1
services/web/test/unit/bootstrap.js

@@ -23,7 +23,7 @@ chai.config.truncateThreshold = 0
 require('sinon-mongoose')
 
 // ensure every ObjectId has the id string as a property for correct comparisons
-require('mongodb').ObjectId.cacheHexString = true
+require('mongodb-legacy').ObjectId.cacheHexString = true
 
 /*
  * Global stubs

+ 1 - 1
services/web/test/unit/src/Analytics/AnalyticsManagerTests.js

@@ -4,7 +4,7 @@ const sinon = require('sinon')
 const MockRequest = require('../helpers/MockRequest')
 const MockResponse = require('../helpers/MockResponse')
 const { assert } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH = path.join(
   __dirname,

+ 1 - 1
services/web/test/unit/src/Authentication/AuthenticationControllerTests.js

@@ -6,7 +6,7 @@ const SandboxedModule = require('sandboxed-module')
 const tk = require('timekeeper')
 const MockRequest = require('../helpers/MockRequest')
 const MockResponse = require('../helpers/MockResponse')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const AuthenticationErrors = require('../../../../app/src/Features/Authentication/AuthenticationErrors')
 
 describe('AuthenticationController', function () {

+ 1 - 1
services/web/test/unit/src/Authentication/AuthenticationManagerTests.js

@@ -1,7 +1,7 @@
 const sinon = require('sinon')
 const { expect } = require('chai')
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const AuthenticationErrors = require('../../../../app/src/Features/Authentication/AuthenticationErrors')
 const tk = require('timekeeper')
 

+ 1 - 1
services/web/test/unit/src/Authentication/SessionManagerTests.js

@@ -4,7 +4,7 @@ const modulePath =
   '../../../../app/src/Features/Authentication/SessionManager.js'
 const SandboxedModule = require('sandboxed-module')
 const tk = require('timekeeper')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 describe('SessionManager', function () {
   beforeEach(function () {

+ 2 - 2
services/web/test/unit/src/Authorization/AuthorizationManagerTests.js

@@ -6,7 +6,7 @@ const SandboxedModule = require('sandboxed-module')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 const PrivilegeLevels = require('../../../../app/src/Features/Authorization/PrivilegeLevels')
 const PublicAccessLevels = require('../../../../app/src/Features/Authorization/PublicAccessLevels')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 describe('AuthorizationManager', function () {
   beforeEach(function () {
@@ -48,7 +48,7 @@ describe('AuthorizationManager', function () {
 
     this.AuthorizationManager = SandboxedModule.require(modulePath, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         '../Collaborators/CollaboratorsGetter': this.CollaboratorsGetter,
         '../Collaborators/CollaboratorsHandler': this.CollaboratorsHandler,
         '../Project/ProjectGetter': this.ProjectGetter,

+ 2 - 1
services/web/test/unit/src/Authorization/AuthorizationMiddlewareTests.js

@@ -1,7 +1,7 @@
 const sinon = require('sinon')
 const { expect } = require('chai')
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 
 const MODULE_PATH =
@@ -39,6 +39,7 @@ describe('AuthorizationMiddleware', function () {
       requires: {
         './AuthorizationManager': this.AuthorizationManager,
         '../Errors/HttpErrorHandler': this.HttpErrorHandler,
+        'mongodb-legacy': { ObjectId },
         '../Authentication/AuthenticationController':
           this.AuthenticationController,
         '../Authentication/SessionManager': this.SessionManager,

+ 2 - 2
services/web/test/unit/src/Collaborators/CollaboratorsControllerTests.js

@@ -1,7 +1,7 @@
 const sinon = require('sinon')
 const { expect } = require('chai')
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 const MockRequest = require('../helpers/MockRequest')
 const MockResponse = require('../helpers/MockResponse')
@@ -79,7 +79,7 @@ describe('CollaboratorsController', function () {
 
     this.CollaboratorsController = SandboxedModule.require(MODULE_PATH, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         './CollaboratorsHandler': this.CollaboratorsHandler,
         './CollaboratorsGetter': this.CollaboratorsGetter,
         './OwnershipTransferHandler': this.OwnershipTransferHandler,

+ 2 - 2
services/web/test/unit/src/Collaborators/CollaboratorsGetterTests.js

@@ -2,7 +2,7 @@ const Path = require('path')
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { Project } = require('../helpers/models/Project')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 
@@ -53,7 +53,7 @@ describe('CollaboratorsGetter', function () {
     }
     this.CollaboratorsGetter = SandboxedModule.require(MODULE_PATH, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         '../User/UserGetter': this.UserGetter,
         '../../models/Project': { Project },
         '../Project/ProjectGetter': this.ProjectGetter,

+ 1 - 1
services/web/test/unit/src/Collaborators/CollaboratorsHandlerTests.js

@@ -5,7 +5,7 @@ const sinon = require('sinon')
 const { expect } = require('chai')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 const { Project } = require('../helpers/models/Project')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH = path.join(
   __dirname,

+ 1 - 1
services/web/test/unit/src/Collaborators/CollaboratorsInviteControllerTests.js

@@ -3,7 +3,7 @@ const { expect } = require('chai')
 const SandboxedModule = require('sandboxed-module')
 const MockRequest = require('../helpers/MockRequest')
 const MockResponse = require('../helpers/MockResponse')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 const _ = require('lodash')
 

+ 1 - 1
services/web/test/unit/src/Collaborators/CollaboratorsInviteHandlerTests.js

@@ -1,7 +1,7 @@
 const sinon = require('sinon')
 const { expect } = require('chai')
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Crypto = require('crypto')
 
 const MODULE_PATH =

+ 1 - 1
services/web/test/unit/src/Collaborators/OwnershipTransferHandlerTests.js

@@ -3,7 +3,7 @@ const sinon = require('sinon')
 const { expect } = require('chai')
 const PrivilegeLevels = require('../../../../app/src/Features/Authorization/PrivilegeLevels')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH =
   '../../../../app/src/Features/Collaborators/OwnershipTransferHandler'

+ 1 - 1
services/web/test/unit/src/DocumentUpdater/DocumentUpdaterHandlerTests.js

@@ -1,7 +1,7 @@
 const sinon = require('sinon')
 const SandboxedModule = require('sandboxed-module')
 const path = require('path')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const modulePath = path.join(
   __dirname,
   '../../../../app/src/Features/DocumentUpdater/DocumentUpdaterHandler'

+ 1 - 1
services/web/test/unit/src/Editor/EditorControllerTests.js

@@ -21,7 +21,7 @@ const modulePath = require('path').join(
 )
 const MockClient = require('../helpers/MockClient')
 const assert = require('assert')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 describe('EditorController', function () {
   beforeEach(function () {

+ 1 - 1
services/web/test/unit/src/Editor/EditorHttpControllerTests.js

@@ -2,7 +2,7 @@
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 const MockRequest = require('../helpers/MockRequest')
 const MockResponse = require('../helpers/MockResponse')

+ 1 - 1
services/web/test/unit/src/History/HistoryManagerTests.js

@@ -1,7 +1,7 @@
 const { expect } = require('chai')
 const sinon = require('sinon')
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH = '../../../../app/src/Features/History/HistoryManager'
 

+ 2 - 2
services/web/test/unit/src/InactiveData/InactiveProjectManagerTests.js

@@ -5,7 +5,7 @@ const modulePath = path.join(
   __dirname,
   '../../../../app/src/Features/InactiveData/InactiveProjectManager'
 )
-const { ObjectId, ReadPreference } = require('mongodb')
+const { ObjectId, ReadPreference } = require('mongodb-legacy')
 const { expect } = require('chai')
 
 describe('InactiveProjectManager', function () {
@@ -26,7 +26,7 @@ describe('InactiveProjectManager', function () {
     this.ProjectGetter = { promises: { getProject: sinon.stub() } }
     this.InactiveProjectManager = SandboxedModule.require(modulePath, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         '@overleaf/settings': this.settings,
         '../Docstore/DocstoreManager': this.DocstoreManager,
         '../Project/ProjectUpdateHandler': this.ProjectUpdateHandler,

+ 2 - 2
services/web/test/unit/src/Institutions/InstitutionsManagerTests.js

@@ -2,7 +2,7 @@ const SandboxedModule = require('sandboxed-module')
 const path = require('path')
 const sinon = require('sinon')
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const modulePath = path.join(
   __dirname,
   '../../../../app/src/Features/Institutions/InstitutionsManager'
@@ -136,7 +136,7 @@ describe('InstitutionsManager', function () {
         '../Subscription/SubscriptionLocator': this.SubscriptionLocator,
         '../../models/Institution': this.InstitutionModel,
         '../../models/Subscription': SubscriptionModel,
-        mongodb: this.Mongo,
+        'mongodb-legacy': this.Mongo,
         '@overleaf/settings': {
           features: { professional: { 'test-feature': true } },
         },

+ 4 - 2
services/web/test/unit/src/Project/FolderStructureBuilderTests.js

@@ -1,6 +1,6 @@
 const { expect } = require('chai')
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const sinon = require('sinon')
 
 const MODULE_PATH =
@@ -8,7 +8,9 @@ const MODULE_PATH =
 
 describe('FolderStructureBuilder', function () {
   beforeEach(function () {
-    this.FolderStructureBuilder = SandboxedModule.require(MODULE_PATH, {})
+    this.FolderStructureBuilder = SandboxedModule.require(MODULE_PATH, {
+      requires: { 'mongodb-legacy': { ObjectId } },
+    })
   })
 
   describe('buildFolderStructure', function () {

+ 2 - 2
services/web/test/unit/src/Project/ProjectCollabratecDetailsTest.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Path = require('path')
 const SandboxedModule = require('sandboxed-module')
 const { expect } = require('chai')
@@ -19,7 +19,7 @@ describe('ProjectCollabratecDetailsHandler', function () {
       modulePath,
       {
         requires: {
-          mongodb: { ObjectId },
+          'mongodb-legacy': { ObjectId },
           '../../models/Project': { Project: this.ProjectModel },
         },
       }

+ 2 - 2
services/web/test/unit/src/Project/ProjectControllerTests.js

@@ -2,7 +2,7 @@ const SandboxedModule = require('sandboxed-module')
 const path = require('path')
 const sinon = require('sinon')
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH = path.join(
   __dirname,
@@ -203,7 +203,7 @@ describe('ProjectController', function () {
 
     this.ProjectController = SandboxedModule.require(MODULE_PATH, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         '@overleaf/settings': this.settings,
         '@overleaf/metrics': this.Metrics,
         '../SplitTests/SplitTestHandler': this.SplitTestHandler,

+ 1 - 1
services/web/test/unit/src/Project/ProjectDeleterTests.js

@@ -6,7 +6,7 @@ const tk = require('timekeeper')
 const moment = require('moment')
 const { Project } = require('../helpers/models/Project')
 const { DeletedProject } = require('../helpers/models/DeletedProject')
-const { ObjectId, ReadPreference } = require('mongodb')
+const { ObjectId, ReadPreference } = require('mongodb-legacy')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 
 describe('ProjectDeleter', function () {

+ 1 - 1
services/web/test/unit/src/Project/ProjectDetailsHandlerTests.js

@@ -1,7 +1,7 @@
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 const ProjectHelper = require('../../../../app/src/Features/Project/ProjectHelper')
 

+ 1 - 1
services/web/test/unit/src/Project/ProjectDuplicatorTests.js

@@ -1,7 +1,7 @@
 const { expect } = require('chai')
 const sinon = require('sinon')
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH = '../../../../app/src/Features/Project/ProjectDuplicator.js'
 

+ 2 - 2
services/web/test/unit/src/Project/ProjectEntityMongoUpdateHandlerTests.js

@@ -2,7 +2,7 @@ const { expect } = require('chai')
 const sinon = require('sinon')
 const tk = require('timekeeper')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const SandboxedModule = require('sandboxed-module')
 const { DeletedFile } = require('../helpers/models/DeletedFile')
 const { Project } = require('../helpers/models/Project')
@@ -191,7 +191,7 @@ describe('ProjectEntityMongoUpdateHandler', function () {
 
     this.subject = SandboxedModule.require(MODULE_PATH, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         '@overleaf/settings': this.Settings,
         '../Cooldown/CooldownManager': this.CooldownManager,
         '../../models/Folder': { Folder: this.FolderModel },

+ 1 - 1
services/web/test/unit/src/Project/ProjectEntityUpdateHandlerTests.js

@@ -2,7 +2,7 @@ const { expect } = require('chai')
 const sinon = require('sinon')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH =
   '../../../../app/src/Features/Project/ProjectEntityUpdateHandler'

+ 1 - 1
services/web/test/unit/src/Project/ProjectGetterTests.js

@@ -2,7 +2,7 @@ const sinon = require('sinon')
 const { expect } = require('chai')
 const modulePath = '../../../../app/src/Features/Project/ProjectGetter.js'
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 describe('ProjectGetter', function () {
   beforeEach(function () {

+ 2 - 2
services/web/test/unit/src/Project/ProjectHelperTests.js

@@ -1,6 +1,6 @@
 const { expect } = require('chai')
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH = '../../../../app/src/Features/Project/ProjectHelper.js'
 
@@ -37,7 +37,7 @@ describe('ProjectHelper', function () {
 
     this.ProjectHelper = SandboxedModule.require(MODULE_PATH, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         '@overleaf/settings': this.Settings,
       },
     })

+ 2 - 2
services/web/test/unit/src/Project/ProjectListControllerTests.js

@@ -2,7 +2,7 @@ const SandboxedModule = require('sandboxed-module')
 const path = require('path')
 const sinon = require('sinon')
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 
 const MODULE_PATH = path.join(
@@ -141,7 +141,7 @@ describe('ProjectListController', function () {
 
     this.ProjectListController = SandboxedModule.require(MODULE_PATH, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         '@overleaf/settings': this.settings,
         '@overleaf/metrics': this.Metrics,
         '../SplitTests/SplitTestHandler': this.SplitTestHandler,

+ 1 - 1
services/web/test/unit/src/Project/ProjectOptionsHandlerTests.js

@@ -17,7 +17,7 @@ const { expect } = require('chai')
 const modulePath =
   '../../../../app/src/Features/Project/ProjectOptionsHandler.js'
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 describe('ProjectOptionsHandler', function () {
   const projectId = '4eecaffcbffa66588e000008'

+ 1 - 1
services/web/test/unit/src/Project/ProjectRootDocManagerTests.js

@@ -12,7 +12,7 @@
  * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  */
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const sinon = require('sinon')
 const modulePath =
   '../../../../app/src/Features/Project/ProjectRootDocManager.js'

+ 1 - 1
services/web/test/unit/src/SplitTests/SplitTestHandlerTests.js

@@ -1,7 +1,7 @@
 const Path = require('path')
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { assert, expect } = require('chai')
 const MockRequest = require('../helpers/MockRequest')
 const MockResponse = require('../helpers/MockResponse')

+ 2 - 0
services/web/test/unit/src/SplitTests/SplitTestSessionHandlerTests.js

@@ -2,6 +2,7 @@ const Path = require('path')
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
 const { expect } = require('chai')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH = Path.join(
   __dirname,
@@ -59,6 +60,7 @@ describe('SplitTestSessionHandler', function () {
         './SplitTestCache': this.SplitTestCache,
         './SplitTestUserGetter': this.SplitTestUserGetter,
         '@overleaf/metrics': this.Metrics,
+        'mongodb-legacy': { ObjectId },
       },
     })
   })

+ 1 - 1
services/web/test/unit/src/Subscription/FeaturesUpdaterTests.js

@@ -1,7 +1,7 @@
 const SandboxedModule = require('sandboxed-module')
 const { expect } = require('chai')
 const sinon = require('sinon')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH = '../../../../app/src/Features/Subscription/FeaturesUpdater'
 

+ 2 - 0
services/web/test/unit/src/Subscription/RecurlyEventHandlerTests.js

@@ -1,4 +1,5 @@
 const SandboxedModule = require('sandboxed-module')
+const { ObjectId } = require('mongodb-legacy')
 const sinon = require('sinon')
 const modulePath =
   '../../../../app/src/Features/Subscription/RecurlyEventHandler'
@@ -27,6 +28,7 @@ describe('RecurlyEventHandler', function () {
 
     this.RecurlyEventHandler = SandboxedModule.require(modulePath, {
       requires: {
+        'mongodb-legacy': { ObjectId },
         './SubscriptionEmailHandler': (this.SubscriptionEmailHandler = {
           sendTrialOnboardingEmail: sinon.stub(),
         }),

+ 1 - 1
services/web/test/unit/src/Subscription/SubscriptionUpdaterTests.js

@@ -3,7 +3,7 @@ const sinon = require('sinon')
 const modulePath =
   '../../../../app/src/Features/Subscription/SubscriptionUpdater'
 const { assert, expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 describe('SubscriptionUpdater', function () {
   beforeEach(function () {

+ 2 - 2
services/web/test/unit/src/Subscription/TeamInvitesHandlerTests.js

@@ -4,7 +4,7 @@ const { expect } = require('chai')
 const modulePath =
   '../../../../app/src/Features/Subscription/TeamInvitesHandler'
 
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 
 describe('TeamInvitesHandler', function () {
@@ -111,7 +111,7 @@ describe('TeamInvitesHandler', function () {
 
     this.TeamInvitesHandler = SandboxedModule.require(modulePath, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         crypto: this.crypto,
         '@overleaf/settings': { siteUrl: 'http://example.com' },
         '../../models/TeamInvite': { TeamInvite: (this.TeamInvite = {}) },

+ 1 - 1
services/web/test/unit/src/Tags/TagsHandlerTests.js

@@ -2,7 +2,7 @@ const SandboxedModule = require('sandboxed-module')
 const { expect } = require('chai')
 const sinon = require('sinon')
 const { Tag } = require('../helpers/models/Tag')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const modulePath = require('path').join(
   __dirname,
   '../../../../app/src/Features/Tags/TagsHandler.js'

+ 1 - 1
services/web/test/unit/src/ThirdPartyDataStore/TpdsControllerTests.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { expect } = require('chai')
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')

+ 1 - 1
services/web/test/unit/src/ThirdPartyDataStore/TpdsProjectFlusherTests.js

@@ -1,7 +1,7 @@
 const { expect } = require('chai')
 const sinon = require('sinon')
 const SandboxedModule = require('sandboxed-module')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const { Project } = require('../helpers/models/Project')
 
 const MODULE_PATH =

+ 1 - 1
services/web/test/unit/src/ThirdPartyDataStore/TpdsUpdateHandlerTests.js

@@ -1,7 +1,7 @@
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const Errors = require('../../../../app/src/Features/Errors/Errors')
 
 const MODULE_PATH =

+ 2 - 2
services/web/test/unit/src/ThirdPartyDataStore/TpdsUpdateSenderTests.js

@@ -1,4 +1,4 @@
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const SandboxedModule = require('sandboxed-module')
 const path = require('path')
 const sinon = require('sinon')
@@ -72,7 +72,7 @@ describe('TpdsUpdateSender', function () {
     }
     this.TpdsUpdateSender = SandboxedModule.require(modulePath, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         '@overleaf/settings': this.settings,
         '@overleaf/fetch-utils': this.FetchUtils,
         '../Collaborators/CollaboratorsGetter': this.CollaboratorsGetter,

+ 1 - 1
services/web/test/unit/src/ThirdPartyDataStore/UpdateMergerTests.js

@@ -2,7 +2,7 @@ const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
 const { expect } = require('chai')
 const { Writable } = require('stream')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 const MODULE_PATH =
   '../../../../app/src/Features/ThirdPartyDataStore/UpdateMerger.js'

+ 1 - 1
services/web/test/unit/src/TokenAccess/TokenAccessControllerTests.js

@@ -1,7 +1,7 @@
 const SandboxedModule = require('sandboxed-module')
 const sinon = require('sinon')
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 const MockRequest = require('../helpers/MockRequest')
 const MockResponse = require('../helpers/MockResponse')
 const PrivilegeLevels = require('../../../../app/src/Features/Authorization/PrivilegeLevels')

+ 2 - 2
services/web/test/unit/src/TokenAccess/TokenAccessHandlerTests.js

@@ -6,7 +6,7 @@ const modulePath = path.join(
   '../../../../app/src/Features/TokenAccess/TokenAccessHandler'
 )
 const { expect } = require('chai')
-const { ObjectId } = require('mongodb')
+const { ObjectId } = require('mongodb-legacy')
 
 describe('TokenAccessHandler', function () {
   beforeEach(function () {
@@ -21,7 +21,7 @@ describe('TokenAccessHandler', function () {
     this.req = {}
     this.TokenAccessHandler = SandboxedModule.require(modulePath, {
       requires: {
-        mongodb: { ObjectId },
+        'mongodb-legacy': { ObjectId },
         '../../models/Project': { Project: (this.Project = {}) },
         '@overleaf/metrics': (this.Metrics = { inc: sinon.stub() }),
         '@overleaf/settings': (this.settings = {}),

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio