Переглянути джерело

Update paths

GitOrigin-RevId: 399c594dd1bbf739d91874df6be3b70e57fe01e3
Andrew Rumble 9 місяців тому
батько
коміт
4f02a85aa4
100 змінених файлів з 304 додано та 303 видалено
  1. 1 1
      services/web/app.mjs
  2. 3 3
      services/web/app/src/Features/Analytics/AnalyticsController.mjs
  3. 2 2
      services/web/app/src/Features/Analytics/AnalyticsRegistrationSourceMiddleware.mjs
  4. 2 2
      services/web/app/src/Features/Analytics/AnalyticsUTMTrackingMiddleware.mjs
  5. 10 10
      services/web/app/src/Features/Authentication/AuthenticationController.mjs
  6. 3 3
      services/web/app/src/Features/Authorization/AuthorizationManager.mjs
  7. 4 4
      services/web/app/src/Features/Authorization/AuthorizationMiddleware.mjs
  8. 3 3
      services/web/app/src/Features/BetaProgram/BetaProgramController.mjs
  9. 2 2
      services/web/app/src/Features/BetaProgram/BetaProgramHandler.mjs
  10. 3 3
      services/web/app/src/Features/Chat/ChatController.mjs
  11. 1 1
      services/web/app/src/Features/Chat/ChatManager.mjs
  12. 5 5
      services/web/app/src/Features/Collaborators/CollaboratorsController.mjs
  13. 1 1
      services/web/app/src/Features/Collaborators/CollaboratorsEmailHandler.mjs
  14. 4 4
      services/web/app/src/Features/Collaborators/CollaboratorsGetter.mjs
  15. 2 2
      services/web/app/src/Features/Collaborators/CollaboratorsHandler.mjs
  16. 5 5
      services/web/app/src/Features/Collaborators/CollaboratorsInviteController.mjs
  17. 4 4
      services/web/app/src/Features/Collaborators/CollaboratorsInviteHandler.mjs
  18. 4 4
      services/web/app/src/Features/Collaborators/OwnershipTransferHandler.mjs
  19. 1 1
      services/web/app/src/Features/Compile/ClsiCacheController.mjs
  20. 2 2
      services/web/app/src/Features/Compile/ClsiCacheManager.mjs
  21. 3 3
      services/web/app/src/Features/Compile/ClsiManager.mjs
  22. 3 3
      services/web/app/src/Features/Compile/CompileController.mjs
  23. 2 2
      services/web/app/src/Features/Compile/CompileManager.mjs
  24. 3 3
      services/web/app/src/Features/Contacts/ContactController.mjs
  25. 1 1
      services/web/app/src/Features/Contacts/ContactRouter.mjs
  26. 1 1
      services/web/app/src/Features/Documents/DocumentController.mjs
  27. 3 3
      services/web/app/src/Features/Editor/EditorController.mjs
  28. 3 3
      services/web/app/src/Features/Editor/EditorHttpController.mjs
  29. 2 2
      services/web/app/src/Features/Errors/ErrorController.mjs
  30. 1 1
      services/web/app/src/Features/Exports/ExportsController.mjs
  31. 1 1
      services/web/app/src/Features/Exports/ExportsHandler.mjs
  32. 1 1
      services/web/app/src/Features/FileStore/FileStoreHandler.mjs
  33. 1 1
      services/web/app/src/Features/HealthCheck/HealthCheckController.mjs
  34. 1 1
      services/web/app/src/Features/Helpers/AdminAuthorizationHelper.mjs
  35. 2 2
      services/web/app/src/Features/History/HistoryController.mjs
  36. 2 2
      services/web/app/src/Features/History/HistoryManager.mjs
  37. 1 1
      services/web/app/src/Features/History/HistoryOTMigration.mjs
  38. 2 2
      services/web/app/src/Features/History/HistoryRangesSupportMigration.mjs
  39. 4 4
      services/web/app/src/Features/History/RestoreManager.mjs
  40. 2 2
      services/web/app/src/Features/InactiveData/InactiveProjectManager.mjs
  41. 3 3
      services/web/app/src/Features/Institutions/InstitutionsGetter.mjs
  42. 7 7
      services/web/app/src/Features/Institutions/InstitutionsManager.mjs
  43. 3 3
      services/web/app/src/Features/LinkedFiles/LinkedFilesController.mjs
  44. 1 1
      services/web/app/src/Features/LinkedFiles/ProjectFileAgent.mjs
  45. 1 1
      services/web/app/src/Features/LinkedFiles/UrlAgent.mjs
  46. 1 1
      services/web/app/src/Features/Metadata/MetaController.mjs
  47. 2 2
      services/web/app/src/Features/Notifications/NotificationsController.mjs
  48. 5 5
      services/web/app/src/Features/PasswordReset/PasswordResetController.mjs
  49. 4 4
      services/web/app/src/Features/PasswordReset/PasswordResetHandler.mjs
  50. 15 15
      services/web/app/src/Features/Project/ProjectController.mjs
  51. 2 2
      services/web/app/src/Features/Project/ProjectCreationHandler.mjs
  52. 4 4
      services/web/app/src/Features/Project/ProjectDeleter.mjs
  53. 3 3
      services/web/app/src/Features/Project/ProjectDetailsHandler.mjs
  54. 4 4
      services/web/app/src/Features/Project/ProjectDuplicator.mjs
  55. 1 1
      services/web/app/src/Features/Project/ProjectEntityHandler.mjs
  56. 2 2
      services/web/app/src/Features/Project/ProjectEntityMongoUpdateHandler.mjs
  57. 5 5
      services/web/app/src/Features/Project/ProjectEntityUpdateHandler.mjs
  58. 10 10
      services/web/app/src/Features/Project/ProjectListController.mjs
  59. 1 1
      services/web/app/src/Features/Project/ProjectRootDocManager.mjs
  60. 1 1
      services/web/app/src/Features/Referal/ReferalAllocator.mjs
  61. 1 1
      services/web/app/src/Features/Referal/ReferalController.mjs
  62. 1 1
      services/web/app/src/Features/References/ReferencesController.mjs
  63. 1 1
      services/web/app/src/Features/SamlLog/SamlLogHandler.mjs
  64. 1 1
      services/web/app/src/Features/Security/RateLimiterMiddleware.mjs
  65. 1 1
      services/web/app/src/Features/ServerAdmin/AdminController.mjs
  66. 1 1
      services/web/app/src/Features/Spelling/SpellingController.mjs
  67. 1 1
      services/web/app/src/Features/SplitTests/SlackNotificationManager.mjs
  68. 1 1
      services/web/app/src/Features/SplitTests/SplitTestMiddleware.mjs
  69. 3 3
      services/web/app/src/Features/StaticPages/HomeController.mjs
  70. 3 3
      services/web/app/src/Features/Subscription/LimitationsManager.mjs
  71. 2 2
      services/web/app/src/Features/Subscription/PlansHelper.mjs
  72. 9 11
      services/web/app/src/Features/Subscription/RecurlyClient.mjs
  73. 2 2
      services/web/app/src/Features/Subscription/RecurlyEventHandler.mjs
  74. 12 12
      services/web/app/src/Features/Subscription/SubscriptionController.mjs
  75. 1 1
      services/web/app/src/Features/Subscription/SubscriptionEmailBuilder.mjs
  76. 3 3
      services/web/app/src/Features/Subscription/SubscriptionEmailHandler.mjs
  77. 4 4
      services/web/app/src/Features/Subscription/SubscriptionGroupController.mjs
  78. 4 4
      services/web/app/src/Features/Subscription/SubscriptionGroupHandler.mjs
  79. 7 7
      services/web/app/src/Features/Subscription/SubscriptionHandler.mjs
  80. 8 6
      services/web/app/src/Features/Subscription/SubscriptionViewModelBuilder.mjs
  81. 6 6
      services/web/app/src/Features/Subscription/TeamInvitesController.mjs
  82. 6 6
      services/web/app/src/Features/Subscription/TeamInvitesHandler.mjs
  83. 1 1
      services/web/app/src/Features/Subscription/types.ts
  84. 2 2
      services/web/app/src/Features/Survey/SurveyHandler.mjs
  85. 1 1
      services/web/app/src/Features/SystemMessages/SystemMessageController.mjs
  86. 2 2
      services/web/app/src/Features/Tags/TagsController.mjs
  87. 2 2
      services/web/app/src/Features/Templates/TemplatesController.mjs
  88. 1 1
      services/web/app/src/Features/Templates/TemplatesManager.mjs
  89. 3 3
      services/web/app/src/Features/ThirdPartyDataStore/TpdsController.mjs
  90. 3 3
      services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateHandler.mjs
  91. 1 1
      services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.mjs
  92. 1 1
      services/web/app/src/Features/ThirdPartyDataStore/UpdateMerger.mjs
  93. 8 7
      services/web/app/src/Features/TokenAccess/TokenAccessController.mjs
  94. 1 1
      services/web/app/src/Features/Tutorial/TutorialController.mjs
  95. 1 1
      services/web/app/src/Features/Tutorial/TutorialHandler.mjs
  96. 2 2
      services/web/app/src/Features/Uploads/FileSystemImportManager.mjs
  97. 1 1
      services/web/app/src/Features/Uploads/ProjectUploadController.mjs
  98. 3 3
      services/web/app/src/Features/Uploads/ProjectUploadManager.mjs
  99. 7 7
      services/web/app/src/Features/User/SAMLIdentityManager.mjs
  100. 10 10
      services/web/app/src/Features/User/UserController.mjs

+ 1 - 1
services/web/app.mjs

@@ -5,7 +5,7 @@ import Modules from './app/src/infrastructure/Modules.js'
 import metrics from '@overleaf/metrics'
 import Settings from '@overleaf/settings'
 import logger from '@overleaf/logger'
-import PlansLocator from './app/src/Features/Subscription/PlansLocator.js'
+import PlansLocator from './app/src/Features/Subscription/PlansLocator.mjs'
 import HistoryManager from './app/src/Features/History/HistoryManager.mjs'
 import SiteAdminHandler from './app/src/infrastructure/SiteAdminHandler.mjs'
 import http from 'node:http'

+ 3 - 3
services/web/app/src/Features/Analytics/AnalyticsController.mjs

@@ -1,10 +1,10 @@
 import metrics from '@overleaf/metrics'
-import AnalyticsManager from './AnalyticsManager.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import AnalyticsManager from './AnalyticsManager.mjs'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import GeoIpLookup from '../../infrastructure/GeoIpLookup.mjs'
 import Features from '../../infrastructure/Features.js'
 import { expressify } from '@overleaf/promise-utils'
