Просмотр исходного кода

Merge pull request #7986 from overleaf/jpa-eslint-8

[misc] upgrade eslint packages to the latest version everywhere

GitOrigin-RevId: f1480d4a171acef82fb26c4aa54be3a6088b0ab3
Jakob Ackermann 4 лет назад
Родитель
Сommit
f0bd6dda23
100 измененных файлов с 507 добавлено и 428 удалено
  1. 1 1
      libraries/access-token-encryptor/lib/js/AccessTokenEncryptor.js
  2. 3 3
      libraries/object-persistor/test/unit/GcsPersistorTests.js
  3. 4 4
      libraries/object-persistor/test/unit/S3PersistorTests.js
  4. 1 1
      libraries/redis-wrapper/test/unit/src/test.js
  5. 359 277
      package-lock.json
  6. 10 9
      package.json
  7. 1 1
      services/clsi/app/js/LocalCommandRunner.js
  8. 1 1
      services/clsi/app/js/OutputFileOptimiser.js
  9. 1 1
      services/clsi/app/js/SafeReader.js
  10. 1 1
      services/clsi/app/js/StaticServerForbidSymlinks.js
  11. 1 1
      services/clsi/app/js/UrlFetcher.js
  12. 2 2
      services/clsi/app/lib/pdfjs/FSStream.js
  13. 1 1
      services/clsi/test/unit/js/OutputFileOptimiserTests.js
  14. 1 1
      services/document-updater/app/js/sharejs/model.js
  15. 1 1
      services/document-updater/app/js/sharejs/server/model.js
  16. 1 1
      services/document-updater/app/js/sharejs/types/model.js
  17. 3 3
      services/filestore/test/unit/js/FileControllerTests.js
  18. 1 1
      services/filestore/test/unit/js/FileHandlerTests.js
  19. 1 1
      services/real-time/app/js/Router.js
  20. 4 4
      services/real-time/test/acceptance/libs/XMLHttpRequest.js
  21. 2 2
      services/track-changes/app/js/PackManager.js
  22. 10 0
      services/web/.eslintrc
  23. 1 1
      services/web/app.js
  24. 1 1
      services/web/app/src/Features/Authentication/AuthenticationController.js
  25. 1 1
      services/web/app/src/Features/Chat/ChatApiHandler.js
  26. 1 1
      services/web/app/src/Features/Chat/ChatController.js
  27. 1 1
      services/web/app/src/Features/Collaborators/CollaboratorsEmailHandler.js
  28. 1 1
      services/web/app/src/Features/Collaborators/CollaboratorsHandler.js
  29. 1 1
      services/web/app/src/Features/Collaborators/CollaboratorsInviteController.js
  30. 1 1
      services/web/app/src/Features/Collaborators/CollaboratorsInviteHandler.js
  31. 1 1
      services/web/app/src/Features/Compile/ClsiCookieManager.js
  32. 1 1
      services/web/app/src/Features/Compile/ClsiManager.js
  33. 1 1
      services/web/app/src/Features/Compile/ClsiStateManager.js
  34. 2 2
      services/web/app/src/Features/Compile/CompileController.js
  35. 1 1
      services/web/app/src/Features/Compile/CompileManager.js
  36. 1 1
      services/web/app/src/Features/Contacts/ContactManager.js
  37. 1 1
      services/web/app/src/Features/Cooldown/CooldownManager.js
  38. 1 1
      services/web/app/src/Features/Editor/EditorController.js
  39. 3 3
      services/web/app/src/Features/Errors/HttpErrorHandler.js
  40. 1 1
      services/web/app/src/Features/Exports/ExportsHandler.js
  41. 1 1
      services/web/app/src/Features/FileStore/FileHashManager.js
  42. 1 1
      services/web/app/src/Features/History/RestoreManager.js
  43. 1 1
      services/web/app/src/Features/InactiveData/InactiveProjectManager.js
  44. 1 1
      services/web/app/src/Features/Institutions/InstitutionsAPI.js
  45. 1 1
      services/web/app/src/Features/LinkedFiles/LinkedFilesHandler.js
  46. 1 1
      services/web/app/src/Features/LinkedFiles/ProjectFileAgent.js
  47. 1 1
      services/web/app/src/Features/Metadata/MetaHandler.js
  48. 1 1
      services/web/app/src/Features/Notifications/NotificationsBuilder.js
  49. 1 1
      services/web/app/src/Features/PasswordReset/PasswordResetHandler.js
  50. 1 1
      services/web/app/src/Features/Project/ProjectCollabratecDetailsHandler.js
  51. 1 1
      services/web/app/src/Features/Project/ProjectController.js
  52. 3 6
      services/web/app/src/Features/Project/ProjectDeleter.js
  53. 1 1
      services/web/app/src/Features/Project/ProjectHistoryHandler.js
  54. 1 1
      services/web/app/src/Features/Project/ProjectRootDocManager.js
  55. 1 1
      services/web/app/src/Features/Project/ProjectUpdateHandler.js
  56. 1 1
      services/web/app/src/Features/Publishers/PublishersGetter.js
  57. 1 1
      services/web/app/src/Features/References/ReferencesHandler.js
  58. 1 1
      services/web/app/src/Features/ServerAdmin/AdminController.js
  59. 2 2
      services/web/app/src/Features/StaticPages/HomeController.js
  60. 2 2
      services/web/app/src/Features/Subscription/RecurlyWrapper.js
  61. 1 1
      services/web/app/src/Features/Subscription/SubscriptionGroupHandler.js
  62. 1 1
      services/web/app/src/Features/Subscription/SubscriptionHandler.js
  63. 1 1
      services/web/app/src/Features/Subscription/SubscriptionUpdater.js
  64. 2 2
      services/web/app/src/Features/Subscription/V1SubscriptionManager.js
  65. 1 1
      services/web/app/src/Features/SystemMessages/SystemMessageManager.js
  66. 1 1
      services/web/app/src/Features/ThirdPartyDataStore/UpdateMerger.js
  67. 1 1
      services/web/app/src/Features/TokenGenerator/TokenGenerator.js
  68. 1 1
      services/web/app/src/Features/Uploads/ArchiveManager.js
  69. 1 1
      services/web/app/src/Features/User/UserCreator.js
  70. 6 6
      services/web/app/src/Features/User/UserDeleter.js
  71. 1 1
      services/web/app/src/Features/User/UserEmailsController.js
  72. 1 1
      services/web/app/src/Features/User/UserPagesController.js
  73. 1 1
      services/web/app/src/Features/UserMembership/UserMembershipHandler.js
  74. 1 1
      services/web/app/src/Features/UserMembership/UserMembershipViewModel.js
  75. 1 1
      services/web/app/src/Features/UserMembership/UserMembershipsHandler.js
  76. 1 1
      services/web/app/src/Features/V1/V1Api.js
  77. 1 1
      services/web/app/src/infrastructure/FileWriter.js
  78. 2 2
      services/web/app/src/infrastructure/SessionStoreManager.js
  79. 2 2
      services/web/frontend/js/features/chat/context/chat-context.js
  80. 1 1
      services/web/frontend/js/features/editor-navigation-toolbar/components/track-changes-toggle-button.js
  81. 1 1
      services/web/frontend/js/features/plans/group-plan-modal/index.js
  82. 1 1
      services/web/frontend/js/ide/editor/Document.js
  83. 1 1
      services/web/frontend/js/ide/editor/EditorManager.js
  84. 1 1
      services/web/frontend/js/ide/file-tree/FileTreeManager.js
  85. 1 1
      services/web/frontend/js/ide/history/HistoryV2Manager.js
  86. 1 1
      services/web/frontend/js/ide/online-users/OnlineUsersManager.js
  87. 1 1
      services/web/frontend/js/ide/review-panel/directives/addCommentEntry.js
  88. 1 1
      services/web/frontend/js/main/project-list/modal-controllers.js
  89. 2 2
      services/web/migrations/lib/adapter.js
  90. 1 1
      services/web/modules/launchpad/app/src/LaunchpadController.js
  91. 0 11
      services/web/package.json
  92. 1 1
      services/web/scripts/convert_archived_state.js
  93. 1 1
      services/web/test/acceptance/src/ApiClsiTests.js
  94. 1 1
      services/web/test/acceptance/src/CloseSiteTests.js
  95. 5 5
      services/web/test/acceptance/src/ModelTests.js
  96. 1 1
      services/web/test/acceptance/src/ProjectFeaturesTests.js
  97. 1 1
      services/web/test/acceptance/src/ProjectStructureMongoLockTest.js
  98. 1 1
      services/web/test/acceptance/src/SecurityHeadersTests.js
  99. 1 1
      services/web/test/acceptance/src/SettingsTests.js
  100. 1 1
      services/web/test/acceptance/src/TagsTests.js

+ 1 - 1
libraries/access-token-encryptor/lib/js/AccessTokenEncryptor.js

@@ -76,7 +76,7 @@ class AccessTokenEncryptor {
         logger.err({ err }, 'error getting Fn key')
         return callback(err)
       }
-      // eslint-disable-next-line node/no-deprecated-api
+      // eslint-disable-next-line n/no-deprecated-api
       const decipher = crypto.createDecipher(ALGORITHM, key)
       const dec =
         decipher.update(cipherText, 'base64', 'utf8') + decipher.final('utf8')

+ 3 - 3
libraries/object-persistor/test/unit/GcsPersistorTests.js

@@ -79,7 +79,7 @@ describe('GcsPersistorTests', function () {
 
     Stream = {
       pipeline: sinon.stub().yields(),
-      Transform: Transform,
+      Transform,
     }
 
     GcsFile = {
@@ -222,7 +222,7 @@ describe('GcsPersistorTests', function () {
       })
 
       it('stores the bucket and key in the error', function () {
-        expect(error.info).to.include({ bucketName: bucket, key: key })
+        expect(error.info).to.include({ bucketName: bucket, key })
       })
     })
 
@@ -252,7 +252,7 @@ describe('GcsPersistorTests', function () {
       })
 
       it('stores the bucket and key in the error', function () {
-        expect(error.info).to.include({ bucketName: bucket, key: key })
+        expect(error.info).to.include({ bucketName: bucket, key })
       })
     })
   })