-import AccountMappingHelper from './AccountMappingHelper.js'
+import AccountMappingHelper from './AccountMappingHelper.mjs'
 
 async function registerSalesforceMapping(req, res, next) {
   if (!Features.hasFeature('analytics')) {

+ 2 - 2
services/web/app/src/Features/Analytics/AnalyticsRegistrationSourceMiddleware.mjs

@@ -1,7 +1,7 @@
 import logger from '@overleaf/logger'
 import OError from '@overleaf/o-error'
-import AnalyticsRegistrationSourceHelper from './AnalyticsRegistrationSourceHelper.js'
-import SessionManager from '../../Features/Authentication/SessionManager.js'
+import AnalyticsRegistrationSourceHelper from './AnalyticsRegistrationSourceHelper.mjs'
+import SessionManager from '../../Features/Authentication/SessionManager.mjs'
 
 function setSource(medium, source) {
   return function (req, res, next) {

+ 2 - 2
services/web/app/src/Features/Analytics/AnalyticsUTMTrackingMiddleware.mjs

@@ -1,6 +1,6 @@
 import _ from 'lodash'
-import RequestHelper from './RequestHelper.js'
-import AnalyticsManager from './AnalyticsManager.js'
+import RequestHelper from './RequestHelper.mjs'
+import AnalyticsManager from './AnalyticsManager.mjs'
 import querystring from 'node:querystring'
 import { URL } from 'node:url'
 import Settings from '@overleaf/settings'

+ 10 - 10
services/web/app/src/Features/Authentication/AuthenticationController.mjs

@@ -1,8 +1,8 @@
-import AuthenticationManager from './AuthenticationManager.js'
-import SessionManager from './SessionManager.js'
+import AuthenticationManager from './AuthenticationManager.mjs'
+import SessionManager from './SessionManager.mjs'
 import OError from '@overleaf/o-error'
 import LoginRateLimiter from '../Security/LoginRateLimiter.js'
-import UserUpdater from '../User/UserUpdater.js'
+import UserUpdater from '../User/UserUpdater.mjs'
 import Metrics from '@overleaf/metrics'
 import logger from '@overleaf/logger'
 import querystring from 'node:querystring'
@@ -10,15 +10,15 @@ import Settings from '@overleaf/settings'
 import basicAuth from 'basic-auth'
 import tsscmp from 'tsscmp'
 import UserHandler from '../User/UserHandler.mjs'
-import UserSessionsManager from '../User/UserSessionsManager.js'
-import Analytics from '../Analytics/AnalyticsManager.js'
+import UserSessionsManager from '../User/UserSessionsManager.mjs'
+import Analytics from '../Analytics/AnalyticsManager.mjs'
 import passport from 'passport'
-import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
-import UrlHelper from '../Helpers/UrlHelper.js'
-import AsyncFormHelper from '../Helpers/AsyncFormHelper.js'
+import NotificationsBuilder from '../Notifications/NotificationsBuilder.mjs'
+import UrlHelper from '../Helpers/UrlHelper.mjs'
+import AsyncFormHelper from '../Helpers/AsyncFormHelper.mjs'
 import _ from 'lodash'
-import UserAuditLogHandler from '../User/UserAuditLogHandler.js'
-import AnalyticsRegistrationSourceHelper from '../Analytics/AnalyticsRegistrationSourceHelper.js'
+import UserAuditLogHandler from '../User/UserAuditLogHandler.mjs'
+import AnalyticsRegistrationSourceHelper from '../Analytics/AnalyticsRegistrationSourceHelper.mjs'
 import { acceptsJson } from '../../infrastructure/RequestContentTypeDetection.js'
 import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
 import Modules from '../../infrastructure/Modules.js'

+ 3 - 3
services/web/app/src/Features/Authorization/AuthorizationManager.mjs

@@ -6,12 +6,12 @@ import CollaboratorsHandler from '../Collaborators/CollaboratorsHandler.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
 import { User } from '../../models/User.js'
 import PrivilegeLevels from './PrivilegeLevels.js'
-import TokenAccessHandler from '../TokenAccess/TokenAccessHandler.js'
-import PublicAccessLevels from './PublicAccessLevels.js'
+import TokenAccessHandler from '../TokenAccess/TokenAccessHandler.mjs'
+import PublicAccessLevels from './PublicAccessLevels.mjs'
 import Errors from '../Errors/Errors.js'
 import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
 import Settings from '@overleaf/settings'
-import ChatApiHandler from '../Chat/ChatApiHandler.js'
+import ChatApiHandler from '../Chat/ChatApiHandler.mjs'
 
 const { hasAdminAccess, getAdminCapabilities } = AdminAuthorizationHelper
 const { ObjectId } = mongodb

+ 4 - 4
services/web/app/src/Features/Authorization/AuthorizationMiddleware.mjs

@@ -3,13 +3,13 @@ import logger from '@overleaf/logger'
 import mongodb from 'mongodb-legacy'
 
 import Errors from '../Errors/Errors.js'
-import HttpErrorHandler from '../Errors/HttpErrorHandler.js'
+import HttpErrorHandler from '../Errors/HttpErrorHandler.mjs'
 import AuthenticationController from '../Authentication/AuthenticationController.mjs'
-import SessionManager from '../Authentication/SessionManager.js'
-import TokenAccessHandler from '../TokenAccess/TokenAccessHandler.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import TokenAccessHandler from '../TokenAccess/TokenAccessHandler.mjs'
 import { expressify } from '@overleaf/promise-utils'
 import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
-import UrlHelper from '../Helpers/UrlHelper.js'
+import UrlHelper from '../Helpers/UrlHelper.mjs'
 
 const { ObjectId } = mongodb
 

+ 3 - 3
services/web/app/src/Features/BetaProgram/BetaProgramController.mjs

@@ -1,9 +1,9 @@
 import BetaProgramHandler from './BetaProgramHandler.mjs'
 import OError from '@overleaf/o-error'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import logger from '@overleaf/logger'
-import SessionManager from '../Authentication/SessionManager.js'
-import SplitTestSessionHandler from '../SplitTests/SplitTestSessionHandler.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import SplitTestSessionHandler from '../SplitTests/SplitTestSessionHandler.mjs'
 import { expressify } from '@overleaf/promise-utils'
 
 async function optIn(req, res) {

+ 2 - 2
services/web/app/src/Features/BetaProgram/BetaProgramHandler.mjs

@@ -1,7 +1,7 @@
 import { callbackify } from 'node:util'
 import metrics from '@overleaf/metrics'
-import UserUpdater from '../User/UserUpdater.js'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
+import UserUpdater from '../User/UserUpdater.mjs'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
 
 async function optIn(userId) {
   await UserUpdater.promises.updateUser(userId, { $set: { betaProgram: true } })

+ 3 - 3
services/web/app/src/Features/Chat/ChatController.mjs

@@ -1,8 +1,8 @@
 import { expressify } from '@overleaf/promise-utils'
 import Modules from '../../infrastructure/Modules.js'
-import ChatApiHandler from './ChatApiHandler.js'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import ChatApiHandler from './ChatApiHandler.mjs'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import UserInfoManager from '../User/UserInfoManager.mjs'
 import UserInfoController from '../User/UserInfoController.mjs'
 import ChatManager from './ChatManager.mjs'

+ 1 - 1
services/web/app/src/Features/Chat/ChatManager.mjs

@@ -1,5 +1,5 @@
 import UserInfoController from '../User/UserInfoController.mjs'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import { callbackify } from '@overleaf/promise-utils'
 
 async function injectUserInfoIntoThreads(threads) {

+ 5 - 5
services/web/app/src/Features/Collaborators/CollaboratorsController.mjs

@@ -1,17 +1,17 @@
 import OError from '@overleaf/o-error'
-import HttpErrorHandler from '../../Features/Errors/HttpErrorHandler.js'
+import HttpErrorHandler from '../../Features/Errors/HttpErrorHandler.mjs'
 import mongodb from 'mongodb-legacy'
 import CollaboratorsHandler from './CollaboratorsHandler.mjs'
 import CollaboratorsGetter from './CollaboratorsGetter.mjs'
 import OwnershipTransferHandler from './OwnershipTransferHandler.mjs'
-import SessionManager from '../Authentication/SessionManager.js'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
-import TagsHandler from '../Tags/TagsHandler.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
+import TagsHandler from '../Tags/TagsHandler.mjs'
 import Errors from '../Errors/Errors.js'
 import logger from '@overleaf/logger'
 import { expressify } from '@overleaf/promise-utils'
 import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
-import TokenAccessHandler from '../TokenAccess/TokenAccessHandler.js'
+import TokenAccessHandler from '../TokenAccess/TokenAccessHandler.mjs'
 import ProjectAuditLogHandler from '../Project/ProjectAuditLogHandler.mjs'
 import LimitationsManager from '../Subscription/LimitationsManager.mjs'
 import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'

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

@@ -1,6 +1,6 @@
 import { callbackify } from 'node:util'
 import { Project } from '../../models/Project.js'
-import EmailHandler from '../Email/EmailHandler.js'
+import EmailHandler from '../Email/EmailHandler.mjs'
 import Settings from '@overleaf/settings'
 
 const CollaboratorsEmailHandler = {

+ 4 - 4
services/web/app/src/Features/Collaborators/CollaboratorsGetter.mjs

@@ -5,12 +5,12 @@ import pLimit from 'p-limit'
 import mongodb from 'mongodb-legacy'
 import OError from '@overleaf/o-error'
 import { Project } from '../../models/Project.js'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
-import PublicAccessLevels from '../Authorization/PublicAccessLevels.js'
+import PublicAccessLevels from '../Authorization/PublicAccessLevels.mjs'
 import Errors from '../Errors/Errors.js'
-import ProjectEditorHandler from '../Project/ProjectEditorHandler.js'
-import Sources from '../Authorization/Sources.js'
+import ProjectEditorHandler from '../Project/ProjectEditorHandler.mjs'
+import Sources from '../Authorization/Sources.mjs'
 import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
 
 const { ObjectId } = mongodb

+ 2 - 2
services/web/app/src/Features/Collaborators/CollaboratorsHandler.mjs

@@ -3,13 +3,13 @@ import OError from '@overleaf/o-error'
 import { Project } from '../../models/Project.js'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
 import logger from '@overleaf/logger'
-import ContactManager from '../Contacts/ContactManager.js'
+import ContactManager from '../Contacts/ContactManager.mjs'
 import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
 import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.mjs'
 import CollaboratorsGetter from './CollaboratorsGetter.mjs'
 import Errors from '../Errors/Errors.js'
 import TpdsUpdateSender from '../ThirdPartyDataStore/TpdsUpdateSender.mjs'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
 
 export default {
   userIsTokenMember: callbackify(userIsTokenMember),

+ 5 - 5
services/web/app/src/Features/Collaborators/CollaboratorsInviteController.mjs

@@ -1,15 +1,15 @@
 import ProjectGetter from '../Project/ProjectGetter.mjs'
 import LimitationsManager from '../Subscription/LimitationsManager.mjs'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import CollaboratorsGetter from './CollaboratorsGetter.mjs'
 import CollaboratorsInviteHandler from './CollaboratorsInviteHandler.mjs'
-import CollaboratorsInviteGetter from './CollaboratorsInviteGetter.js'
+import CollaboratorsInviteGetter from './CollaboratorsInviteGetter.mjs'
 import logger from '@overleaf/logger'
 import Settings from '@overleaf/settings'
 import EmailHelper from '../Helpers/EmailHelper.js'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import { RateLimiter } from '../../infrastructure/RateLimiter.js'
 import { z, zz, validateReq } from '../../infrastructure/Validation.js'
 import { expressify } from '@overleaf/promise-utils'

+ 4 - 4
services/web/app/src/Features/Collaborators/CollaboratorsInviteHandler.mjs

@@ -3,11 +3,11 @@ import { ProjectInvite } from '../../models/ProjectInvite.js'
 import logger from '@overleaf/logger'
 import CollaboratorsEmailHandler from './CollaboratorsEmailHandler.mjs'
 import CollaboratorsHandler from './CollaboratorsHandler.mjs'
-import CollaboratorsInviteGetter from './CollaboratorsInviteGetter.js'
-import CollaboratorsInviteHelper from './CollaboratorsInviteHelper.js'
-import UserGetter from '../User/UserGetter.js'
+import CollaboratorsInviteGetter from './CollaboratorsInviteGetter.mjs'
+import CollaboratorsInviteHelper from './CollaboratorsInviteHelper.mjs'
+import UserGetter from '../User/UserGetter.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
-import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
+import NotificationsBuilder from '../Notifications/NotificationsBuilder.mjs'
 import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
 import LimitationsManager from '../Subscription/LimitationsManager.mjs'
 import ProjectAuditLogHandler from '../Project/ProjectAuditLogHandler.mjs'

+ 4 - 4
services/web/app/src/Features/Collaborators/OwnershipTransferHandler.mjs

@@ -1,16 +1,16 @@
 import logger from '@overleaf/logger'
 import { Project } from '../../models/Project.js'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import CollaboratorsHandler from './CollaboratorsHandler.mjs'
-import EmailHandler from '../Email/EmailHandler.js'
+import EmailHandler from '../Email/EmailHandler.mjs'
 import Errors from '../Errors/Errors.js'
 import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
 import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.mjs'
 import ProjectAuditLogHandler from '../Project/ProjectAuditLogHandler.mjs'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
 import OError from '@overleaf/o-error'
-import TagsHandler from '../Tags/TagsHandler.js'
+import TagsHandler from '../Tags/TagsHandler.mjs'
 import { promiseMapWithLimit } from '@overleaf/promise-utils'
 
 export default {

+ 1 - 1
services/web/app/src/Features/Compile/ClsiCacheController.mjs

@@ -9,7 +9,7 @@ import logger from '@overleaf/logger'
 import ClsiCacheManager from './ClsiCacheManager.mjs'
 import CompileController from './CompileController.mjs'
 import { expressify } from '@overleaf/promise-utils'
-import ClsiCacheHandler from './ClsiCacheHandler.js'
+import ClsiCacheHandler from './ClsiCacheHandler.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
 import { MeteredStream } from '@overleaf/stream-utils'
 import Metrics from '@overleaf/metrics'

+ 2 - 2
services/web/app/src/Features/Compile/ClsiCacheManager.mjs

@@ -1,9 +1,9 @@
 import _ from 'lodash'
 import { NotFoundError, ResourceGoneError } from '../Errors/Errors.js'
-import ClsiCacheHandler from './ClsiCacheHandler.js'
+import ClsiCacheHandler from './ClsiCacheHandler.mjs'
 import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import Settings from '@overleaf/settings'
 import { fetchJson, RequestFailedError } from '@overleaf/fetch-utils'
 import Metrics from '@overleaf/metrics'

+ 3 - 3
services/web/app/src/Features/Compile/ClsiManager.mjs

@@ -19,10 +19,10 @@ import ClsiFormatChecker from './ClsiFormatChecker.mjs'
 import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
 import Metrics from '@overleaf/metrics'
 import Errors from '../Errors/Errors.js'
-import ClsiCacheHandler from './ClsiCacheHandler.js'
+import ClsiCacheHandler from './ClsiCacheHandler.mjs'
 import HistoryManager from '../History/HistoryManager.mjs'
-import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
+import SplitTestHandler from '../SplitTests/SplitTestHandler.mjs'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
 
 const ClsiCookieManager = ClsiCookieManagerFactory(
   Settings.apis.clsi?.backendGroupName

+ 3 - 3
services/web/app/src/Features/Compile/CompileController.mjs

@@ -9,13 +9,13 @@ import ClsiManager from './ClsiManager.mjs'
 import logger from '@overleaf/logger'
 import Settings from '@overleaf/settings'
 import Errors from '../Errors/Errors.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import { RateLimiter } from '../../infrastructure/RateLimiter.js'
 import Validation from '../../infrastructure/Validation.js'
 import ClsiCookieManagerFactory from './ClsiCookieManager.mjs'
 import Path from 'node:path'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
-import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
+import SplitTestHandler from '../SplitTests/SplitTestHandler.mjs'
 import { expressify } from '@overleaf/promise-utils'
 import {
   fetchStreamWithResponse,

+ 2 - 2
services/web/app/src/Features/Compile/CompileManager.mjs

@@ -3,11 +3,11 @@ import Settings from '@overleaf/settings'
 import RedisWrapper from '../../infrastructure/RedisWrapper.js'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
 import ProjectRootDocManager from '../Project/ProjectRootDocManager.mjs'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import ClsiManager from './ClsiManager.mjs'
 import Metrics from '@overleaf/metrics'
 import { RateLimiter } from '../../infrastructure/RateLimiter.js'
-import UserAnalyticsIdCache from '../Analytics/UserAnalyticsIdCache.js'
+import UserAnalyticsIdCache from '../Analytics/UserAnalyticsIdCache.mjs'
 import { callbackify, callbackifyMultiResult } from '@overleaf/promise-utils'
 let CompileManager
 const rclient = RedisWrapper.client('clsi_recently_compiled')

+ 3 - 3
services/web/app/src/Features/Contacts/ContactController.mjs

@@ -1,6 +1,6 @@
-import SessionManager from '../Authentication/SessionManager.js'
-import ContactManager from './ContactManager.js'
-import UserGetter from '../User/UserGetter.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import ContactManager from './ContactManager.mjs'
+import UserGetter from '../User/UserGetter.mjs'
 import Modules from '../../infrastructure/Modules.js'
 import { expressify } from '@overleaf/promise-utils'
 

+ 1 - 1
services/web/app/src/Features/Contacts/ContactRouter.mjs

@@ -1,5 +1,5 @@
 import AuthenticationController from '../Authentication/AuthenticationController.mjs'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import ContactController from './ContactController.mjs'
 import Settings from '@overleaf/settings'
 

+ 1 - 1
services/web/app/src/Features/Documents/DocumentController.mjs

@@ -1,4 +1,4 @@
-import ChatApiHandler from '../Chat/ChatApiHandler.js'
+import ChatApiHandler from '../Chat/ChatApiHandler.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
 import ProjectLocator from '../Project/ProjectLocator.mjs'
 import ProjectEntityHandler from '../Project/ProjectEntityHandler.mjs'

+ 3 - 3
services/web/app/src/Features/Editor/EditorController.mjs

@@ -2,12 +2,12 @@ import logger from '@overleaf/logger'
 import OError from '@overleaf/o-error'
 import Metrics from '@overleaf/metrics'
 import ProjectEntityUpdateHandler from '../Project/ProjectEntityUpdateHandler.mjs'
-import ProjectOptionsHandler from '../Project/ProjectOptionsHandler.js'
+import ProjectOptionsHandler from '../Project/ProjectOptionsHandler.mjs'
 import ProjectDetailsHandler from '../Project/ProjectDetailsHandler.mjs'
 import ProjectDeleter from '../Project/ProjectDeleter.mjs'
-import EditorRealTimeController from './EditorRealTimeController.js'
+import EditorRealTimeController from './EditorRealTimeController.mjs'
 import async from 'async'
-import PublicAccessLevels from '../Authorization/PublicAccessLevels.js'
+import PublicAccessLevels from '../Authorization/PublicAccessLevels.mjs'
 import { promisifyAll } from '@overleaf/promise-utils'
 
 const EditorController = {

+ 3 - 3
services/web/app/src/Features/Editor/EditorHttpController.mjs

@@ -2,11 +2,11 @@ import ProjectDeleter from '../Project/ProjectDeleter.mjs'
 import EditorController from './EditorController.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
 import AuthorizationManager from '../Authorization/AuthorizationManager.mjs'
-import ProjectEditorHandler from '../Project/ProjectEditorHandler.js'
+import ProjectEditorHandler from '../Project/ProjectEditorHandler.mjs'
 import Metrics from '@overleaf/metrics'
-import CollaboratorsInviteGetter from '../Collaborators/CollaboratorsInviteGetter.js'
+import CollaboratorsInviteGetter from '../Collaborators/CollaboratorsInviteGetter.mjs'
 import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import Errors from '../Errors/Errors.js'
 import { expressify } from '@overleaf/promise-utils'
 import Settings from '@overleaf/settings'

+ 2 - 2
services/web/app/src/Features/Errors/ErrorController.mjs

@@ -1,8 +1,8 @@
 import { isZodErrorLike, fromZodError } from 'zod-validation-error'
 import Errors from './Errors.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import SamlLogHandler from '../SamlLog/SamlLogHandler.mjs'
-import HttpErrorHandler from './HttpErrorHandler.js'
+import HttpErrorHandler from './HttpErrorHandler.mjs'
 import { plainTextResponse } from '../../infrastructure/Response.js'
 import { expressifyErrorHandler } from '@overleaf/promise-utils'
 

+ 1 - 1
services/web/app/src/Features/Exports/ExportsController.mjs

@@ -11,7 +11,7 @@
  */
 import ExportsHandler from './ExportsHandler.mjs'
 
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import logger from '@overleaf/logger'
 
 export default {

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

@@ -16,7 +16,7 @@ import ProjectGetter from '../Project/ProjectGetter.mjs'
 import ProjectHistoryHandler from '../Project/ProjectHistoryHandler.mjs'
 import ProjectLocator from '../Project/ProjectLocator.mjs'
 import ProjectRootDocManager from '../Project/ProjectRootDocManager.mjs'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import logger from '@overleaf/logger'
 import settings from '@overleaf/settings'
 import async from 'async'

+ 1 - 1
services/web/app/src/Features/FileStore/FileStoreHandler.mjs

@@ -1,7 +1,7 @@
 import logger from '@overleaf/logger'
 import fs from 'node:fs'
 import Async from 'async'
-import FileHashManager from './FileHashManager.js'
+import FileHashManager from './FileHashManager.mjs'
 import HistoryManager from '../History/HistoryManager.mjs'
 import ProjectDetailsHandler from '../Project/ProjectDetailsHandler.mjs'
 import { File } from '../../models/File.js'

+ 1 - 1
services/web/app/src/Features/HealthCheck/HealthCheckController.mjs

@@ -1,7 +1,7 @@
 import RedisWrapper from '../../infrastructure/RedisWrapper.js'
 import settings from '@overleaf/settings'
 import logger from '@overleaf/logger'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import {
   SmokeTestFailure,
   runSmokeTests,

+ 1 - 1
services/web/app/src/Features/Helpers/AdminAuthorizationHelper.mjs

@@ -1,7 +1,7 @@
 import Settings from '@overleaf/settings'
 import Modules from '../../infrastructure/Modules.js'
 import { expressify } from '@overleaf/promise-utils'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import logger from '@overleaf/logger'
 
 export default {

+ 2 - 2
services/web/app/src/Features/History/HistoryController.mjs

@@ -15,8 +15,8 @@ import {
 } from '@overleaf/fetch-utils'
 
 import settings from '@overleaf/settings'
-import SessionManager from '../Authentication/SessionManager.js'
-import UserGetter from '../User/UserGetter.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import UserGetter from '../User/UserGetter.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
 import Errors from '../Errors/Errors.js'
 import HistoryManager from './HistoryManager.mjs'

+ 2 - 2
services/web/app/src/Features/History/HistoryManager.mjs

@@ -8,9 +8,9 @@ import {
 import fs from 'node:fs'
 import settings from '@overleaf/settings'
 import OError from '@overleaf/o-error'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
-import HistoryBackupDeletionHandler from './HistoryBackupDeletionHandler.js'
+import HistoryBackupDeletionHandler from './HistoryBackupDeletionHandler.mjs'
 import { db, waitForDb } from '../../infrastructure/mongodb.js'
 import Metrics from '@overleaf/metrics'
 import { NotFoundError } from '../Errors/Errors.js'

+ 1 - 1
services/web/app/src/Features/History/HistoryOTMigration.mjs

@@ -2,7 +2,7 @@ import ProjectGetter from '../Project/ProjectGetter.mjs'
 import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
 import HistoryManager from '../History/HistoryManager.mjs'
 import * as RealTimeHandler from '../References/RealTime/RealTimeHandler.mjs'
-import ProjectOptionsHandler from '../Project/ProjectOptionsHandler.js'
+import ProjectOptionsHandler from '../Project/ProjectOptionsHandler.mjs'
 import {
   NotFoundError,
   FoundConnectedClientsError,

+ 2 - 2
services/web/app/src/Features/History/HistoryRangesSupportMigration.mjs

@@ -5,8 +5,8 @@ import OError from '@overleaf/o-error'
 import logger from '@overleaf/logger'
 import HistoryManager from '../History/HistoryManager.mjs'
 import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
-import DocstoreManager from '../Docstore/DocstoreManager.js'
-import ProjectOptionsHandler from '../Project/ProjectOptionsHandler.js'
+import DocstoreManager from '../Docstore/DocstoreManager.mjs'
+import ProjectOptionsHandler from '../Project/ProjectOptionsHandler.mjs'
 import mongodb from '../../infrastructure/mongodb.js'
 
 const { db, ObjectId, READ_PREFERENCE_SECONDARY } = mongodb

+ 4 - 4
services/web/app/src/Features/History/RestoreManager.mjs

@@ -3,17 +3,17 @@ import Path from 'node:path'
 import FileWriter from '../../infrastructure/FileWriter.js'
 import Metrics from '../../infrastructure/Metrics.js'
 import FileSystemImportManager from '../Uploads/FileSystemImportManager.mjs'
-import FileTypeManager from '../Uploads/FileTypeManager.js'
+import FileTypeManager from '../Uploads/FileTypeManager.mjs'
 import EditorController from '../Editor/EditorController.mjs'
 import Errors from '../Errors/Errors.js'
 import moment from 'moment'
 import { callbackifyAll } from '@overleaf/promise-utils'
 import ProjectLocator from '../Project/ProjectLocator.mjs'
 import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
-import ChatApiHandler from '../Chat/ChatApiHandler.js'
-import DocstoreManager from '../Docstore/DocstoreManager.js'
+import ChatApiHandler from '../Chat/ChatApiHandler.mjs'
+import DocstoreManager from '../Docstore/DocstoreManager.mjs'
 import logger from '@overleaf/logger'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
 import ChatManager from '../Chat/ChatManager.mjs'
 import OError from '@overleaf/o-error'
 import ProjectGetter from '../Project/ProjectGetter.mjs'

+ 2 - 2
services/web/app/src/Features/InactiveData/InactiveProjectManager.mjs

@@ -1,9 +1,9 @@
 import OError from '@overleaf/o-error'
 import logger from '@overleaf/logger'
-import DocstoreManager from '../Docstore/DocstoreManager.js'
+import DocstoreManager from '../Docstore/DocstoreManager.mjs'
 import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
-import ProjectUpdateHandler from '../Project/ProjectUpdateHandler.js'
+import ProjectUpdateHandler from '../Project/ProjectUpdateHandler.mjs'
 import { Project } from '../../models/Project.js'
 import Modules from '../../infrastructure/Modules.js'
 import { READ_PREFERENCE_SECONDARY } from '../../infrastructure/mongodb.js'

+ 3 - 3
services/web/app/src/Features/Institutions/InstitutionsGetter.mjs

@@ -1,7 +1,7 @@
 import { promisify, callbackify } from 'node:util'
-import UserGetter from '../User/UserGetter.js'
-import UserMembershipsHandler from '../UserMembership/UserMembershipsHandler.js'
-import UserMembershipEntityConfigs from '../UserMembership/UserMembershipEntityConfigs.js'
+import UserGetter from '../User/UserGetter.mjs'
+import UserMembershipsHandler from '../UserMembership/UserMembershipsHandler.mjs'
+import UserMembershipEntityConfigs from '../UserMembership/UserMembershipEntityConfigs.mjs'
 
 async function getCurrentAffiliations(userId) {
   const fullEmails = await UserGetter.promises.getUserFullEmails(userId)

+ 7 - 7
services/web/app/src/Features/Institutions/InstitutionsManager.mjs

@@ -3,13 +3,13 @@ import mongodb from 'mongodb-legacy'
 import Settings from '@overleaf/settings'
 import logger from '@overleaf/logger'
 import { fetchJson } from '@overleaf/fetch-utils'
-import InstitutionsAPI from './InstitutionsAPI.js'
-import FeaturesUpdater from '../Subscription/FeaturesUpdater.js'
-import FeaturesHelper from '../Subscription/FeaturesHelper.js'
-import UserGetter from '../User/UserGetter.js'
-import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
-import NotificationsHandler from '../Notifications/NotificationsHandler.js'
-import SubscriptionLocator from '../Subscription/SubscriptionLocator.js'
+import InstitutionsAPI from './InstitutionsAPI.mjs'
+import FeaturesUpdater from '../Subscription/FeaturesUpdater.mjs'
+import FeaturesHelper from '../Subscription/FeaturesHelper.mjs'
+import UserGetter from '../User/UserGetter.mjs'
+import NotificationsBuilder from '../Notifications/NotificationsBuilder.mjs'
+import NotificationsHandler from '../Notifications/NotificationsHandler.mjs'
+import SubscriptionLocator from '../Subscription/SubscriptionLocator.mjs'
 import { Institution } from '../../models/Institution.js'
 import { Subscription } from '../../models/Subscription.js'
 import OError from '@overleaf/o-error'

+ 3 - 3
services/web/app/src/Features/LinkedFiles/LinkedFilesController.mjs

@@ -10,10 +10,10 @@
  * DS207: Consider shorter variations of null checks
  * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  */
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import Settings from '@overleaf/settings'
 import _ from 'lodash'
-import AnalyticsManager from '../../../../app/src/Features/Analytics/AnalyticsManager.js'
+import AnalyticsManager from '../../../../app/src/Features/Analytics/AnalyticsManager.mjs'
 import LinkedFilesHandler from './LinkedFilesHandler.mjs'
 import LinkedFilesErrors from './LinkedFilesErrors.mjs'
 import {
@@ -23,7 +23,7 @@ import {
 import Modules from '../../infrastructure/Modules.js'
 import { plainTextResponse } from '../../infrastructure/Response.js'
 import { z, zz, validateReq } from '../../infrastructure/Validation.js'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
 import { expressify } from '@overleaf/promise-utils'
 import ProjectOutputFileAgent from './ProjectOutputFileAgent.mjs'
 import ProjectFileAgent from './ProjectFileAgent.mjs'

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

@@ -12,7 +12,7 @@
  */
 import AuthorizationManager from '../Authorization/AuthorizationManager.mjs'
 import ProjectLocator from '../Project/ProjectLocator.mjs'
-import DocstoreManager from '../Docstore/DocstoreManager.js'
+import DocstoreManager from '../Docstore/DocstoreManager.mjs'
 import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
 import _ from 'lodash'
 import LinkedFilesHandler from './LinkedFilesHandler.mjs'

+ 1 - 1
services/web/app/src/Features/LinkedFiles/UrlAgent.mjs

@@ -2,7 +2,7 @@ import logger from '@overleaf/logger'
 import urlValidator from 'valid-url'
 import LinkedFilesErrors from './LinkedFilesErrors.mjs'
 import LinkedFilesHandler from './LinkedFilesHandler.mjs'
-import UrlHelper from '../Helpers/UrlHelper.js'
+import UrlHelper from '../Helpers/UrlHelper.mjs'
 import { fetchStream, RequestFailedError } from '@overleaf/fetch-utils'
 import { callbackify } from '@overleaf/promise-utils'
 import { FileTooLargeError } from '../Errors/Errors.js'

+ 1 - 1
services/web/app/src/Features/Metadata/MetaController.mjs

@@ -1,5 +1,5 @@
 import OError from '@overleaf/o-error'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
 import MetaHandler from './MetaHandler.mjs'
 import logger from '@overleaf/logger'
 import { expressify } from '@overleaf/promise-utils'

+ 2 - 2
services/web/app/src/Features/Notifications/NotificationsController.mjs

@@ -1,5 +1,5 @@
-import NotificationsHandler from './NotificationsHandler.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import NotificationsHandler from './NotificationsHandler.mjs'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import _ from 'lodash'
 
 export default {

+ 5 - 5
services/web/app/src/Features/PasswordReset/PasswordResetController.mjs

@@ -1,10 +1,10 @@
 import PasswordResetHandler from './PasswordResetHandler.mjs'
 import AuthenticationController from '../Authentication/AuthenticationController.mjs'
-import AuthenticationManager from '../Authentication/AuthenticationManager.js'
-import SessionManager from '../Authentication/SessionManager.js'
-import UserGetter from '../User/UserGetter.js'
-import UserUpdater from '../User/UserUpdater.js'
-import UserSessionsManager from '../User/UserSessionsManager.js'
+import AuthenticationManager from '../Authentication/AuthenticationManager.mjs'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import UserGetter from '../User/UserGetter.mjs'
+import UserUpdater from '../User/UserUpdater.mjs'
+import UserSessionsManager from '../User/UserSessionsManager.mjs'
 import OError from '@overleaf/o-error'
 import EmailsHelper from '../Helpers/EmailHelper.js'
 import { expressify } from '@overleaf/promise-utils'

+ 4 - 4
services/web/app/src/Features/PasswordReset/PasswordResetHandler.mjs

@@ -1,9 +1,9 @@
 import settings from '@overleaf/settings'
-import UserAuditLogHandler from '../User/UserAuditLogHandler.js'
-import UserGetter from '../User/UserGetter.js'
+import UserAuditLogHandler from '../User/UserAuditLogHandler.mjs'
+import UserGetter from '../User/UserGetter.mjs'
 import OneTimeTokenHandler from '../Security/OneTimeTokenHandler.js'
-import EmailHandler from '../Email/EmailHandler.js'
-import AuthenticationManager from '../Authentication/AuthenticationManager.js'
+import EmailHandler from '../Email/EmailHandler.mjs'
+import AuthenticationManager from '../Authentication/AuthenticationManager.mjs'
 import { callbackify, promisify } from 'node:util'
 import PermissionsManager from '../Authorization/PermissionsManager.mjs'
 

+ 15 - 15
services/web/app/src/Features/Project/ProjectController.mjs

@@ -10,43 +10,43 @@ import ProjectDeleter from './ProjectDeleter.mjs'
 import ProjectDuplicator from './ProjectDuplicator.mjs'
 import ProjectCreationHandler from './ProjectCreationHandler.mjs'
 import EditorController from '../Editor/EditorController.mjs'
-import ProjectHelper from './ProjectHelper.js'
+import ProjectHelper from './ProjectHelper.mjs'
 import metrics from '@overleaf/metrics'
 import { User } from '../../models/User.js'
-import SubscriptionLocator from '../Subscription/SubscriptionLocator.js'
+import SubscriptionLocator from '../Subscription/SubscriptionLocator.mjs'
 import { isPaidSubscription } from '../Subscription/SubscriptionHelper.js'
 import LimitationsManager from '../Subscription/LimitationsManager.mjs'
 import Settings from '@overleaf/settings'
 import AuthorizationManager from '../Authorization/AuthorizationManager.mjs'
 import InactiveProjectManager from '../InactiveData/InactiveProjectManager.mjs'
-import ProjectUpdateHandler from './ProjectUpdateHandler.js'
+import ProjectUpdateHandler from './ProjectUpdateHandler.mjs'
 import ProjectGetter from './ProjectGetter.mjs'
 import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
-import SessionManager from '../Authentication/SessionManager.js'
-import Sources from '../Authorization/Sources.js'
-import TokenAccessHandler from '../TokenAccess/TokenAccessHandler.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import Sources from '../Authorization/Sources.mjs'
+import TokenAccessHandler from '../TokenAccess/TokenAccessHandler.mjs'
 import CollaboratorsGetter from '../Collaborators/CollaboratorsGetter.mjs'
 import ProjectEntityHandler from './ProjectEntityHandler.mjs'
 import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.mjs'
 import Features from '../../infrastructure/Features.js'
 import BrandVariationsHandler from '../BrandVariations/BrandVariationsHandler.mjs'
 import UserController from '../User/UserController.mjs'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
-import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
-import SplitTestSessionHandler from '../SplitTests/SplitTestSessionHandler.js'
-import FeaturesUpdater from '../Subscription/FeaturesUpdater.js'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
+import SplitTestHandler from '../SplitTests/SplitTestHandler.mjs'
+import SplitTestSessionHandler from '../SplitTests/SplitTestSessionHandler.mjs'
+import FeaturesUpdater from '../Subscription/FeaturesUpdater.mjs'
 import SpellingHandler from '../Spelling/SpellingHandler.mjs'
 import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
-import InstitutionsFeatures from '../Institutions/InstitutionsFeatures.js'
+import InstitutionsFeatures from '../Institutions/InstitutionsFeatures.mjs'
 import InstitutionsGetter from '../Institutions/InstitutionsGetter.mjs'
 import ProjectAuditLogHandler from './ProjectAuditLogHandler.mjs'
-import PublicAccessLevels from '../Authorization/PublicAccessLevels.js'
-import TagsHandler from '../Tags/TagsHandler.js'
+import PublicAccessLevels from '../Authorization/PublicAccessLevels.mjs'
+import TagsHandler from '../Tags/TagsHandler.mjs'
 import TutorialHandler from '../Tutorial/TutorialHandler.mjs'
-import UserUpdater from '../User/UserUpdater.js'
+import UserUpdater from '../User/UserUpdater.mjs'
 import Modules from '../../infrastructure/Modules.js'
 import { z, zz, validateReq } from '../../infrastructure/Validation.js'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import { isStandaloneAiAddOnPlanCode } from '../Subscription/AiHelper.js'
 import SubscriptionController from '../Subscription/SubscriptionController.mjs'
 import { formatCurrency } from '../../util/currency.js'

+ 2 - 2
services/web/app/src/Features/Project/ProjectCreationHandler.mjs

@@ -13,9 +13,9 @@ import fs from 'node:fs'
 import path from 'node:path'
 import { callbackify } from 'node:util'
 import _ from 'lodash'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
 import TpdsUpdateSender from '../ThirdPartyDataStore/TpdsUpdateSender.mjs'
-import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
+import SplitTestHandler from '../SplitTests/SplitTestHandler.mjs'
 
 const { ObjectId } = mongodb
 

+ 4 - 4
services/web/app/src/Features/Project/ProjectDeleter.mjs

@@ -13,14 +13,14 @@ import Errors from '../Errors/Errors.js'
 import logger from '@overleaf/logger'
 import Settings from '@overleaf/settings'
 import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
-import TagsHandler from '../Tags/TagsHandler.js'
+import TagsHandler from '../Tags/TagsHandler.mjs'
 import ProjectDetailsHandler from './ProjectDetailsHandler.mjs'
 import CollaboratorsHandler from '../Collaborators/CollaboratorsHandler.mjs'
 import CollaboratorsGetter from '../Collaborators/CollaboratorsGetter.mjs'
-import DocstoreManager from '../Docstore/DocstoreManager.js'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
+import DocstoreManager from '../Docstore/DocstoreManager.mjs'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
 import HistoryManager from '../History/HistoryManager.mjs'
-import ChatApiHandler from '../Chat/ChatApiHandler.js'
+import ChatApiHandler from '../Chat/ChatApiHandler.mjs'
 import { promiseMapWithLimit } from '@overleaf/promise-utils'
 
 const PROJECT_EXPIRATION_BATCH_SIZE = 10000

+ 3 - 3
services/web/app/src/Features/Project/ProjectDetailsHandler.mjs

@@ -1,13 +1,13 @@
 import _ from 'lodash'
 import ProjectGetter from './ProjectGetter.mjs'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import { Project } from '../../models/Project.js'
 import logger from '@overleaf/logger'
 import TpdsUpdateSender from '../ThirdPartyDataStore/TpdsUpdateSender.mjs'
-import PublicAccessLevels from '../Authorization/PublicAccessLevels.js'
+import PublicAccessLevels from '../Authorization/PublicAccessLevels.mjs'
 import Errors from '../Errors/Errors.js'
 import TokenGenerator from '../TokenGenerator/TokenGenerator.js'
-import ProjectHelper from './ProjectHelper.js'
+import ProjectHelper from './ProjectHelper.mjs'
 import settings from '@overleaf/settings'
 import { callbackify } from 'node:util'
 

+ 4 - 4
services/web/app/src/Features/Project/ProjectDuplicator.mjs

@@ -5,7 +5,7 @@ import OError from '@overleaf/o-error'
 import { promiseMapWithLimit } from '@overleaf/promise-utils'
 import { Doc } from '../../models/Doc.js'
 import { File } from '../../models/File.js'
-import DocstoreManager from '../Docstore/DocstoreManager.js'
+import DocstoreManager from '../Docstore/DocstoreManager.mjs'
 import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
 import HistoryManager from '../History/HistoryManager.mjs'
 import ProjectCreationHandler from './ProjectCreationHandler.mjs'
@@ -14,11 +14,11 @@ import ProjectEntityMongoUpdateHandler from './ProjectEntityMongoUpdateHandler.m
 import ProjectEntityUpdateHandler from './ProjectEntityUpdateHandler.mjs'
 import ProjectGetter from './ProjectGetter.mjs'
 import ProjectLocator from './ProjectLocator.mjs'
-import ProjectOptionsHandler from './ProjectOptionsHandler.js'
-import SafePath from './SafePath.js'
+import ProjectOptionsHandler from './ProjectOptionsHandler.mjs'
+import SafePath from './SafePath.mjs'
 import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.mjs'
 import _ from 'lodash'
-import TagsHandler from '../Tags/TagsHandler.js'
+import TagsHandler from '../Tags/TagsHandler.mjs'
 import ClsiCacheManager from '../Compile/ClsiCacheManager.mjs'
 import Modules from '../../infrastructure/Modules.js'
 

+ 1 - 1
services/web/app/src/Features/Project/ProjectEntityHandler.mjs

@@ -1,5 +1,5 @@
 import path from 'node:path'
-import DocstoreManager from '../Docstore/DocstoreManager.js'
+import DocstoreManager from '../Docstore/DocstoreManager.mjs'
 import Errors from '../Errors/Errors.js'
 import ProjectGetter from './ProjectGetter.mjs'
 import { callbackifyAll } from '@overleaf/promise-utils'

+ 2 - 2
services/web/app/src/Features/Project/ProjectEntityMongoUpdateHandler.mjs

@@ -13,8 +13,8 @@ import { Project } from '../../models/Project.js'
 import ProjectEntityHandler from './ProjectEntityHandler.mjs'
 import ProjectGetter from './ProjectGetter.mjs'
 import ProjectLocator from './ProjectLocator.mjs'
-import FolderStructureBuilder from './FolderStructureBuilder.js'
-import SafePath from './SafePath.js'
+import FolderStructureBuilder from './FolderStructureBuilder.mjs'
+import SafePath from './SafePath.mjs'
 import { iterablePaths } from './IterablePath.js'
 
 const { ObjectId } = mongodb

+ 5 - 5
services/web/app/src/Features/Project/ProjectEntityUpdateHandler.mjs

@@ -5,7 +5,7 @@ import Settings from '@overleaf/settings'
 import Path from 'node:path'
 import fs from 'node:fs'
 import { Doc } from '../../models/Doc.js'
-import DocstoreManager from '../Docstore/DocstoreManager.js'
+import DocstoreManager from '../Docstore/DocstoreManager.mjs'
 import DocumentUpdaterHandler from '../../Features/DocumentUpdater/DocumentUpdaterHandler.mjs'
 import Errors from '../Errors/Errors.js'
 import FileStoreHandler from '../FileStore/FileStoreHandler.mjs'
@@ -14,13 +14,13 @@ import { Project } from '../../models/Project.js'
 import ProjectEntityHandler from './ProjectEntityHandler.mjs'
 import ProjectGetter from './ProjectGetter.mjs'
 import ProjectLocator from './ProjectLocator.mjs'
-import ProjectOptionsHandler from './ProjectOptionsHandler.js'
-import ProjectUpdateHandler from './ProjectUpdateHandler.js'
+import ProjectOptionsHandler from './ProjectOptionsHandler.mjs'
+import ProjectUpdateHandler from './ProjectUpdateHandler.mjs'
 import ProjectEntityMongoUpdateHandler from './ProjectEntityMongoUpdateHandler.mjs'
-import SafePath from './SafePath.js'
+import SafePath from './SafePath.mjs'
 import TpdsUpdateSender from '../ThirdPartyDataStore/TpdsUpdateSender.mjs'
 import FileWriter from '../../infrastructure/FileWriter.js'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
 import { callbackifyMultiResult, callbackify } from '@overleaf/promise-utils'
 import { iterablePaths } from './IterablePath.js'
 

+ 10 - 10
services/web/app/src/Features/Project/ProjectListController.mjs

@@ -4,32 +4,32 @@ import moment from 'moment'
 
 import Metrics from '@overleaf/metrics'
 import Settings from '@overleaf/settings'
-import ProjectHelper from './ProjectHelper.js'
+import ProjectHelper from './ProjectHelper.mjs'
 import ProjectGetter from './ProjectGetter.mjs'
 import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
-import SessionManager from '../Authentication/SessionManager.js'
-import Sources from '../Authorization/Sources.js'
-import UserGetter from '../User/UserGetter.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import Sources from '../Authorization/Sources.mjs'
+import UserGetter from '../User/UserGetter.mjs'
 import SurveyHandler from '../Survey/SurveyHandler.mjs'
-import TagsHandler from '../Tags/TagsHandler.js'
+import TagsHandler from '../Tags/TagsHandler.mjs'
 import { expressify } from '@overleaf/promise-utils'
 import logger from '@overleaf/logger'
 import Features from '../../infrastructure/Features.js'
 import SubscriptionViewModelBuilder from '../Subscription/SubscriptionViewModelBuilder.mjs'
-import NotificationsHandler from '../Notifications/NotificationsHandler.js'
+import NotificationsHandler from '../Notifications/NotificationsHandler.mjs'
 import Modules from '../../infrastructure/Modules.js'
 import { OError, V1ConnectionError } from '../Errors/Errors.js'
 import { User } from '../../models/User.js'
 import UserPrimaryEmailCheckHandler from '../User/UserPrimaryEmailCheckHandler.mjs'
 import UserController from '../User/UserController.mjs'
-import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
+import NotificationsBuilder from '../Notifications/NotificationsBuilder.mjs'
 import GeoIpLookup from '../../infrastructure/GeoIpLookup.mjs'
-import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
-import SplitTestSessionHandler from '../SplitTests/SplitTestSessionHandler.js'
+import SplitTestHandler from '../SplitTests/SplitTestHandler.mjs'
+import SplitTestSessionHandler from '../SplitTests/SplitTestSessionHandler.mjs'
 import TutorialHandler from '../Tutorial/TutorialHandler.mjs'
 import SubscriptionHelper from '../Subscription/SubscriptionHelper.js'
 import PermissionsManager from '../Authorization/PermissionsManager.mjs'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
 import { OnboardingDataCollection } from '../../models/OnboardingDataCollection.js'
 import UserSettingsHelper from './UserSettingsHelper.mjs'
 

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

@@ -15,7 +15,7 @@
 import ProjectEntityHandler from './ProjectEntityHandler.mjs'
 import ProjectEntityUpdateHandler from './ProjectEntityUpdateHandler.mjs'
 import ProjectGetter from './ProjectGetter.mjs'
-import DocumentHelper from '../Documents/DocumentHelper.js'
+import DocumentHelper from '../Documents/DocumentHelper.mjs'
 import Path from 'node:path'
 import fs from 'node:fs'
 import async from 'async'

+ 1 - 1
services/web/app/src/Features/Referal/ReferalAllocator.mjs

@@ -1,6 +1,6 @@
 import OError from '@overleaf/o-error'
 import { User } from '../../models/User.js'
-import FeaturesUpdater from '../Subscription/FeaturesUpdater.js'
+import FeaturesUpdater from '../Subscription/FeaturesUpdater.mjs'
 import { callbackify } from '@overleaf/promise-utils'
 
 async function allocate(referalId, newUserId, referalSource, referalMedium) {

+ 1 - 1
services/web/app/src/Features/Referal/ReferalController.mjs

@@ -1,5 +1,5 @@
 import ReferalHandler from './ReferalHandler.mjs'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 
 export default {
   bonus(req, res, next) {

+ 1 - 1
services/web/app/src/Features/References/ReferencesController.mjs

@@ -1,4 +1,4 @@
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
 
 export default {
   indexAll(req, res, next) {

+ 1 - 1
services/web/app/src/Features/SamlLog/SamlLogHandler.mjs

@@ -1,5 +1,5 @@
 import { SamlLog } from '../../models/SamlLog.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import logger from '@overleaf/logger'
 import loggerSerializers from '@overleaf/logger/serializers.js'
 import { callbackify } from 'node:util'

+ 1 - 1
services/web/app/src/Features/Security/RateLimiterMiddleware.mjs

@@ -1,5 +1,5 @@
 import logger from '@overleaf/logger'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import LoginRateLimiter from './LoginRateLimiter.js'
 import settings from '@overleaf/settings'
 

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

@@ -4,7 +4,7 @@ import https from 'node:https'
 import Settings from '@overleaf/settings'
 import TpdsUpdateSender from '../ThirdPartyDataStore/TpdsUpdateSender.mjs'
 import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.mjs'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
 import SystemMessageManager from '../SystemMessages/SystemMessageManager.mjs'
 
 const AdminController = {

+ 1 - 1
services/web/app/src/Features/Spelling/SpellingController.mjs

@@ -1,6 +1,6 @@
 // @ts-check
 
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import LearnedWordsManager from './LearnedWordsManager.mjs'
 import { z, validateReq } from '../../infrastructure/Validation.js'
 

+ 1 - 1
services/web/app/src/Features/SplitTests/SlackNotificationManager.mjs

@@ -2,7 +2,7 @@ import logger from '@overleaf/logger'
 import Settings from '@overleaf/settings'
 import { IncomingWebhook } from '@slack/webhook'
 import moment from 'moment'
-import SplitTestUtils from './SplitTestUtils.js'
+import SplitTestUtils from './SplitTestUtils.mjs'
 
 async function sendNotification(splitTest, action, user) {
   const lastVersion = SplitTestUtils.getCurrentVersion(splitTest)

+ 1 - 1
services/web/app/src/Features/SplitTests/SplitTestMiddleware.mjs

@@ -1,4 +1,4 @@
-import SplitTestHandler from './SplitTestHandler.js'
+import SplitTestHandler from './SplitTestHandler.mjs'
 import logger from '@overleaf/logger'
 import { expressify } from '@overleaf/promise-utils'
 import Errors from '../Errors/Errors.js'

+ 3 - 3
services/web/app/src/Features/StaticPages/HomeController.mjs

@@ -1,12 +1,12 @@
 import Features from '../../infrastructure/Features.js'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
 import Path from 'node:path'
 import fs from 'node:fs'
 import ErrorController from '../Errors/ErrorController.mjs'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import { expressify } from '@overleaf/promise-utils'
 import logger from '@overleaf/logger'
-import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
+import SplitTestHandler from '../SplitTests/SplitTestHandler.mjs'
 
 const __dirname = new URL('.', import.meta.url).pathname
 

+ 3 - 3
services/web/app/src/Features/Subscription/LimitationsManager.mjs

@@ -3,11 +3,11 @@
 import logger from '@overleaf/logger'
 
 import ProjectGetter from '../Project/ProjectGetter.mjs'
-import UserGetter from '../User/UserGetter.js'
-import SubscriptionLocator from './SubscriptionLocator.js'
+import UserGetter from '../User/UserGetter.mjs'
+import SubscriptionLocator from './SubscriptionLocator.mjs'
 import Settings from '@overleaf/settings'
 import CollaboratorsGetter from '../Collaborators/CollaboratorsGetter.mjs'
-import CollaboratorsInvitesGetter from '../Collaborators/CollaboratorsInviteGetter.js'
+import CollaboratorsInvitesGetter from '../Collaborators/CollaboratorsInviteGetter.mjs'
 import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
 import { callbackify, callbackifyMultiResult } from '@overleaf/promise-utils'
 

+ 2 - 2
services/web/app/src/Features/Subscription/PlansHelper.mjs

@@ -1,5 +1,5 @@
-import FeaturesHelper from './FeaturesHelper.js'
-import PlanLocator from './PlansLocator.js'
+import FeaturesHelper from './FeaturesHelper.mjs'
+import PlanLocator from './PlansLocator.mjs'
 
 export function isProfessionalPlan(planCode) {
   const plan = PlanLocator.findLocalPlanInSettings(planCode)

+ 9 - 11
services/web/app/src/Features/Subscription/RecurlyClient.mjs

@@ -7,15 +7,7 @@ import logger from '@overleaf/logger'
 import OError from '@overleaf/o-error'
 import { callbackify } from 'node:util'
 import UserGetter from '../User/UserGetter.mjs'
-import PaymentProviderEntities from './PaymentProviderEntities.mjs'
 import {
-  MissingBillingInfoError,
-  SubtotalLimitExceededError,
-} from './Errors.js'
-import RecurlyMetrics from './RecurlyMetrics.mjs'
-import { isStandaloneAiAddOnPlanCode, AI_ADD_ON_CODE } from './AiHelper.js'
-
-const {
   PaymentProviderSubscription,
   PaymentProviderSubscriptionAddOn,
   PaymentProviderSubscriptionChange,
@@ -26,11 +18,17 @@ const {
   PaymentProviderCoupon,
   PaymentProviderAccount,
   PaymentProviderImmediateCharge,
-} = PaymentProviderEntities
+} from './PaymentProviderEntities.mjs'
+import {
+  MissingBillingInfoError,
+  SubtotalLimitExceededError,
+} from './Errors.js'
+import RecurlyMetrics from './RecurlyMetrics.mjs'
+import { isStandaloneAiAddOnPlanCode, AI_ADD_ON_CODE } from './AiHelper.js'
 
 /**
- * @import { PaymentProviderSubscriptionChangeRequest } from './PaymentProviderEntities'
- * @import { PaymentProviderSubscriptionUpdateRequest } from './PaymentProviderEntities'
+ * @import { PaymentProviderSubscriptionChangeRequest } from './PaymentProviderEntities.mjs'
+ * @import { PaymentProviderSubscriptionUpdateRequest } from './PaymentProviderEntities.mjs'
  * @import { PaymentMethod } from './types'
  * @import { CurrencyCode } from '../../../../types/subscription/currency'
  */

+ 2 - 2
services/web/app/src/Features/Subscription/RecurlyEventHandler.mjs

@@ -1,5 +1,5 @@
-import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
+import SplitTestHandler from '../SplitTests/SplitTestHandler.mjs'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
 import SubscriptionEmailHandler from './SubscriptionEmailHandler.mjs'
 import { AI_ADD_ON_CODE } from './AiHelper.js'
 import mongodb from 'mongodb-legacy'

+ 12 - 12
services/web/app/src/Features/Subscription/SubscriptionController.mjs

@@ -1,40 +1,40 @@
 // @ts-check
 
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import SubscriptionHandler from './SubscriptionHandler.mjs'
 import SubscriptionHelper from './SubscriptionHelper.js'
 import SubscriptionViewModelBuilder from './SubscriptionViewModelBuilder.mjs'
 import LimitationsManager from './LimitationsManager.mjs'
-import RecurlyWrapper from './RecurlyWrapper.js'
+import RecurlyWrapper from './RecurlyWrapper.mjs'
 import Settings from '@overleaf/settings'
 import logger from '@overleaf/logger'
 import GeoIpLookup from '../../infrastructure/GeoIpLookup.mjs'
-import FeaturesUpdater from './FeaturesUpdater.js'
+import FeaturesUpdater from './FeaturesUpdater.mjs'
 import GroupPlansData from './GroupPlansData.js'
-import V1SubscriptionManager from './V1SubscriptionManager.js'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
+import V1SubscriptionManager from './V1SubscriptionManager.mjs'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
 import RecurlyEventHandler from './RecurlyEventHandler.mjs'
 import { expressify } from '@overleaf/promise-utils'
 import OError from '@overleaf/o-error'
 import Errors from './Errors.js'
-import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
+import SplitTestHandler from '../SplitTests/SplitTestHandler.mjs'
 import AuthorizationManager from '../Authorization/AuthorizationManager.mjs'
 import Modules from '../../infrastructure/Modules.js'
 import async from 'async'
-import HttpErrorHandler from '../Errors/HttpErrorHandler.js'
-import RecurlyClient from './RecurlyClient.js'
+import HttpErrorHandler from '../Errors/HttpErrorHandler.mjs'
+import RecurlyClient from './RecurlyClient.mjs'
 import {
   AI_ADD_ON_CODE,
   subscriptionChangeIsAiAssistUpgrade,
 } from './AiHelper.js'
-import PlansLocator from './PlansLocator.js'
+import PlansLocator from './PlansLocator.mjs'
 import { User } from '../../models/User.js'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import PermissionsManager from '../Authorization/PermissionsManager.mjs'
 import { sanitizeSessionUserForFrontEnd } from '../../infrastructure/FrontEndUser.mjs'
 import { z, validateReq } from '../../infrastructure/Validation.js'
 import { IndeterminateInvoiceError } from '../Errors/Errors.js'
-import SubscriptionLocator from './SubscriptionLocator.js'
+import SubscriptionLocator from './SubscriptionLocator.mjs'
 
 const {
   DuplicateAddOnError,
@@ -157,7 +157,7 @@ async function checkSubscriptionPauseStatus(user) {
 /**
  * @import { SubscriptionChangeDescription } from '../../../../types/subscription/subscription-change-preview'
  * @import { SubscriptionChangePreview } from '../../../../types/subscription/subscription-change-preview'
- * @import { PaymentProviderSubscriptionChange } from './PaymentProviderEntities'
+ * @import { PaymentProviderSubscriptionChange } from './PaymentProviderEntities.mjs'
  * @import { PaymentMethod } from './types'
  */
 

+ 1 - 1
services/web/app/src/Features/Subscription/SubscriptionEmailBuilder.mjs

@@ -1,4 +1,4 @@
-import EmailBuilder from '../Email/EmailBuilder.js'
+import EmailBuilder from '../Email/EmailBuilder.mjs'
 import EmailMessageHelper from '../Email/EmailMessageHelper.js'
 import settings from '@overleaf/settings'
 

+ 3 - 3
services/web/app/src/Features/Subscription/SubscriptionEmailHandler.mjs

@@ -1,7 +1,7 @@
-import EmailHandler from '../Email/EmailHandler.js'
-import UserGetter from '../User/UserGetter.js'
+import EmailHandler from '../Email/EmailHandler.mjs'
+import UserGetter from '../User/UserGetter.mjs'
 import './SubscriptionEmailBuilder.mjs'
-import PlansLocator from './PlansLocator.js'
+import PlansLocator from './PlansLocator.mjs'
 import Settings from '@overleaf/settings'
 
 const SubscriptionEmailHandler = {

+ 4 - 4
services/web/app/src/Features/Subscription/SubscriptionGroupController.mjs

@@ -2,12 +2,12 @@ import SubscriptionGroupHandler from './SubscriptionGroupHandler.mjs'
 
 import OError from '@overleaf/o-error'
 import logger from '@overleaf/logger'
-import SubscriptionLocator from './SubscriptionLocator.js'
-import SessionManager from '../Authentication/SessionManager.js'
-import UserAuditLogHandler from '../User/UserAuditLogHandler.js'
+import SubscriptionLocator from './SubscriptionLocator.mjs'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import UserAuditLogHandler from '../User/UserAuditLogHandler.mjs'
 import { expressify } from '@overleaf/promise-utils'
 import Modules from '../../infrastructure/Modules.js'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import { Subscription } from '../../models/Subscription.js'
 import { z, validateReq } from '../../infrastructure/Validation.js'
 import { isProfessionalGroupPlan } from './PlansHelper.mjs'

+ 4 - 4
services/web/app/src/Features/Subscription/SubscriptionGroupHandler.mjs

@@ -1,17 +1,17 @@
 import { callbackify } from 'node:util'
 import _ from 'lodash'
 import OError from '@overleaf/o-error'
-import SubscriptionUpdater from './SubscriptionUpdater.js'
-import SubscriptionLocator from './SubscriptionLocator.js'
+import SubscriptionUpdater from './SubscriptionUpdater.mjs'
+import SubscriptionLocator from './SubscriptionLocator.mjs'
 import SubscriptionController from './SubscriptionController.mjs'
 import SubscriptionHelper from './SubscriptionHelper.js'
 import { Subscription } from '../../models/Subscription.js'
 import { User } from '../../models/User.js'
-import PlansLocator from './PlansLocator.js'
+import PlansLocator from './PlansLocator.mjs'
 import TeamInvitesHandler from './TeamInvitesHandler.mjs'
 import GroupPlansData from './GroupPlansData.js'
 import Modules from '../../infrastructure/Modules.js'
-import PaymentProviderEntities from './PaymentProviderEntities.js'
+import PaymentProviderEntities from './PaymentProviderEntities.mjs'
 import {
   ManuallyCollectedError,
   PendingChangeError,

+ 7 - 7
services/web/app/src/Features/Subscription/SubscriptionHandler.mjs

@@ -1,22 +1,22 @@
 // @ts-check
 
-import RecurlyWrapper from './RecurlyWrapper.js'
+import RecurlyWrapper from './RecurlyWrapper.mjs'
 
-import RecurlyClient from './RecurlyClient.js'
+import RecurlyClient from './RecurlyClient.mjs'
 import { User } from '../../models/User.js'
 import logger from '@overleaf/logger'
 import SubscriptionHelper from './SubscriptionHelper.js'
-import SubscriptionUpdater from './SubscriptionUpdater.js'
-import SubscriptionLocator from './SubscriptionLocator.js'
+import SubscriptionUpdater from './SubscriptionUpdater.mjs'
+import SubscriptionLocator from './SubscriptionLocator.mjs'
 import LimitationsManager from './LimitationsManager.mjs'
-import EmailHandler from '../Email/EmailHandler.js'
+import EmailHandler from '../Email/EmailHandler.mjs'
 import { callbackify } from '@overleaf/promise-utils'
-import UserUpdater from '../User/UserUpdater.js'
+import UserUpdater from '../User/UserUpdater.mjs'
 import { IndeterminateInvoiceError } from '../Errors/Errors.js'
 import Modules from '../../infrastructure/Modules.js'
 
 /**
- * @import { PaymentProviderSubscriptionChange } from './PaymentProviderEntities'
+ * @import { PaymentProviderSubscriptionChange } from './PaymentProviderEntities.mjs'
  */
 
 async function validateNoSubscriptionInRecurly(userId) {

+ 8 - 6
services/web/app/src/Features/Subscription/SubscriptionViewModelBuilder.mjs

@@ -1,24 +1,26 @@
 // ts-check
 import Settings from '@overleaf/settings'
 
-import PlansLocator from './PlansLocator.js'
+import PlansLocator from './PlansLocator.mjs'
 import { isStandaloneAiAddOnPlanCode } from './AiHelper.js'
-import { MEMBERS_LIMIT_ADD_ON_CODE } from './PaymentProviderEntities.js'
+import PaymentProviderEntities from './PaymentProviderEntities.mjs'
 import SubscriptionFormatters from './SubscriptionFormatters.mjs'
-import SubscriptionLocator from './SubscriptionLocator.js'
+import SubscriptionLocator from './SubscriptionLocator.mjs'
 import InstitutionsGetter from '../Institutions/InstitutionsGetter.mjs'
 import InstitutionsManager from '../Institutions/InstitutionsManager.mjs'
-import PublishersGetter from '../Publishers/PublishersGetter.js'
+import PublishersGetter from '../Publishers/PublishersGetter.mjs'
 import sanitizeHtml from 'sanitize-html'
 import _ from 'lodash'
 import async from 'async'
 import SubscriptionHelper from './SubscriptionHelper.js'
 import { callbackify } from '@overleaf/promise-utils'
 import { V1ConnectionError } from '../Errors/Errors.js'
-import FeaturesHelper from './FeaturesHelper.js'
+import FeaturesHelper from './FeaturesHelper.mjs'
 import { formatCurrency } from '../../util/currency.js'
 import Modules from '../../infrastructure/Modules.js'
-import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
+import SplitTestHandler from '../SplitTests/SplitTestHandler.mjs'
+
+const { MEMBERS_LIMIT_ADD_ON_CODE } = PaymentProviderEntities
 
 /**
  * @import { Subscription } from "../../../../types/project/dashboard/subscription"

+ 6 - 6
services/web/app/src/Features/Subscription/TeamInvitesController.mjs

@@ -2,19 +2,19 @@ import settings from '@overleaf/settings'
 import logger from '@overleaf/logger'
 import OError from '@overleaf/o-error'
 import TeamInvitesHandler from './TeamInvitesHandler.mjs'
-import SessionManager from '../Authentication/SessionManager.js'
-import SubscriptionLocator from './SubscriptionLocator.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import SubscriptionLocator from './SubscriptionLocator.mjs'
 import SubscriptionHelper from './SubscriptionHelper.js'
 import ErrorController from '../Errors/ErrorController.mjs'
 import EmailHelper from '../Helpers/EmailHelper.js'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 import { expressify } from '@overleaf/promise-utils'
-import HttpErrorHandler from '../Errors/HttpErrorHandler.js'
+import HttpErrorHandler from '../Errors/HttpErrorHandler.mjs'
 import PermissionsManager from '../Authorization/PermissionsManager.mjs'
-import EmailHandler from '../Email/EmailHandler.js'
+import EmailHandler from '../Email/EmailHandler.mjs'
 import { RateLimiter } from '../../infrastructure/RateLimiter.js'
 import Modules from '../../infrastructure/Modules.js'
-import UserAuditLogHandler from '../User/UserAuditLogHandler.js'
+import UserAuditLogHandler from '../User/UserAuditLogHandler.mjs'
 import { sanitizeSessionUserForFrontEnd } from '../../infrastructure/FrontEndUser.mjs'
 
 const rateLimiters = {

+ 6 - 6
services/web/app/src/Features/Subscription/TeamInvitesHandler.mjs

@@ -5,16 +5,16 @@ import Modules from '../../infrastructure/Modules.js'
 import mongodb from 'mongodb-legacy'
 import { Subscription } from '../../models/Subscription.js'
 import { SSOConfig } from '../../models/SSOConfig.js'
-import UserGetter from '../User/UserGetter.js'
-import SubscriptionLocator from './SubscriptionLocator.js'
-import SubscriptionUpdater from './SubscriptionUpdater.js'
+import UserGetter from '../User/UserGetter.mjs'
+import SubscriptionLocator from './SubscriptionLocator.mjs'
+import SubscriptionUpdater from './SubscriptionUpdater.mjs'
 import LimitationsManager from './LimitationsManager.mjs'
-import EmailHandler from '../Email/EmailHandler.js'
+import EmailHandler from '../Email/EmailHandler.mjs'
 import EmailHelper from '../Helpers/EmailHelper.js'
 import Errors from '../Errors/Errors.js'
 import { callbackify, callbackifyMultiResult } from '@overleaf/promise-utils'
-import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
-import RecurlyClient from './RecurlyClient.js'
+import NotificationsBuilder from '../Notifications/NotificationsBuilder.mjs'
+import RecurlyClient from './RecurlyClient.mjs'
 
 const { ObjectId } = mongodb
 

+ 1 - 1
services/web/app/src/Features/Subscription/types.ts

@@ -1,6 +1,6 @@
 import {
   PaypalPaymentMethod,
   CreditCardPaymentMethod,
-} from './PaymentProviderEntities'
+} from './PaymentProviderEntities.mjs'
 
 export type PaymentMethod = PaypalPaymentMethod | CreditCardPaymentMethod

+ 2 - 2
services/web/app/src/Features/Survey/SurveyHandler.mjs

@@ -2,9 +2,9 @@
 import crypto from 'node:crypto'
 
 import SurveyCache from './SurveyCache.mjs'
-import SubscriptionLocator from '../Subscription/SubscriptionLocator.js'
+import SubscriptionLocator from '../Subscription/SubscriptionLocator.mjs'
 import { callbackify } from '@overleaf/promise-utils'
-import UserGetter from '../User/UserGetter.js'
+import UserGetter from '../User/UserGetter.mjs'
 
 /**
  * @import { Survey } from '../../../../types/project/dashboard/survey'

+ 1 - 1
services/web/app/src/Features/SystemMessages/SystemMessageController.mjs

@@ -1,5 +1,5 @@
 import Settings from '@overleaf/settings'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import SystemMessageManager from './SystemMessageManager.mjs'
 
 const ProjectController = {

+ 2 - 2
services/web/app/src/Features/Tags/TagsController.mjs

@@ -1,5 +1,5 @@
-import TagsHandler from './TagsHandler.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import TagsHandler from './TagsHandler.mjs'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import Errors from '../Errors/Errors.js'
 import { z, validateReq } from '../../infrastructure/Validation.js'
 import { expressify } from '@overleaf/promise-utils'

+ 2 - 2
services/web/app/src/Features/Templates/TemplatesController.mjs

@@ -1,7 +1,7 @@
 import path from 'node:path'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import TemplatesManager from './TemplatesManager.mjs'
-import ProjectHelper from '../Project/ProjectHelper.js'
+import ProjectHelper from '../Project/ProjectHelper.mjs'
 import logger from '@overleaf/logger'
 import { expressify } from '@overleaf/promise-utils'
 

+ 1 - 1
services/web/app/src/Features/Templates/TemplatesManager.mjs

@@ -1,6 +1,6 @@
 import { Project } from '../../models/Project.js'
 import ProjectDetailsHandler from '../Project/ProjectDetailsHandler.mjs'
-import ProjectOptionsHandlerModule from '../Project/ProjectOptionsHandler.js'
+import ProjectOptionsHandlerModule from '../Project/ProjectOptionsHandler.mjs'
 import ProjectRootDocManagerModule from '../Project/ProjectRootDocManager.mjs'
 import ProjectUploadManager from '../Uploads/ProjectUploadManager.mjs'
 import fs from 'node:fs'

+ 3 - 3
services/web/app/src/Features/ThirdPartyDataStore/TpdsController.mjs

@@ -5,11 +5,11 @@ import Errors from '../Errors/Errors.js'
 import logger from '@overleaf/logger'
 import Path from 'node:path'
 import metrics from '@overleaf/metrics'
-import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import NotificationsBuilder from '../Notifications/NotificationsBuilder.mjs'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import ProjectCreationHandler from '../Project/ProjectCreationHandler.mjs'
 import ProjectDetailsHandler from '../Project/ProjectDetailsHandler.mjs'
-import HttpErrorHandler from '../Errors/HttpErrorHandler.js'
+import HttpErrorHandler from '../Errors/HttpErrorHandler.mjs'
 import TpdsQueueManager from './TpdsQueueManager.mjs'
 
 async function createProject(req, res) {

+ 3 - 3
services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateHandler.mjs

@@ -1,13 +1,13 @@
 import { callbackify } from 'node:util'
 import UpdateMerger from './UpdateMerger.mjs'
 import logger from '@overleaf/logger'
-import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
+import NotificationsBuilder from '../Notifications/NotificationsBuilder.mjs'
 import ProjectCreationHandler from '../Project/ProjectCreationHandler.mjs'
 import ProjectDeleter from '../Project/ProjectDeleter.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
-import ProjectHelper from '../Project/ProjectHelper.js'
+import ProjectHelper from '../Project/ProjectHelper.mjs'
 import ProjectRootDocManager from '../Project/ProjectRootDocManager.mjs'
-import FileTypeManager from '../Uploads/FileTypeManager.js'
+import FileTypeManager from '../Uploads/FileTypeManager.mjs'
 import CooldownManager from '../Cooldown/CooldownManager.js'
 import Errors from '../Errors/Errors.js'
 import Modules from '../../infrastructure/Modules.js'

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

@@ -7,7 +7,7 @@ import Path from 'node:path'
 import { fetchNothing } from '@overleaf/fetch-utils'
 import settings from '@overleaf/settings'
 import CollaboratorsGetterModule from '../Collaborators/CollaboratorsGetter.mjs'
-import UserGetterModule from '../User/UserGetter.js'
+import UserGetterModule from '../User/UserGetter.mjs'
 
 const { promises: UserGetter } = UserGetterModule
 const { promises: CollaboratorsGetter } = CollaboratorsGetterModule

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

@@ -4,7 +4,7 @@ import fsPromises from 'node:fs/promises'
 import fs from 'node:fs'
 import logger from '@overleaf/logger'
 import EditorController from '../Editor/EditorController.mjs'
-import FileTypeManager from '../Uploads/FileTypeManager.js'
+import FileTypeManager from '../Uploads/FileTypeManager.mjs'
 import ProjectEntityHandler from '../Project/ProjectEntityHandler.mjs'
 import crypto from 'node:crypto'
 import Settings from '@overleaf/settings'

+ 8 - 7
services/web/app/src/Features/TokenAccess/TokenAccessController.mjs

@@ -1,6 +1,6 @@
 import AuthenticationController from '../Authentication/AuthenticationController.mjs'
-import SessionManager from '../Authentication/SessionManager.js'
-import TokenAccessHandler from './TokenAccessHandler.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
+import TokenAccessHandler from './TokenAccessHandler.mjs'
 import Errors from '../Errors/Errors.js'
 import logger from '@overleaf/logger'
 import OError from '@overleaf/o-error'
@@ -10,17 +10,18 @@ import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
 import ProjectAuditLogHandler from '../Project/ProjectAuditLogHandler.mjs'
 import CollaboratorsInviteHandler from '../Collaborators/CollaboratorsInviteHandler.mjs'
 import CollaboratorsHandler from '../Collaborators/CollaboratorsHandler.mjs'
-import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
+import EditorRealTimeController from '../Editor/EditorRealTimeController.mjs'
 import CollaboratorsGetter from '../Collaborators/CollaboratorsGetter.mjs'
 import ProjectGetter from '../Project/ProjectGetter.mjs'
-import AsyncFormHelper from '../Helpers/AsyncFormHelper.js'
-import AnalyticsManager from '../Analytics/AnalyticsManager.js'
+import AsyncFormHelper from '../Helpers/AsyncFormHelper.mjs'
+import AnalyticsManager from '../Analytics/AnalyticsManager.mjs'
 import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
-import { getSafeAdminDomainRedirect } from '../Helpers/UrlHelper.js'
-import UserGetter from '../User/UserGetter.js'
+import UrlHelper from '../Helpers/UrlHelper.mjs'
+import UserGetter from '../User/UserGetter.mjs'
 import Settings from '@overleaf/settings'
 import LimitationsManager from '../Subscription/LimitationsManager.mjs'
 
+const { getSafeAdminDomainRedirect } = UrlHelper
 const { canRedirectToAdminDomain } = AdminAuthorizationHelper
 const orderedPrivilegeLevels = [
   PrivilegeLevels.NONE,

+ 1 - 1
services/web/app/src/Features/Tutorial/TutorialController.mjs

@@ -1,4 +1,4 @@
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import TutorialHandler from './TutorialHandler.mjs'
 import { expressify } from '@overleaf/promise-utils'
 

+ 1 - 1
services/web/app/src/Features/Tutorial/TutorialHandler.mjs

@@ -1,4 +1,4 @@
-import UserUpdater from '../User/UserUpdater.js'
+import UserUpdater from '../User/UserUpdater.mjs'
 
 const POSTPONE_DURATION_MS = 24 * 60 * 60 * 1000 // 1 day
 

+ 2 - 2
services/web/app/src/Features/Uploads/FileSystemImportManager.mjs

@@ -3,8 +3,8 @@ import Path from 'node:path'
 import { callbackify } from 'node:util'
 import EditorController from '../Editor/EditorController.mjs'
 import Errors from '../Errors/Errors.js'
-import FileTypeManager from './FileTypeManager.js'
-import SafePath from '../Project/SafePath.js'
+import FileTypeManager from './FileTypeManager.mjs'
+import SafePath from '../Project/SafePath.mjs'
 import logger from '@overleaf/logger'
 
 export default {

+ 1 - 1
services/web/app/src/Features/Uploads/ProjectUploadController.mjs

@@ -4,7 +4,7 @@ import fs from 'node:fs'
 import Path from 'node:path'
 import FileSystemImportManager from './FileSystemImportManager.mjs'
 import ProjectUploadManager from './ProjectUploadManager.mjs'
-import SessionManager from '../Authentication/SessionManager.js'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import EditorController from '../Editor/EditorController.mjs'
 import ProjectLocator from '../Project/ProjectLocator.mjs'
 import Settings from '@overleaf/settings'

+ 3 - 3
services/web/app/src/Features/Uploads/ProjectUploadManager.mjs

@@ -1,10 +1,10 @@
 import Path from 'node:path'
 import fs from 'node:fs'
 import { callbackify } from 'node:util'
-import ArchiveManager from './ArchiveManager.js'
+import ArchiveManager from './ArchiveManager.mjs'
 import { Doc } from '../../models/Doc.js'
-import DocstoreManager from '../Docstore/DocstoreManager.js'
-import DocumentHelper from '../Documents/DocumentHelper.js'
+import DocstoreManager from '../Docstore/DocstoreManager.mjs'
+import DocumentHelper from '../Documents/DocumentHelper.mjs'
 import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
 import FileStoreHandler from '../FileStore/FileStoreHandler.mjs'
 import FileSystemImportManager from './FileSystemImportManager.mjs'

+ 7 - 7
services/web/app/src/Features/User/SAMLIdentityManager.mjs

@@ -1,13 +1,13 @@
 import mongodb from 'mongodb-legacy'
-import EmailHandler from '../Email/EmailHandler.js'
+import EmailHandler from '../Email/EmailHandler.mjs'
 import Errors from '../Errors/Errors.js'
-import InstitutionsAPI from '../Institutions/InstitutionsAPI.js'
-import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
+import InstitutionsAPI from '../Institutions/InstitutionsAPI.mjs'
+import NotificationsBuilder from '../Notifications/NotificationsBuilder.mjs'
 import OError from '@overleaf/o-error'
-import SubscriptionLocator from '../Subscription/SubscriptionLocator.js'
-import UserAuditLogHandler from '../User/UserAuditLogHandler.js'
-import UserGetter from '../User/UserGetter.js'
-import UserUpdater from '../User/UserUpdater.js'
+import SubscriptionLocator from '../Subscription/SubscriptionLocator.mjs'
+import UserAuditLogHandler from '../User/UserAuditLogHandler.mjs'
+import UserGetter from '../User/UserGetter.mjs'
+import UserUpdater from '../User/UserUpdater.mjs'
 import logger from '@overleaf/logger'
 import { User } from '../../models/User.js'
 import { promiseMapWithLimit } from '@overleaf/promise-utils'

+ 10 - 10
services/web/app/src/Features/User/UserController.mjs

@@ -1,22 +1,22 @@
 import UserHandler from './UserHandler.mjs'
 import UserDeleter from './UserDeleter.mjs'
-import UserGetter from './UserGetter.js'
+import UserGetter from './UserGetter.mjs'
 import { User } from '../../models/User.js'
-import NewsletterManager from '../Newsletter/NewsletterManager.js'
+import NewsletterManager from '../Newsletter/NewsletterManager.mjs'
 import logger from '@overleaf/logger'
 import metrics from '@overleaf/metrics'
-import AuthenticationManager from '../Authentication/AuthenticationManager.js'
-import SessionManager from '../Authentication/SessionManager.js'
+import AuthenticationManager from '../Authentication/AuthenticationManager.mjs'
+import SessionManager from '../Authentication/SessionManager.mjs'
 import Features from '../../infrastructure/Features.js'
 import { z, validateReq } from '../../infrastructure/Validation.js'
-import UserAuditLogHandler from './UserAuditLogHandler.js'
-import UserSessionsManager from './UserSessionsManager.js'
-import UserUpdater from './UserUpdater.js'
+import UserAuditLogHandler from './UserAuditLogHandler.mjs'
+import UserSessionsManager from './UserSessionsManager.mjs'
+import UserUpdater from './UserUpdater.mjs'
 import Errors from '../Errors/Errors.js'
-import HttpErrorHandler from '../Errors/HttpErrorHandler.js'
+import HttpErrorHandler from '../Errors/HttpErrorHandler.mjs'
 import OError from '@overleaf/o-error'
-import EmailHandler from '../Email/EmailHandler.js'
-import UrlHelper from '../Helpers/UrlHelper.js'
+import EmailHandler from '../Email/EmailHandler.mjs'
+import UrlHelper from '../Helpers/UrlHelper.mjs'
 import { promisify } from 'node:util'
 import { expressify } from '@overleaf/promise-utils'
 import { acceptsJson } from '../../infrastructure/RequestContentTypeDetection.js'

Деякі файли не було показано, через те що забагато файлів було змінено