+ 4 - 4
libraries/object-persistor/test/unit/S3PersistorTests.js

@@ -66,7 +66,7 @@ describe('S3PersistorTests', function () {
 
     Stream = {
       pipeline: sinon.stub().yields(),
-      Transform: Transform,
+      Transform,
     }
 
     EmptyPromise = {
@@ -306,7 +306,7 @@ describe('S3PersistorTests', function () {
       })
 
       it('stores the bucket and key in the error', function () {
-        expect(error.info).to.include({ bucketName: bucket, key: key })
+        expect(error.info).to.include({ bucketName: bucket, key })
       })
     })
 
@@ -336,7 +336,7 @@ describe('S3PersistorTests', function () {
       })
 
       it('stores the bucket and key in the error', function () {
-        expect(error.info).to.include({ bucketName: bucket, key: key })
+        expect(error.info).to.include({ bucketName: bucket, key })
       })
     })
 
@@ -366,7 +366,7 @@ describe('S3PersistorTests', function () {
       })
 
       it('stores the bucket and key in the error', function () {
-        expect(error.info).to.include({ bucketName: bucket, key: key })
+        expect(error.info).to.include({ bucketName: bucket, key })
       })
     })
   })

+ 1 - 1
libraries/redis-wrapper/test/unit/src/test.js

@@ -52,7 +52,7 @@ describe('index', function () {
         ioredis: this.ioredis,
       },
       globals: {
-        process: process,
+        process,
       },
     })
     return (this.auth_pass = '1234 pass')

Разница между файлами не показана из-за своего большого размера
+ 359 - 277
package-lock.json


+ 10 - 9
package.json

@@ -2,16 +2,16 @@
   "name": "overleaf",
   "private": true,
   "devDependencies": {
-    "eslint": "^7.21.0",
-    "eslint-config-prettier": "^8.1.0",
-    "eslint-config-standard": "^16.0.2",
-    "eslint-plugin-chai-expect": "^2.2.0",
-    "eslint-plugin-chai-friendly": "^0.6.0",
-    "eslint-plugin-import": "^2.22.1",
-    "eslint-plugin-mocha": "^8.0.0",
+    "eslint": "^8.15.0",
+    "eslint-config-prettier": "^8.5.0",
+    "eslint-config-standard": "^17.0.0",
+    "eslint-plugin-chai-expect": "^3.0.0",
+    "eslint-plugin-chai-friendly": "^0.7.2",
+    "eslint-plugin-import": "^2.26.0",
+    "eslint-plugin-mocha": "^10.0.4",
     "eslint-plugin-node": "^11.1.0",
-    "eslint-plugin-prettier": "^3.1.2",
-    "eslint-plugin-promise": "^4.2.1",
+    "eslint-plugin-prettier": "^4.0.0",
+    "eslint-plugin-promise": "^6.0.0",
     "patch-package": "^6.4.7",
     "prettier": "2.5.1"
   },
@@ -33,6 +33,7 @@
     "services/filestore",
     "services/github-sync",
     "services/history-v1",
+    "services/idp",
     "services/k8s-debugger",
     "services/notifications",
     "services/project-archiver",

+ 1 - 1
services/clsi/app/js/LocalCommandRunner.js

@@ -81,7 +81,7 @@ module.exports = CommandRunner = {
         err.code = code
         return callback(err)
       } else {
-        return callback(null, { stdout: stdout })
+        return callback(null, { stdout })
       }
     })
 

+ 1 - 1
services/clsi/app/js/OutputFileOptimiser.js

@@ -2,7 +2,7 @@
     no-return-assign,
     no-undef,
     no-unused-vars,
-    node/no-deprecated-api,
+    n/no-deprecated-api,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

+ 1 - 1
services/clsi/app/js/SafeReader.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     no-unused-vars,
-    node/no-deprecated-api,
+    n/no-deprecated-api,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

+ 1 - 1
services/clsi/app/js/StaticServerForbidSymlinks.js

@@ -2,7 +2,7 @@
     camelcase,
     no-cond-assign,
     no-unused-vars,
-    node/no-deprecated-api,
+    n/no-deprecated-api,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

+ 1 - 1
services/clsi/app/js/UrlFetcher.js

@@ -1,7 +1,7 @@
 /* eslint-disable
     no-return-assign,
     no-unused-vars,
-    node/no-deprecated-api,
+    n/no-deprecated-api,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

+ 2 - 2
services/clsi/app/lib/pdfjs/FSStream.js

@@ -32,8 +32,8 @@ class FSStream extends Stream {
     end = Math.min(end, this.length)
     // keep a cache of previous reads with {begin,end,buffer} values
     const result = {
-      begin: begin,
-      end: end,
+      begin,
+      end,
       buffer: Buffer.alloc(end - begin, 0),
     }
     this.cachedBytes.push(result)

+ 1 - 1
services/clsi/test/unit/js/OutputFileOptimiserTests.js

@@ -1,7 +1,7 @@
 /* eslint-disable
     no-return-assign,
     no-unused-vars,
-    node/no-deprecated-api,
+    n/no-deprecated-api,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

+ 1 - 1
services/document-updater/app/js/sharejs/model.js

@@ -1,7 +1,7 @@
 /* eslint-disable
     no-console,
     no-return-assign,
-    node/no-callback-literal,
+    n/no-callback-literal,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

+ 1 - 1
services/document-updater/app/js/sharejs/server/model.js

@@ -1,7 +1,7 @@
 /* eslint-disable
     no-console,
     no-return-assign,
-    node/no-callback-literal,
+    n/no-callback-literal,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

+ 1 - 1
services/document-updater/app/js/sharejs/types/model.js

@@ -1,7 +1,7 @@
 /* eslint-disable
     no-console,
     no-return-assign,
-    node/no-callback-literal,
+    n/no-callback-literal,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

+ 3 - 3
services/filestore/test/unit/js/FileControllerTests.js

@@ -57,7 +57,7 @@ describe('FileController', function () {
         './FileHandler': FileHandler,
         './PersistorManager': PersistorManager,
         './Errors': Errors,
-        stream: stream,
+        stream,
         '@overleaf/settings': settings,
         '@overleaf/metrics': {
           inc() {},
@@ -67,8 +67,8 @@ describe('FileController', function () {
     })
 
     req = {
-      key: key,
-      bucket: bucket,
+      key,
+      bucket,
       project_id: projectId,
       query: {},
       params: {

+ 1 - 1
services/filestore/test/unit/js/FileHandlerTests.js

@@ -83,7 +83,7 @@ describe('FileHandler', function () {
         './ImageOptimiser': ImageOptimiser,
         '@overleaf/settings': Settings,
         '@overleaf/object-persistor': ObjectPersistor,
-        fs: fs,
+        fs,
       },
       globals: { console },
     })

+ 1 - 1
services/real-time/app/js/Router.js

@@ -255,7 +255,7 @@ module.exports = Router = {
           function (err, ...args) {
             if (err) {
               Router._handleError(callback, err, client, 'joinProject', {
-                project_id: project_id,
+                project_id,
                 user_id: user._id,
               })
             } else {

+ 4 - 4
services/real-time/test/acceptance/libs/XMLHttpRequest.js

@@ -150,7 +150,7 @@ exports.XMLHttpRequest = function () {
     }
 
     settings = {
-      method: method,
+      method,
       url: url.toString(),
       async: typeof async !== 'boolean' ? true : async,
       user: user || null,
@@ -346,11 +346,11 @@ exports.XMLHttpRequest = function () {
     }
 
     const options = {
-      host: host,
-      port: port,
+      host,
+      port,
       path: uri,
       method: settings.method,
-      headers: headers,
+      headers,
     }
 
     // Reset error flag

+ 2 - 2
services/track-changes/app/js/PackManager.js

@@ -260,8 +260,8 @@ module.exports = PackManager = {
         pack: { $each: newUpdates },
       },
       $inc: {
-        n: n,
-        sz: sz,
+        n,
+        sz,
       },
       $set: {
         'meta.end_ts': last.meta.end_ts,

+ 10 - 0
services/web/.eslintrc

@@ -219,6 +219,16 @@
         //  - web/scripts/ukamf/package.json
         "import/no-extraneous-dependencies": ["error", {"packageDir": [".", "scripts/ukamf"]}]
       }
+    },
+    {
+      "files": ["scripts/learn/checkSanitize/*.js"],
+      "rules": {
+        // The checkSanitize script is used in the dev-env only.
+        "import/no-extraneous-dependencies": ["error", {
+          "devDependencies": true,
+          "packageDir": [".", "../../"]
+        }]
+      }
     }
   ]
 }

+ 1 - 1
services/web/app.js

@@ -77,7 +77,7 @@ if (!module.parent) {
 
 // handle SIGTERM for graceful shutdown in kubernetes
 process.on('SIGTERM', function (signal) {
-  logger.warn({ signal: signal }, 'received signal, shutting down')
+  logger.warn({ signal }, 'received signal, shutting down')
   Settings.shuttingDown = true
 })
 

+ 1 - 1
services/web/app/src/Features/Authentication/AuthenticationController.js

@@ -405,7 +405,7 @@ const AuthenticationController = {
     if (!adminDomains.find(domain => email.endsWith(`@${domain}`))) {
       return next(
         new OError('[ValidateAdmin] Admin user with invalid email domain', {
-          email: email,
+          email,
           userId: user._id,
         })
       )

+ 1 - 1
services/web/app/src/Features/Chat/ChatApiHandler.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 1 - 1
services/web/app/src/Features/Chat/ChatController.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

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

@@ -44,7 +44,7 @@ async function removeUserFromProject(projectId, userId) {
       await Project.updateOne(
         { _id: projectId },
         {
-          $set: { archived: archived },
+          $set: { archived },
           $pull: {
             collaberator_refs: userId,
             readOnly_refs: userId,

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

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

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

+ 1 - 1
services/web/app/src/Features/Compile/ClsiCookieManager.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 1 - 1
services/web/app/src/Features/Compile/ClsiManager.js

@@ -876,7 +876,7 @@ const ClsiManager = {
           compileGroup: options.compileGroup,
           enablePdfCaching:
             (Settings.enablePdfCaching && options.enablePdfCaching) || false,
-          flags: flags,
+          flags,
           metricsMethod: options.compileGroup,
         },
         rootResourcePath,

+ 1 - 1
services/web/app/src/Features/Compile/ClsiStateManager.js

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

+ 2 - 2
services/web/app/src/Features/Compile/CompileController.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */
@@ -92,7 +92,7 @@ module.exports = CompileController = {
           Metrics.inc('compile-error')
           return next(error)
         }
-        Metrics.inc('compile-status', 1, { status: status })
+        Metrics.inc('compile-status', 1, { status })
         res.json({
           status,
           outputFiles,

+ 1 - 1
services/web/app/src/Features/Compile/CompileManager.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 1 - 1
services/web/app/src/Features/Contacts/ContactManager.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

+ 1 - 1
services/web/app/src/Features/Cooldown/CooldownManager.js

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 1 - 1
services/web/app/src/Features/Editor/EditorController.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-dupe-keys,
     no-unused-vars,

+ 3 - 3
services/web/app/src/Features/Errors/HttpErrorHandler.js

@@ -34,7 +34,7 @@ function handleGeneric400Error(req, res, statusCode, message, info = {}) {
     case 'html':
       return res.render('general/400', {
         title: 'Client Error',
-        message: message,
+        message,
       })
     case 'json':
       return renderJSONError(res, message, info)
@@ -86,7 +86,7 @@ module.exports = HttpErrorHandler = {
       case 'html':
         return res.render('general/400', {
           title: 'Client Error',
-          message: message,
+          message,
         })
       case 'json':
         return renderJSONError(res, message, info)
@@ -125,7 +125,7 @@ module.exports = HttpErrorHandler = {
       case 'html':
         return res.render('general/400', {
           title: 'Client Error',
-          message: message,
+          message,
         })
       case 'json':
         return renderJSONError(res, message, info)

+ 1 - 1
services/web/app/src/Features/Exports/ExportsHandler.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

+ 1 - 1
services/web/app/src/Features/FileStore/FileHashManager.js

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

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

@@ -86,7 +86,7 @@ module.exports = InactiveProjectManager = {
               function (err) {
                 if (err) {
                   logger.err(
-                    { project_id: project._id, err: err },
+                    { project_id: project._id, err },
                     'unable to deactivate project'
                   )
                 }

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

@@ -239,7 +239,7 @@ function makeAffiliationRequest(options, callback) {
           message: 'error getting affiliations from v1',
           info: {
             status: response.statusCode,
-            body: body,
+            body,
           },
         })
       )

+ 1 - 1
services/web/app/src/Features/LinkedFiles/LinkedFilesHandler.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

+ 1 - 1
services/web/app/src/Features/LinkedFiles/ProjectFileAgent.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

+ 1 - 1
services/web/app/src/Features/Metadata/MetaHandler.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-cond-assign,
 */

+ 1 - 1
services/web/app/src/Features/Notifications/NotificationsBuilder.js

@@ -203,7 +203,7 @@ function tpdsFileLimit(userId) {
         callback = function () {}
       }
       const messageOpts = {
-        projectName: projectName,
+        projectName,
       }
       NotificationsHandler.createNotification(
         userId,

+ 1 - 1
services/web/app/src/Features/PasswordReset/PasswordResetHandler.js

@@ -14,7 +14,7 @@ function generateAndEmailResetToken(email, callback) {
     if (user.email !== email) {
       return callback(null, 'secondary')
     }
-    const data = { user_id: user._id.toString(), email: email }
+    const data = { user_id: user._id.toString(), email }
     OneTimeTokenHandler.getNewToken('password', data, (err, token) => {
       if (err) {
         return callback(err)

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

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

@@ -1055,7 +1055,7 @@ const ProjectController = {
                 last_name: user.last_name,
                 referal_id: user.referal_id,
                 signUpDate: user.signUpDate,
-                allowedFreeTrial: allowedFreeTrial,
+                allowedFreeTrial,
                 featureSwitches: user.featureSwitches,
                 features: user.features,
                 refProviders: _.mapValues(user.refProviders, Boolean),

+ 3 - 6
services/web/app/src/Features/Project/ProjectDeleter.js

@@ -126,7 +126,7 @@ async function archiveProject(projectId, userId) {
 
     await Project.updateOne(
       { _id: projectId },
-      { $set: { archived: archived }, $pull: { trashed: ObjectId(userId) } }
+      { $set: { archived }, $pull: { trashed: ObjectId(userId) } }
     )
   } catch (err) {
     logger.warn({ err }, 'problem archiving project')
@@ -147,10 +147,7 @@ async function unarchiveProject(projectId, userId) {
       'UNARCHIVE'
     )
 
-    await Project.updateOne(
-      { _id: projectId },
-      { $set: { archived: archived } }
-    )
+    await Project.updateOne({ _id: projectId }, { $set: { archived } })
   } catch (err) {
     logger.warn({ err }, 'problem unarchiving project')
     throw err
@@ -174,7 +171,7 @@ async function trashProject(projectId, userId) {
       { _id: projectId },
       {
         $addToSet: { trashed: ObjectId(userId) },
-        $set: { archived: archived },
+        $set: { archived },
       }
     )
   } catch (err) {

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
     no-useless-escape,

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     no-unused-vars,
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 1 - 1
services/web/app/src/Features/Publishers/PublishersGetter.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

+ 1 - 1
services/web/app/src/Features/References/ReferencesHandler.js

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

+ 1 - 1
services/web/app/src/Features/ServerAdmin/AdminController.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 2 - 2
services/web/app/src/Features/StaticPages/HomeController.js

@@ -1,8 +1,8 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
-    node/no-deprecated-api,
+    n/no-deprecated-api,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

+ 2 - 2
services/web/app/src/Features/Subscription/RecurlyWrapper.js

@@ -1,9 +1,9 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
-    node/no-deprecated-api,
+    n/no-deprecated-api,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

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

@@ -132,7 +132,7 @@ function updateSubscription(user, planCode, couponCode, callback) {
               const timeframe = changeAtTermEnd ? 'term_end' : 'now'
               RecurlyClient.changeSubscriptionByUuid(
                 subscription.recurlySubscription_id,
-                { planCode: planCode, timeframe: timeframe },
+                { planCode, timeframe },
                 function (error, subscriptionChange) {
                   if (error != null) {
                     return cb(error)

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

@@ -192,7 +192,7 @@ async function createDeletedSubscription(subscription, deleterData) {
       deleterId: deleterData.id,
       deleterIpAddress: deleterData.ip,
     },
-    subscription: subscription,
+    subscription,
   }
   const options = { upsert: true, new: true, setDefaultsOnInsert: true }
   await DeletedSubscription.findOneAndUpdate(filter, data, options).exec()

+ 2 - 2
services/web/app/src/Features/Subscription/V1SubscriptionManager.js

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.
@@ -155,7 +155,7 @@ module.exports = V1SubscriptionManager = {
               message: 'error from v1',
               info: {
                 status: response.statusCode,
-                body: body,
+                body,
               },
             })
           )

+ 1 - 1
services/web/app/src/Features/SystemMessages/SystemMessageManager.js

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 1 - 1
services/web/app/src/Features/TokenGenerator/TokenGenerator.js

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 1 - 1
services/web/app/src/Features/Uploads/ArchiveManager.js

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-return-assign,
 */

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

@@ -141,7 +141,7 @@ async function createNewUser(attributes, options = {}) {
 const UserCreator = {
   createNewUser: util.callbackify(createNewUser),
   promises: {
-    createNewUser: createNewUser,
+    createNewUser,
   },
 }
 

+ 6 - 6
services/web/app/src/Features/User/UserDeleter.js

@@ -21,11 +21,11 @@ module.exports = {
   expireDeletedUsersAfterDuration: callbackify(expireDeletedUsersAfterDuration),
 
   promises: {
-    deleteUser: deleteUser,
-    deleteMongoUser: deleteMongoUser,
-    expireDeletedUser: expireDeletedUser,
-    ensureCanDeleteUser: ensureCanDeleteUser,
-    expireDeletedUsersAfterDuration: expireDeletedUsersAfterDuration,
+    deleteUser,
+    deleteMongoUser,
+    expireDeletedUser,
+    ensureCanDeleteUser,
+    expireDeletedUsersAfterDuration,
   },
 }
 
@@ -104,7 +104,7 @@ async function _createDeletedUser(user, options) {
   await DeletedUser.updateOne(
     { 'deleterData.deletedUserId': user._id },
     {
-      user: user,
+      user,
       deleterData: {
         deletedAt: new Date(),
         deleterId: options.deleterUser ? options.deleterUser._id : undefined,

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

@@ -193,7 +193,7 @@ const UserEmailsController = {
         if (err) {
           return UserEmailsController._handleEmailError(err, req, res, next)
         }
-        SessionManager.setInSessionUser(req.session, { email: email })
+        SessionManager.setInSessionUser(req.session, { email })
         const user = SessionManager.getSessionUser(req.session)
         UserSessionsManager.revokeAllUserSessions(
           user,

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

@@ -131,7 +131,7 @@ async function settingsPage(req, res) {
       reconfirmedViaSAML,
       reconfirmationRemoveEmail,
       samlBeta: req.session.samlBeta,
-      ssoError: ssoError,
+      ssoError,
       thirdPartyIds: UserPagesController._restructureThirdPartyIds(user),
     })
   }

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

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

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

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

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

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 1 - 1
services/web/app/src/Features/V1/V1Api.js

@@ -69,7 +69,7 @@ const V1Api = {
       return callback(
         new Errors.V1ConnectionError({
           message: 'error from V1 API',
-          info: { status: response.statusCode, body: body },
+          info: { status: response.statusCode, body },
         })
       )
     }

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

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 2 - 2
services/web/app/src/infrastructure/SessionStoreManager.js

@@ -21,8 +21,8 @@ function checkValidationToken(req) {
       } else {
         logger.error(
           {
-            sessionToken: sessionToken,
-            clientToken: clientToken,
+            sessionToken,
+            clientToken,
           },
           'session token validation failed'
         )

+ 2 - 2
services/web/frontend/js/features/chat/context/chat-context.js

@@ -156,7 +156,7 @@ export function ChatProvider({ children }) {
         .catch(error => {
           dispatch({
             type: 'ERROR',
-            error: error,
+            error,
           })
         })
     }
@@ -201,7 +201,7 @@ export function ChatProvider({ children }) {
       }).catch(error => {
         dispatch({
           type: 'ERROR',
-          error: error,
+          error,
         })
       })
     },

+ 1 - 1
services/web/frontend/js/features/editor-navigation-toolbar/components/track-changes-toggle-button.js

@@ -6,7 +6,7 @@ function TrackChangesToggleButton({ trackChangesIsOpen, disabled, onClick }) {
   const { t } = useTranslation()
   const classes = classNames('btn', 'btn-full-height', {
     active: trackChangesIsOpen && !disabled,
-    disabled: disabled,
+    disabled,
   })
 
   return (

+ 1 - 1
services/web/frontend/js/features/plans/group-plan-modal/index.js

@@ -97,7 +97,7 @@ document.querySelectorAll('[data-ol-purchase-group-plan]').forEach(el =>
     eventTracking.sendMB('groups-modal-click', {
       plan: planCode,
       users: size,
-      currency: currency,
+      currency,
       type: usage,
     })
     const url = new URL('/user/subscription/new', window.origin)

+ 1 - 1
services/web/frontend/js/ide/editor/Document.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

+ 1 - 1
services/web/frontend/js/ide/editor/EditorManager.js

@@ -1,7 +1,7 @@
 import _ from 'lodash'
 /* eslint-disable
    camelcase,
-   node/handle-callback-err,
+   n/handle-callback-err,
    max-len,
    no-return-assign,
  */

+ 1 - 1
services/web/frontend/js/ide/file-tree/FileTreeManager.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-dupe-class-members,
     no-return-assign,

+ 1 - 1
services/web/frontend/js/ide/history/HistoryV2Manager.js

@@ -401,7 +401,7 @@ export default HistoryManager = (function () {
         if (currentUpdate != null) {
           for (const pathname of currentUpdate.pathnames) {
             filesWithOps.push({
-              pathname: pathname,
+              pathname,
               operation: 'edited',
             })
           }

+ 1 - 1
services/web/frontend/js/ide/online-users/OnlineUsersManager.js

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-return-assign,
 */

+ 1 - 1
services/web/frontend/js/ide/review-panel/directives/addCommentEntry.js

@@ -11,7 +11,7 @@ App.directive('addCommentEntry', () => ({
   link(scope, element, attrs) {
     scope.state = {
       isAdding: false,
-      content: content,
+      content,
     }
 
     scope.$on('comment:start_adding', () => scope.startNewComment())

+ 1 - 1
services/web/frontend/js/main/project-list/modal-controllers.js

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-return-assign,
 */

+ 2 - 2
services/web/migrations/lib/adapter.js

@@ -36,14 +36,14 @@ class Adapter {
 
   async markExecuted(name) {
     return db.migrations.insertOne({
-      name: name,
+      name,
       migratedAt: new Date(),
     })
   }
 
   async unmarkExecuted(name) {
     return db.migrations.deleteOne({
-      name: name,
+      name,
     })
   }
 }

+ 1 - 1
services/web/modules/launchpad/app/src/LaunchpadController.js

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-unused-vars,
 */

+ 0 - 11
services/web/package.json

@@ -237,21 +237,11 @@
     "cypress": "^9.5.1",
     "es6-promise": "^4.2.8",
     "escodegen": "^2.0.0",
-    "eslint": "^8.9.0",
-    "eslint-config-prettier": "^8.3.0",
-    "eslint-config-standard": "^16.0.3",
     "eslint-config-standard-jsx": "^11.0.0-0",
-    "eslint-plugin-chai-expect": "^2.2.0",
-    "eslint-plugin-chai-friendly": "^0.7.2",
     "eslint-plugin-cypress": "^2.12.1",
-    "eslint-plugin-import": "^2.25.3",
     "eslint-plugin-jsx-a11y": "^6.5.1",
-    "eslint-plugin-mocha": "^9.0.0",
-    "eslint-plugin-node": "^11.1.0",
-    "eslint-plugin-promise": "^6.0.0",
     "eslint-plugin-react": "^7.27.0",
     "eslint-plugin-react-hooks": "^4.3.0",
-    "eslint-plugin-standard": "^5.0.0",
     "expose-loader": "^3.1.0",
     "fetch-mock": "^9.10.2",
     "glob": "^7.1.6",
@@ -280,7 +270,6 @@
     "nodemon": "^2.0.6",
     "pirates": "^4.0.1",
     "postcss-loader": "^6.2.1",
-    "prettier": "2.5.1",
     "requirejs": "^2.3.6",
     "samlp": "^3.4.1",
     "sandboxed-module": "https://github.com/overleaf/node-sandboxed-module/archive/cafa2d60f17ce75cc023e6f296eb8de79d92d35d.tar.gz",

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

@@ -56,7 +56,7 @@ async function setArchived(collection, project) {
   return collection.updateOne(
     { _id: project._id },
     {
-      $set: { archived: archived },
+      $set: { archived },
     }
   )
 }

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

@@ -2,7 +2,7 @@
     camelcase,
     max-len,
     no-unused-vars,
-    node/no-deprecated-api,
+    n/no-deprecated-api,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

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

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     no-return-assign,
     no-unused-vars,
 */

+ 5 - 5
services/web/test/acceptance/src/ModelTests.js

@@ -8,14 +8,14 @@ describe('mongoose', function () {
     const email = 'wombat@potato.net'
 
     it('allows the creation of a user', async function () {
-      await expect(User.create({ email: email })).to.be.fulfilled
-      await expect(User.findOne({ email: email })).to.eventually.exist
+      await expect(User.create({ email })).to.be.fulfilled
+      await expect(User.findOne({ email })).to.eventually.exist
     })
 
     it('does not allow the creation of multiple users with the same email', async function () {
-      await expect(User.create({ email: email })).to.be.fulfilled
-      await expect(User.create({ email: email })).to.be.rejected
-      await expect(User.countDocuments({ email: email })).to.eventually.equal(1)
+      await expect(User.create({ email })).to.be.fulfilled
+      await expect(User.create({ email })).to.be.rejected
+      await expect(User.countDocuments({ email })).to.eventually.equal(1)
     })
 
     it('formats assignedAt as Date', async function () {

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

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

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
 */
 // TODO: This file was created by bulk-decaffeinate.

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

@@ -1,6 +1,6 @@
 /* eslint-disable
     camelcase,
-    node/handle-callback-err,
+    n/handle-callback-err,
     max-len,
     no-return-assign,
 */

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

@@ -1,5 +1,5 @@
 /* eslint-disable
-    node/handle-callback-err,
+    n/handle-callback-err,
 */
 // TODO: This file was created by bulk-decaffeinate.
 // Fix any style issues and re-enable lint.

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

@@ -25,7 +25,7 @@ const _expect204 = (err, response) => {
 }
 
 const _createTag = (user, name, callback) => {
-  user.request.post({ url: `/tag`, json: { name: name } }, callback)
+  user.request.post({ url: `/tag`, json: { name } }, callback)
 }
 
 const _createTags = (user, tagNames, callback) => {

Некоторые файлы не были показаны из-за большого количества измененных файлов