Update paths

GitOrigin-RevId: a9474c8f36e8b287de4dd8fda29bc082001444ac
This commit is contained in:
Andrew Rumble
2025-10-17 10:50:07 +01:00
committed by Copybot
parent 817e603a98
commit b0a80a2f3c
110 changed files with 261 additions and 260 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ 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 HistoryManager from './app/src/Features/History/HistoryManager.js'
import HistoryManager from './app/src/Features/History/HistoryManager.mjs'
import SiteAdminHandler from './app/src/infrastructure/SiteAdminHandler.mjs'
import http from 'node:http'
import https from 'node:https'
@@ -1,4 +1,4 @@
import AuthenticationController from './../Authentication/AuthenticationController.js'
import AuthenticationController from './../Authentication/AuthenticationController.mjs'
import AnalyticsController from './AnalyticsController.mjs'
import AnalyticsProxy from './AnalyticsProxy.mjs'
import { RateLimiter } from '../../infrastructure/RateLimiter.js'
@@ -1,14 +1,14 @@
import AuthorizationManager from './AuthorizationManager.js'
import AuthorizationManager from './AuthorizationManager.mjs'
import logger from '@overleaf/logger'
import mongodb from 'mongodb-legacy'
import Errors from '../Errors/Errors.js'
import HttpErrorHandler from '../Errors/HttpErrorHandler.js'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import SessionManager from '../Authentication/SessionManager.js'
import TokenAccessHandler from '../TokenAccess/TokenAccessHandler.js'
import { expressify } from '@overleaf/promise-utils'
import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.js'
import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
import UrlHelper from '../Helpers/UrlHelper.js'
const { ObjectId } = mongodb
@@ -4,7 +4,7 @@ import Settings from '@overleaf/settings'
import Metrics from '@overleaf/metrics'
import OError from '@overleaf/o-error'
import DeviceHistory from './DeviceHistory.mjs'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import { expressify } from '@overleaf/promise-utils'
import EmailsHelper from '../Helpers/EmailHelper.js'
@@ -1,8 +1,8 @@
import OError from '@overleaf/o-error'
import HttpErrorHandler from '../../Features/Errors/HttpErrorHandler.js'
import mongodb from 'mongodb-legacy'
import CollaboratorsHandler from './CollaboratorsHandler.js'
import CollaboratorsGetter from './CollaboratorsGetter.js'
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'
@@ -10,14 +10,15 @@ import TagsHandler from '../Tags/TagsHandler.js'
import Errors from '../Errors/Errors.js'
import logger from '@overleaf/logger'
import { expressify } from '@overleaf/promise-utils'
import { hasAdminAccess } from '../Helpers/AdminAuthorizationHelper.js'
import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
import TokenAccessHandler from '../TokenAccess/TokenAccessHandler.js'
import ProjectAuditLogHandler from '../Project/ProjectAuditLogHandler.mjs'
import LimitationsManager from '../Subscription/LimitationsManager.js'
import LimitationsManager from '../Subscription/LimitationsManager.mjs'
import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
import { z, zz, validateReq } from '../../infrastructure/Validation.js'
import Features from '../../infrastructure/Features.js'
const { hasAdminAccess } = AdminAuthorizationHelper
const ObjectId = mongodb.ObjectId
export default {
@@ -1,7 +1,7 @@
import ProjectGetter from '../Project/ProjectGetter.js'
import LimitationsManager from '../Subscription/LimitationsManager.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import LimitationsManager from '../Subscription/LimitationsManager.mjs'
import UserGetter from '../User/UserGetter.js'
import CollaboratorsGetter from './CollaboratorsGetter.js'
import CollaboratorsGetter from './CollaboratorsGetter.mjs'
import CollaboratorsInviteHandler from './CollaboratorsInviteHandler.mjs'
import CollaboratorsInviteGetter from './CollaboratorsInviteGetter.js'
import logger from '@overleaf/logger'
@@ -15,7 +15,7 @@ import { z, zz, validateReq } from '../../infrastructure/Validation.js'
import { expressify } from '@overleaf/promise-utils'
import ProjectAuditLogHandler from '../Project/ProjectAuditLogHandler.mjs'
import Errors from '../Errors/Errors.js'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
// This rate limiter allows a different number of requests depending on the
@@ -2,14 +2,14 @@ import { callbackify } from 'node:util'
import { ProjectInvite } from '../../models/ProjectInvite.js'
import logger from '@overleaf/logger'
import CollaboratorsEmailHandler from './CollaboratorsEmailHandler.mjs'
import CollaboratorsHandler from './CollaboratorsHandler.js'
import CollaboratorsHandler from './CollaboratorsHandler.mjs'
import CollaboratorsInviteGetter from './CollaboratorsInviteGetter.js'
import CollaboratorsInviteHelper from './CollaboratorsInviteHelper.js'
import UserGetter from '../User/UserGetter.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
import LimitationsManager from '../Subscription/LimitationsManager.js'
import LimitationsManager from '../Subscription/LimitationsManager.mjs'
import ProjectAuditLogHandler from '../Project/ProjectAuditLogHandler.mjs'
import _ from 'lodash'
@@ -1,5 +1,5 @@
import CollaboratorsController from './CollaboratorsController.mjs'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import AuthorizationMiddleware from '../Authorization/AuthorizationMiddleware.mjs'
import CollaboratorsInviteController from './CollaboratorsInviteController.mjs'
import { RateLimiter } from '../../infrastructure/RateLimiter.js'
@@ -1,12 +1,12 @@
import logger from '@overleaf/logger'
import { Project } from '../../models/Project.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import UserGetter from '../User/UserGetter.js'
import CollaboratorsHandler from './CollaboratorsHandler.js'
import CollaboratorsHandler from './CollaboratorsHandler.mjs'
import EmailHandler from '../Email/EmailHandler.js'
import Errors from '../Errors/Errors.js'
import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.js'
import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.mjs'
import ProjectAuditLogHandler from '../Project/ProjectAuditLogHandler.mjs'
import AnalyticsManager from '../Analytics/AnalyticsManager.js'
import OError from '@overleaf/o-error'
@@ -6,11 +6,11 @@ import {
import Path from 'node:path'
import { pipeline } from 'node:stream/promises'
import logger from '@overleaf/logger'
import ClsiCacheManager from './ClsiCacheManager.js'
import ClsiCacheManager from './ClsiCacheManager.mjs'
import CompileController from './CompileController.mjs'
import { expressify } from '@overleaf/promise-utils'
import ClsiCacheHandler from './ClsiCacheHandler.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import { MeteredStream } from '@overleaf/stream-utils'
import Metrics from '@overleaf/metrics'
@@ -7,8 +7,8 @@ import {
RequestFailedError,
} from '@overleaf/fetch-utils'
import Settings from '@overleaf/settings'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.mjs'
import logger from '@overleaf/logger'
import OError from '@overleaf/o-error'
import { Cookie } from 'tough-cookie'
@@ -16,11 +16,11 @@ import ClsiCookieManagerFactory from './ClsiCookieManager.mjs'
import ClsiStateManager from './ClsiStateManager.mjs'
import _ from 'lodash'
import ClsiFormatChecker from './ClsiFormatChecker.mjs'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
import Metrics from '@overleaf/metrics'
import Errors from '../Errors/Errors.js'
import ClsiCacheHandler from './ClsiCacheHandler.js'
import HistoryManager from '../History/HistoryManager.js'
import HistoryManager from '../History/HistoryManager.mjs'
import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
import AnalyticsManager from '../Analytics/AnalyticsManager.js'
@@ -9,7 +9,7 @@
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
import crypto from 'node:crypto'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.js'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.mjs'
// The "state" of a project is a hash of the relevant attributes in the
// project object in this case we only need the rootFolder.
@@ -3,7 +3,7 @@ import { pipeline } from 'node:stream/promises'
import { Cookie } from 'tough-cookie'
import OError from '@overleaf/o-error'
import Metrics from '@overleaf/metrics'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import CompileManager from './CompileManager.mjs'
import ClsiManager from './ClsiManager.mjs'
import logger from '@overleaf/logger'
@@ -1,8 +1,8 @@
import Crypto from 'node:crypto'
import Settings from '@overleaf/settings'
import RedisWrapper from '../../infrastructure/RedisWrapper.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectRootDocManager from '../Project/ProjectRootDocManager.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import ProjectRootDocManager from '../Project/ProjectRootDocManager.mjs'
import UserGetter from '../User/UserGetter.js'
import ClsiManager from './ClsiManager.mjs'
import Metrics from '@overleaf/metrics'
@@ -1,4 +1,4 @@
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import SessionManager from '../Authentication/SessionManager.js'
import ContactController from './ContactController.mjs'
import Settings from '@overleaf/settings'
@@ -1,6 +1,6 @@
import logger from '@overleaf/logger'
import DocumentUpdaterHandler from './DocumentUpdaterHandler.js'
import ProjectLocator from '../Project/ProjectLocator.js'
import DocumentUpdaterHandler from './DocumentUpdaterHandler.mjs'
import ProjectLocator from '../Project/ProjectLocator.mjs'
import { plainTextResponse } from '../../infrastructure/Response.js'
import { expressify } from '@overleaf/promise-utils'
@@ -1,8 +1,8 @@
import ChatApiHandler from '../Chat/ChatApiHandler.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectLocator from '../Project/ProjectLocator.js'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.js'
import ProjectEntityUpdateHandler from '../Project/ProjectEntityUpdateHandler.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import ProjectLocator from '../Project/ProjectLocator.mjs'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.mjs'
import ProjectEntityUpdateHandler from '../Project/ProjectEntityUpdateHandler.mjs'
import logger from '@overleaf/logger'
import _ from 'lodash'
import { plainTextResponse } from '../../infrastructure/Response.js'
@@ -11,9 +11,9 @@
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
import Metrics from '@overleaf/metrics'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import ProjectZipStreamManager from './ProjectZipStreamManager.mjs'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
import { prepareZipAttachment } from '../../infrastructure/Response.js'
let ProjectDownloadsController
@@ -1,9 +1,9 @@
import archiver from 'archiver'
import async from 'async'
import logger from '@overleaf/logger'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import HistoryManager from '../History/HistoryManager.js'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.mjs'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import HistoryManager from '../History/HistoryManager.mjs'
let ProjectZipStreamManager
export default ProjectZipStreamManager = {
@@ -1,7 +1,7 @@
import ProjectDeleter from '../Project/ProjectDeleter.js'
import EditorController from './EditorController.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import AuthorizationManager from '../Authorization/AuthorizationManager.js'
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 Metrics from '@overleaf/metrics'
import CollaboratorsInviteGetter from '../Collaborators/CollaboratorsInviteGetter.js'
@@ -10,7 +10,7 @@ import SessionManager from '../Authentication/SessionManager.js'
import Errors from '../Errors/Errors.js'
import { expressify } from '@overleaf/promise-utils'
import Settings from '@overleaf/settings'
import CollaboratorsGetter from '../Collaborators/CollaboratorsGetter.js'
import CollaboratorsGetter from '../Collaborators/CollaboratorsGetter.mjs'
import { z, zz, validateReq } from '../../infrastructure/Validation.js'
const ProjectAccess = CollaboratorsGetter.ProjectAccess
@@ -1,5 +1,5 @@
import EditorHttpController from './EditorHttpController.mjs'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import AuthorizationMiddleware from '../Authorization/AuthorizationMiddleware.mjs'
import { RateLimiter } from '../../infrastructure/RateLimiter.js'
import RateLimiterMiddleware from '../Security/RateLimiterMiddleware.mjs'
@@ -12,10 +12,10 @@
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
import OError from '@overleaf/o-error'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import ProjectHistoryHandler from '../Project/ProjectHistoryHandler.mjs'
import ProjectLocator from '../Project/ProjectLocator.js'
import ProjectRootDocManager from '../Project/ProjectRootDocManager.js'
import ProjectLocator from '../Project/ProjectLocator.mjs'
import ProjectRootDocManager from '../Project/ProjectRootDocManager.mjs'
import UserGetter from '../User/UserGetter.js'
import logger from '@overleaf/logger'
import settings from '@overleaf/settings'
@@ -4,8 +4,8 @@ import { pipeline } from 'node:stream/promises'
import logger from '@overleaf/logger'
import { expressify } from '@overleaf/promise-utils'
import Metrics from '@overleaf/metrics'
import ProjectLocator from '../Project/ProjectLocator.js'
import HistoryManager from '../History/HistoryManager.js'
import ProjectLocator from '../Project/ProjectLocator.mjs'
import HistoryManager from '../History/HistoryManager.mjs'
import Errors from '../Errors/Errors.js'
import { preparePlainTextResponse } from '../../infrastructure/Response.js'
@@ -17,11 +17,11 @@ import {
import settings from '@overleaf/settings'
import SessionManager from '../Authentication/SessionManager.js'
import UserGetter from '../User/UserGetter.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import Errors from '../Errors/Errors.js'
import HistoryManager from './HistoryManager.js'
import ProjectDetailsHandler from '../Project/ProjectDetailsHandler.js'
import ProjectEntityUpdateHandler from '../Project/ProjectEntityUpdateHandler.js'
import HistoryManager from './HistoryManager.mjs'
import ProjectDetailsHandler from '../Project/ProjectDetailsHandler.mjs'
import ProjectEntityUpdateHandler from '../Project/ProjectEntityUpdateHandler.mjs'
import RestoreManager from './RestoreManager.mjs'
import { prepareZipAttachment } from '../../infrastructure/Response.js'
import Features from '../../infrastructure/Features.js'
@@ -1,6 +1,6 @@
import ProjectGetter from '../Project/ProjectGetter.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.js'
import HistoryManager from '../History/HistoryManager.js'
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 {
@@ -3,8 +3,8 @@
import { callbackify } from 'node:util'
import OError from '@overleaf/o-error'
import logger from '@overleaf/logger'
import HistoryManager from '../History/HistoryManager.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.js'
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 mongodb from '../../infrastructure/mongodb.js'
@@ -2,7 +2,7 @@
import Settings from '@overleaf/settings'
import { RateLimiter } from '../../infrastructure/RateLimiter.js'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import AuthorizationMiddleware from '../Authorization/AuthorizationMiddleware.mjs'
import RateLimiterMiddleware from '../Security/RateLimiterMiddleware.mjs'
import HistoryController from './HistoryController.mjs'
@@ -2,23 +2,23 @@ import Settings from '@overleaf/settings'
import Path from 'node:path'
import FileWriter from '../../infrastructure/FileWriter.js'
import Metrics from '../../infrastructure/Metrics.js'
import FileSystemImportManager from '../Uploads/FileSystemImportManager.js'
import FileSystemImportManager from '../Uploads/FileSystemImportManager.mjs'
import FileTypeManager from '../Uploads/FileTypeManager.js'
import EditorController from '../Editor/EditorController.js'
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.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.js'
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 logger from '@overleaf/logger'
import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
import ChatManager from '../Chat/ChatManager.mjs'
import OError from '@overleaf/o-error'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.js'
import HistoryManager from './HistoryManager.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.mjs'
import HistoryManager from './HistoryManager.mjs'
import { Snapshot, getDocUpdaterCompatibleRanges } from 'overleaf-editor-core'
async function getCommentThreadIds(projectId) {
@@ -1,8 +1,8 @@
import OError from '@overleaf/o-error'
import logger from '@overleaf/logger'
import DocstoreManager from '../Docstore/DocstoreManager.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import ProjectUpdateHandler from '../Project/ProjectUpdateHandler.js'
import { Project } from '../../models/Project.js'
import Modules from '../../infrastructure/Modules.js'
@@ -1,8 +1,8 @@
import FileWriter from '../../infrastructure/FileWriter.js'
import EditorController from '../Editor/EditorController.js'
import ProjectLocator from '../Project/ProjectLocator.js'
import EditorController from '../Editor/EditorController.mjs'
import ProjectLocator from '../Project/ProjectLocator.mjs'
import { Project } from '../../models/Project.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import LinkedFilesErrors from './LinkedFilesErrors.mjs'
import { callbackifyAll } from '@overleaf/promise-utils'
@@ -1,5 +1,5 @@
import AuthorizationMiddleware from '../Authorization/AuthorizationMiddleware.mjs'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import { RateLimiter } from '../../infrastructure/RateLimiter.js'
import RateLimiterMiddleware from '../Security/RateLimiterMiddleware.mjs'
import LinkedFilesController from './LinkedFilesController.mjs'
@@ -10,15 +10,15 @@
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
import AuthorizationManager from '../Authorization/AuthorizationManager.js'
import ProjectLocator from '../Project/ProjectLocator.js'
import AuthorizationManager from '../Authorization/AuthorizationManager.mjs'
import ProjectLocator from '../Project/ProjectLocator.mjs'
import DocstoreManager from '../Docstore/DocstoreManager.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
import _ from 'lodash'
import LinkedFilesHandler from './LinkedFilesHandler.mjs'
import LinkedFilesErrors from './LinkedFilesErrors.mjs'
import { promisify } from '@overleaf/promise-utils'
import HistoryManager from '../History/HistoryManager.js'
import HistoryManager from '../History/HistoryManager.mjs'
const {
BadDataError,
@@ -1,4 +1,4 @@
import AuthorizationManager from '../Authorization/AuthorizationManager.js'
import AuthorizationManager from '../Authorization/AuthorizationManager.mjs'
import CompileManager from '../Compile/CompileManager.mjs'
import ClsiManager from '../Compile/ClsiManager.mjs'
import ProjectFileAgent from './ProjectFileAgent.mjs'
@@ -1,5 +1,5 @@
import ProjectEntityHandler from '../Project/ProjectEntityHandler.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.js'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.mjs'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
import packageMapping from './packageMapping.mjs'
import { callbackify } from '@overleaf/promise-utils'
@@ -1,5 +1,5 @@
import PasswordResetHandler from './PasswordResetHandler.mjs'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import AuthenticationManager from '../Authentication/AuthenticationManager.js'
import SessionManager from '../Authentication/SessionManager.js'
import UserGetter from '../User/UserGetter.js'
@@ -1,5 +1,5 @@
import PasswordResetController from './PasswordResetController.mjs'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import CaptchaMiddleware from '../../Features/Captcha/CaptchaMiddleware.mjs'
import { RateLimiter } from '../../infrastructure/RateLimiter.js'
import RateLimiterMiddleware from '../Security/RateLimiterMiddleware.mjs'
@@ -10,7 +10,7 @@
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
import ProjectDetailsHandler from './ProjectDetailsHandler.js'
import ProjectDetailsHandler from './ProjectDetailsHandler.mjs'
import logger from '@overleaf/logger'
@@ -6,28 +6,28 @@ import pProps from 'p-props'
import logger from '@overleaf/logger'
import { expressify } from '@overleaf/promise-utils'
import mongodb from 'mongodb-legacy'
import ProjectDeleter from './ProjectDeleter.js'
import ProjectDeleter from './ProjectDeleter.mjs'
import ProjectDuplicator from './ProjectDuplicator.mjs'
import ProjectCreationHandler from './ProjectCreationHandler.js'
import EditorController from '../Editor/EditorController.js'
import ProjectCreationHandler from './ProjectCreationHandler.mjs'
import EditorController from '../Editor/EditorController.mjs'
import ProjectHelper from './ProjectHelper.js'
import metrics from '@overleaf/metrics'
import { User } from '../../models/User.js'
import SubscriptionLocator from '../Subscription/SubscriptionLocator.js'
import { isPaidSubscription } from '../Subscription/SubscriptionHelper.js'
import LimitationsManager from '../Subscription/LimitationsManager.js'
import LimitationsManager from '../Subscription/LimitationsManager.mjs'
import Settings from '@overleaf/settings'
import AuthorizationManager from '../Authorization/AuthorizationManager.js'
import AuthorizationManager from '../Authorization/AuthorizationManager.mjs'
import InactiveProjectManager from '../InactiveData/InactiveProjectManager.mjs'
import ProjectUpdateHandler from './ProjectUpdateHandler.js'
import ProjectGetter from './ProjectGetter.js'
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 CollaboratorsGetter from '../Collaborators/CollaboratorsGetter.js'
import ProjectEntityHandler from './ProjectEntityHandler.js'
import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.js'
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'
@@ -36,7 +36,7 @@ import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
import SplitTestSessionHandler from '../SplitTests/SplitTestSessionHandler.js'
import FeaturesUpdater from '../Subscription/FeaturesUpdater.js'
import SpellingHandler from '../Spelling/SpellingHandler.mjs'
import { hasAdminAccess } from '../Helpers/AdminAuthorizationHelper.js'
import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
import InstitutionsFeatures from '../Institutions/InstitutionsFeatures.js'
import InstitutionsGetter from '../Institutions/InstitutionsGetter.mjs'
import ProjectAuditLogHandler from './ProjectAuditLogHandler.mjs'
@@ -52,6 +52,7 @@ import SubscriptionController from '../Subscription/SubscriptionController.mjs'
import { formatCurrency } from '../../util/currency.js'
import UserSettingsHelper from './UserSettingsHelper.mjs'
const { hasAdminAccess } = AdminAuthorizationHelper
const { ObjectId } = mongodb
/**
* @import { GetProjectsRequest, GetProjectsResponse, Project } from "./types"
@@ -6,20 +6,20 @@ 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 DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.js'
import HistoryManager from '../History/HistoryManager.js'
import ProjectCreationHandler from './ProjectCreationHandler.js'
import ProjectDeleter from './ProjectDeleter.js'
import ProjectEntityMongoUpdateHandler from './ProjectEntityMongoUpdateHandler.js'
import ProjectEntityUpdateHandler from './ProjectEntityUpdateHandler.js'
import ProjectGetter from './ProjectGetter.js'
import ProjectLocator from './ProjectLocator.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
import HistoryManager from '../History/HistoryManager.mjs'
import ProjectCreationHandler from './ProjectCreationHandler.mjs'
import ProjectDeleter from './ProjectDeleter.mjs'
import ProjectEntityMongoUpdateHandler from './ProjectEntityMongoUpdateHandler.mjs'
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 TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.js'
import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.mjs'
import _ from 'lodash'
import TagsHandler from '../Tags/TagsHandler.js'
import ClsiCacheManager from '../Compile/ClsiCacheManager.js'
import ClsiCacheManager from '../Compile/ClsiCacheManager.mjs'
import Modules from '../../infrastructure/Modules.js'
export default {
@@ -1,7 +1,7 @@
import { callbackify } from 'node:util'
import Path from 'node:path'
import ProjectEntityHandler from './ProjectEntityHandler.js'
import EditorController from '../Editor/EditorController.js'
import ProjectEntityHandler from './ProjectEntityHandler.mjs'
import EditorController from '../Editor/EditorController.mjs'
// generate a new name based on the original, with an optional label.
// e.g. origname-20210101-122345.tex (default)
@@ -1,7 +1,7 @@
import { Project } from '../../models/Project.js'
import ProjectDetailsHandler from './ProjectDetailsHandler.js'
import HistoryManager from '../History/HistoryManager.js'
import ProjectEntityUpdateHandler from './ProjectEntityUpdateHandler.js'
import ProjectDetailsHandler from './ProjectDetailsHandler.mjs'
import HistoryManager from '../History/HistoryManager.mjs'
import ProjectEntityUpdateHandler from './ProjectEntityUpdateHandler.mjs'
import { callbackify } from 'node:util'
const ProjectHistoryHandler = {
@@ -5,7 +5,7 @@ import moment from 'moment'
import Metrics from '@overleaf/metrics'
import Settings from '@overleaf/settings'
import ProjectHelper from './ProjectHelper.js'
import ProjectGetter from './ProjectGetter.js'
import ProjectGetter from './ProjectGetter.mjs'
import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
import SessionManager from '../Authentication/SessionManager.js'
import Sources from '../Authorization/Sources.js'
@@ -17,9 +17,9 @@ import logger from '@overleaf/logger'
import request from 'request'
import settings from '@overleaf/settings'
import Features from '../../infrastructure/Features.js'
import ProjectGetter from '../Project/ProjectGetter.js'
import ProjectGetter from '../Project/ProjectGetter.mjs'
import UserGetter from '../User/UserGetter.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.js'
import DocumentUpdaterHandler from '../DocumentUpdater/DocumentUpdaterHandler.mjs'
import _ from 'lodash'
import Async from 'async'
import Errors from '../Errors/Errors.js'
@@ -2,8 +2,8 @@ import logger from '@overleaf/logger'
import http from 'node:http'
import https from 'node:https'
import Settings from '@overleaf/settings'
import TpdsUpdateSender from '../ThirdPartyDataStore/TpdsUpdateSender.js'
import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.js'
import TpdsUpdateSender from '../ThirdPartyDataStore/TpdsUpdateSender.mjs'
import TpdsProjectFlusher from '../ThirdPartyDataStore/TpdsProjectFlusher.mjs'
import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
import SystemMessageManager from '../SystemMessages/SystemMessageManager.mjs'
@@ -1,10 +1,10 @@
// @ts-check
import SessionManager from '../Authentication/SessionManager.js'
import SubscriptionHandler from './SubscriptionHandler.js'
import SubscriptionHandler from './SubscriptionHandler.mjs'
import SubscriptionHelper from './SubscriptionHelper.js'
import SubscriptionViewModelBuilder from './SubscriptionViewModelBuilder.mjs'
import LimitationsManager from './LimitationsManager.js'
import LimitationsManager from './LimitationsManager.mjs'
import RecurlyWrapper from './RecurlyWrapper.js'
import Settings from '@overleaf/settings'
import logger from '@overleaf/logger'
@@ -18,7 +18,7 @@ import { expressify } from '@overleaf/promise-utils'
import OError from '@overleaf/o-error'
import Errors from './Errors.js'
import SplitTestHandler from '../SplitTests/SplitTestHandler.js'
import AuthorizationManager from '../Authorization/AuthorizationManager.js'
import AuthorizationManager from '../Authorization/AuthorizationManager.mjs'
import Modules from '../../infrastructure/Modules.js'
import async from 'async'
import HttpErrorHandler from '../Errors/HttpErrorHandler.js'
@@ -8,7 +8,7 @@ import SubscriptionHelper from './SubscriptionHelper.js'
import { Subscription } from '../../models/Subscription.js'
import { User } from '../../models/User.js'
import PlansLocator from './PlansLocator.js'
import TeamInvitesHandler from './TeamInvitesHandler.js'
import TeamInvitesHandler from './TeamInvitesHandler.mjs'
import GroupPlansData from './GroupPlansData.js'
import Modules from '../../infrastructure/Modules.js'
import PaymentProviderEntities from './PaymentProviderEntities.js'
@@ -1,4 +1,4 @@
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import PermissionsController from '../Authorization/PermissionsController.mjs'
import SubscriptionController from './SubscriptionController.mjs'
import SubscriptionGroupController from './SubscriptionGroupController.mjs'
@@ -1,7 +1,7 @@
import settings from '@overleaf/settings'
import logger from '@overleaf/logger'
import OError from '@overleaf/o-error'
import TeamInvitesHandler from './TeamInvitesHandler.js'
import TeamInvitesHandler from './TeamInvitesHandler.mjs'
import SessionManager from '../Authentication/SessionManager.js'
import SubscriptionLocator from './SubscriptionLocator.js'
import SubscriptionHelper from './SubscriptionHelper.js'
@@ -1,6 +1,6 @@
import path from 'node:path'
import SessionManager from '../Authentication/SessionManager.js'
import TemplatesManager from './TemplatesManager.js'
import TemplatesManager from './TemplatesManager.mjs'
import ProjectHelper from '../Project/ProjectHelper.js'
import logger from '@overleaf/logger'
import { expressify } from '@overleaf/promise-utils'
@@ -1,4 +1,4 @@
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import TemplatesController from './TemplatesController.mjs'
import TemplatesMiddleware from './TemplatesMiddleware.mjs'
import { RateLimiter } from '../../infrastructure/RateLimiter.js'
@@ -7,8 +7,8 @@ import Path from 'node:path'
import metrics from '@overleaf/metrics'
import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
import SessionManager from '../Authentication/SessionManager.js'
import ProjectCreationHandler from '../Project/ProjectCreationHandler.js'
import ProjectDetailsHandler from '../Project/ProjectDetailsHandler.js'
import ProjectCreationHandler from '../Project/ProjectCreationHandler.mjs'
import ProjectDetailsHandler from '../Project/ProjectDetailsHandler.mjs'
import HttpErrorHandler from '../Errors/HttpErrorHandler.js'
import TpdsQueueManager from './TpdsQueueManager.mjs'
@@ -2,11 +2,11 @@ import { callbackify } from 'node:util'
import UpdateMerger from './UpdateMerger.mjs'
import logger from '@overleaf/logger'
import NotificationsBuilder from '../Notifications/NotificationsBuilder.js'
import ProjectCreationHandler from '../Project/ProjectCreationHandler.js'
import ProjectDeleter from '../Project/ProjectDeleter.js'
import ProjectGetter from '../Project/ProjectGetter.js'
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 ProjectRootDocManager from '../Project/ProjectRootDocManager.js'
import ProjectRootDocManager from '../Project/ProjectRootDocManager.mjs'
import FileTypeManager from '../Uploads/FileTypeManager.js'
import CooldownManager from '../Cooldown/CooldownManager.js'
import Errors from '../Errors/Errors.js'
@@ -3,9 +3,9 @@ import _ from 'lodash'
import fsPromises from 'node:fs/promises'
import fs from 'node:fs'
import logger from '@overleaf/logger'
import EditorController from '../Editor/EditorController.js'
import EditorController from '../Editor/EditorController.mjs'
import FileTypeManager from '../Uploads/FileTypeManager.js'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.js'
import ProjectEntityHandler from '../Project/ProjectEntityHandler.mjs'
import crypto from 'node:crypto'
import Settings from '@overleaf/settings'
import { pipeline } from 'node:stream/promises'
@@ -1,26 +1,27 @@
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import SessionManager from '../Authentication/SessionManager.js'
import TokenAccessHandler from './TokenAccessHandler.js'
import Errors from '../Errors/Errors.js'
import logger from '@overleaf/logger'
import OError from '@overleaf/o-error'
import { expressify } from '@overleaf/promise-utils'
import AuthorizationManager from '../Authorization/AuthorizationManager.js'
import AuthorizationManager from '../Authorization/AuthorizationManager.mjs'
import PrivilegeLevels from '../Authorization/PrivilegeLevels.js'
import ProjectAuditLogHandler from '../Project/ProjectAuditLogHandler.mjs'
import CollaboratorsInviteHandler from '../Collaborators/CollaboratorsInviteHandler.mjs'
import CollaboratorsHandler from '../Collaborators/CollaboratorsHandler.js'
import CollaboratorsHandler from '../Collaborators/CollaboratorsHandler.mjs'
import EditorRealTimeController from '../Editor/EditorRealTimeController.js'
import CollaboratorsGetter from '../Collaborators/CollaboratorsGetter.js'
import ProjectGetter from '../Project/ProjectGetter.js'
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 { canRedirectToAdminDomain } from '../Helpers/AdminAuthorizationHelper.js'
import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
import { getSafeAdminDomainRedirect } from '../Helpers/UrlHelper.js'
import UserGetter from '../User/UserGetter.js'
import Settings from '@overleaf/settings'
import LimitationsManager from '../Subscription/LimitationsManager.js'
import LimitationsManager from '../Subscription/LimitationsManager.mjs'
const { canRedirectToAdminDomain } = AdminAuthorizationHelper
const orderedPrivilegeLevels = [
PrivilegeLevels.NONE,
PrivilegeLevels.READ_ONLY,
@@ -1,4 +1,4 @@
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import AuthorizationMiddleware from '../Authorization/AuthorizationMiddleware.mjs'
import TokenAccessController from './TokenAccessController.mjs'
@@ -2,11 +2,11 @@ import logger from '@overleaf/logger'
import metrics from '@overleaf/metrics'
import fs from 'node:fs'
import Path from 'node:path'
import FileSystemImportManager from './FileSystemImportManager.js'
import ProjectUploadManager from './ProjectUploadManager.js'
import FileSystemImportManager from './FileSystemImportManager.mjs'
import ProjectUploadManager from './ProjectUploadManager.mjs'
import SessionManager from '../Authentication/SessionManager.js'
import EditorController from '../Editor/EditorController.js'
import ProjectLocator from '../Project/ProjectLocator.js'
import EditorController from '../Editor/EditorController.mjs'
import ProjectLocator from '../Project/ProjectLocator.mjs'
import Settings from '@overleaf/settings'
import { InvalidZipFileError } from './ArchiveErrors.js'
import multer from 'multer'
@@ -1,5 +1,5 @@
import AuthorizationMiddleware from '../Authorization/AuthorizationMiddleware.mjs'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import ProjectUploadController from './ProjectUploadController.mjs'
import { RateLimiter } from '../../infrastructure/RateLimiter.js'
import RateLimiterMiddleware from '../Security/RateLimiterMiddleware.mjs'
@@ -1,5 +1,5 @@
import UserHandler from './UserHandler.js'
import UserDeleter from './UserDeleter.js'
import UserHandler from './UserHandler.mjs'
import UserDeleter from './UserDeleter.mjs'
import UserGetter from './UserGetter.js'
import { User } from '../../models/User.js'
import NewsletterManager from '../Newsletter/NewsletterManager.js'
@@ -3,7 +3,7 @@ import util from 'node:util'
import { AffiliationError } from '../Errors/Errors.js'
import Features from '../../infrastructure/Features.js'
import { User } from '../../models/User.js'
import UserDeleter from './UserDeleter.js'
import UserDeleter from './UserDeleter.mjs'
import UserGetter from './UserGetter.js'
import UserUpdater from './UserUpdater.js'
import Analytics from '../Analytics/AnalyticsManager.js'
@@ -1,4 +1,4 @@
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import Settings from '@overleaf/settings'
import logger from '@overleaf/logger'
import SessionManager from '../Authentication/SessionManager.js'
@@ -3,7 +3,7 @@ import OError from '@overleaf/o-error'
import UserSessionsManager from './UserSessionsManager.js'
import logger from '@overleaf/logger'
import Settings from '@overleaf/settings'
import AuthenticationController from '../Authentication/AuthenticationController.js'
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
import SessionManager from '../Authentication/SessionManager.js'
import NewsletterManager from '../Newsletter/NewsletterManager.js'
import SubscriptionLocator from '../Subscription/SubscriptionLocator.js'
@@ -1,10 +1,9 @@
import {
hasAdminCapability,
hasAdminAccess,
} from '../Helpers/AdminAuthorizationHelper.js'
import AdminAuthorizationHelper from '../Helpers/AdminAuthorizationHelper.mjs'
import SessionManager from '../Authentication/SessionManager.js'
import Settings from '@overleaf/settings'
const { hasAdminCapability, hasAdminAccess } = AdminAuthorizationHelper
const UserMembershipAuthorization = {
hasStaffAccess(requiredStaffAccess) {
return req => {
@@ -12,18 +12,17 @@ import SessionManager from '../Features/Authentication/SessionManager.js'
import PackageVersions from './PackageVersions.js'
import Modules from './Modules.js'
import Errors from '../Features/Errors/Errors.js'
import {
canRedirectToAdminDomain,
hasAdminAccess,
useAdminCapabilities,
useHasAdminCapability,
} from '../Features/Helpers/AdminAuthorizationHelper.js'
import AdminAuthorizationHelper from '../Features/Helpers/AdminAuthorizationHelper.mjs'
import { addOptionalCleanupHandlerAfterDrainingConnections } from './GracefulShutdown.js'
import { sanitizeSessionUserForFrontEnd } from './FrontEndUser.mjs'
import { expressify } from '@overleaf/promise-utils'
const {
canRedirectToAdminDomain,
hasAdminAccess,
useAdminCapabilities,
useHasAdminCapability,
} = AdminAuthorizationHelper
const IEEE_BRAND_ID = Settings.ieeeBrandId
let webpackManifest
@@ -28,9 +28,9 @@ import Features from './Features.js'
import ErrorController from '../Features/Errors/ErrorController.mjs'
import HttpErrorHandler from '../Features/Errors/HttpErrorHandler.js'
import UserSessionsManager from '../Features/User/UserSessionsManager.js'
import AuthenticationController from '../Features/Authentication/AuthenticationController.js'
import AuthenticationController from '../Features/Authentication/AuthenticationController.mjs'
import SessionManager from '../Features/Authentication/SessionManager.js'
import { hasAdminAccess } from '../Features/Helpers/AdminAuthorizationHelper.js'
import AdminAuthorizationHelper from '../Features/Helpers/AdminAuthorizationHelper.mjs'
import Modules from './Modules.js'
import expressLocals from './ExpressLocals.mjs'
import noCache from 'nocache'
@@ -39,6 +39,7 @@ import http from 'node:http'
import { fileURLToPath } from 'node:url'
import serveStaticWrapper from './ServeStaticWrapper.mjs'
const { hasAdminAccess } = AdminAuthorizationHelper
const sessionsRedisClient = UserSessionsRedis.client()
const oneDayInMilliseconds = 86400000
@@ -8,7 +8,7 @@ import {
} from './GracefulShutdown.js'
import Features from './Features.js'
import UserHandler from '../Features/User/UserHandler.js'
import UserHandler from '../Features/User/UserHandler.mjs'
import metrics from '@overleaf/metrics'
// Monitor a site maintenance file (e.g. /etc/site_status) periodically and
+1 -1
View File
@@ -12,7 +12,7 @@ import SubscriptionRouter from './Features/Subscription/SubscriptionRouter.mjs'
import UploadsRouter from './Features/Uploads/UploadsRouter.mjs'
import metrics from '@overleaf/metrics'
import ReferalController from './Features/Referal/ReferalController.mjs'
import AuthenticationController from './Features/Authentication/AuthenticationController.js'
import AuthenticationController from './Features/Authentication/AuthenticationController.mjs'
import PermissionsController from './Features/Authorization/PermissionsController.mjs'
import SessionManager from './Features/Authentication/SessionManager.js'
import TagsController from './Features/Tags/TagsController.mjs'
@@ -1,18 +1,19 @@
import { expect } from 'chai'
import mongodb from 'mongodb-legacy'
import Path from 'node:path'
import { fileURLToPath } from 'node:url'
import fs from 'node:fs'
import Settings from '@overleaf/settings'
import _ from 'lodash'
import ProjectGetter from '../../../../../app/src/Features/Project/ProjectGetter.js'
import ProjectGetter from '../../../../../app/src/Features/Project/ProjectGetter.mjs'
import User from '../../../../../test/acceptance/src/helpers/User.mjs'
import MockDocUpdaterApiClass from '../../../../../test/acceptance/src/mocks/MockDocUpdaterApi.mjs'
const { ObjectId } = mongodb
const __dirname = fileURLToPath(new URL('.', import.meta.url))
const FILES_PATH = Path.join(__dirname, '../../../../../test/acceptance/files')
const FILES_PATH = Path.join(
import.meta.dirname,
'../../../../../test/acceptance/files'
)
let MockDocUpdaterApi
@@ -2,18 +2,17 @@ import OError from '@overleaf/o-error'
import { expressify } from '@overleaf/promise-utils'
import Settings from '@overleaf/settings'
import Path from 'node:path'
import { fileURLToPath } from 'node:url'
import logger from '@overleaf/logger'
import UserRegistrationHandler from '../../../../app/src/Features/User/UserRegistrationHandler.mjs'
import EmailHandler from '../../../../app/src/Features/Email/EmailHandler.js'
import UserGetter from '../../../../app/src/Features/User/UserGetter.js'
import { User } from '../../../../app/src/models/User.js'
import AuthenticationManager from '../../../../app/src/Features/Authentication/AuthenticationManager.js'
import AuthenticationController from '../../../../app/src/Features/Authentication/AuthenticationController.js'
import AuthenticationController from '../../../../app/src/Features/Authentication/AuthenticationController.mjs'
import SessionManager from '../../../../app/src/Features/Authentication/SessionManager.js'
import { hasAdminAccess } from '../../../../app/src/Features/Helpers/AdminAuthorizationHelper.js'
import AdminAuthorizationHelper from '../../../../app/src/Features/Helpers/AdminAuthorizationHelper.mjs'
const __dirname = fileURLToPath(new URL('.', import.meta.url))
const { hasAdminAccess } = AdminAuthorizationHelper
/**
* Container for functions that need to be mocked in tests
@@ -53,7 +52,7 @@ async function launchpadPage(req, res) {
if (!sessionUser) {
if (!adminUserExists) {
res.render(Path.resolve(__dirname, '../views/launchpad'), {
res.render(Path.resolve(import.meta.dirname, '../views/launchpad'), {
adminUserExists,
authMethod,
})
@@ -66,7 +65,7 @@ async function launchpadPage(req, res) {
isAdmin: 1,
})
if (hasAdminAccess(user)) {
res.render(Path.resolve(__dirname, '../views/launchpad'), {
res.render(Path.resolve(import.meta.dirname, '../views/launchpad'), {
wsUrl: Settings.wsUrl,
adminUserExists,
authMethod,
@@ -1,7 +1,7 @@
import logger from '@overleaf/logger'
import LaunchpadController from './LaunchpadController.mjs'
import AuthenticationController from '../../../../app/src/Features/Authentication/AuthenticationController.js'
import AuthenticationController from '../../../../app/src/Features/Authentication/AuthenticationController.mjs'
import AuthorizationMiddleware from '../../../../app/src/Features/Authorization/AuthorizationMiddleware.mjs'
export default {
@@ -57,7 +57,7 @@ describe('LaunchpadController', function () {
}))
vi.doMock(
'../../../../../app/src/Features/Authentication/AuthenticationController.js',
'../../../../../app/src/Features/Authentication/AuthenticationController.mjs',
() => ({
default: (ctx.AuthenticationController = {}),
})
@@ -1,5 +1,5 @@
import UserGetter from '../../../app/src/Features/User/UserGetter.js'
import UserDeleter from '../../../app/src/Features/User/UserDeleter.js'
import UserDeleter from '../../../app/src/Features/User/UserDeleter.mjs'
import { fileURLToPath } from 'url'
import minimist from 'minimist'
@@ -7,7 +7,7 @@ import {
renameSync,
} from 'fs'
import { pipeline } from 'stream/promises'
import DocumentUpdaterHandler from '../../../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.js'
import DocumentUpdaterHandler from '../../../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.mjs'
import ProjectZipStreamManager from '../../../app/src/Features/Downloads/ProjectZipStreamManager.mjs'
import logger from '@overleaf/logger'
import { promisify } from '@overleaf/promise-utils'
@@ -1,6 +1,6 @@
import logger from '@overleaf/logger'
import UserActivateController from './UserActivateController.mjs'
import AuthenticationController from '../../../../app/src/Features/Authentication/AuthenticationController.js'
import AuthenticationController from '../../../../app/src/Features/Authentication/AuthenticationController.mjs'
import AuthorizationMiddleware from '../../../../app/src/Features/Authorization/AuthorizationMiddleware.mjs'
export default {
@@ -3,9 +3,9 @@
import minimist from 'minimist'
import process from 'node:process'
import ChatApiHandler from '../app/src/Features/Chat/ChatApiHandler.js'
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.js'
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.mjs'
import DocstoreManager from '../app/src/Features/Docstore/DocstoreManager.js'
import HistoryManager from '../app/src/Features/History/HistoryManager.js'
import HistoryManager from '../app/src/Features/History/HistoryManager.mjs'
import { db, ObjectId } from '../app/src/infrastructure/mongodb.js'
const OPTS = parseArgs()
+4 -4
View File
@@ -1,11 +1,11 @@
import { scriptRunner } from './lib/ScriptRunner.mjs'
import Path from 'node:path'
import DocstoreManager from '../app/src/Features/Docstore/DocstoreManager.js'
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.js'
import ProjectGetter from '../app/src/Features/Project/ProjectGetter.js'
import ProjectEntityMongoUpdateHandler from '../app/src/Features/Project/ProjectEntityMongoUpdateHandler.js'
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.mjs'
import ProjectGetter from '../app/src/Features/Project/ProjectGetter.mjs'
import ProjectEntityMongoUpdateHandler from '../app/src/Features/Project/ProjectEntityMongoUpdateHandler.mjs'
import { waitForDb, db, ObjectId } from '../app/src/infrastructure/mongodb.js'
import HistoryManager from '../app/src/Features/History/HistoryManager.js'
import HistoryManager from '../app/src/Features/History/HistoryManager.mjs'
import logger from '@overleaf/logger'
import minimist from 'minimist'
@@ -1,4 +1,4 @@
import ProjectDetailsHandler from '../app/src/Features/Project/ProjectDetailsHandler.js'
import ProjectDetailsHandler from '../app/src/Features/Project/ProjectDetailsHandler.mjs'
import { scriptRunner } from './lib/ScriptRunner.mjs'
const projectId = process.argv[2]
+1 -1
View File
@@ -1,6 +1,6 @@
import minimist from 'minimist'
import { ObjectId } from '../app/src/infrastructure/mongodb.js'
import ProjectEntityUpdateHandler from '../app/src/Features/Project/ProjectEntityUpdateHandler.js'
import ProjectEntityUpdateHandler from '../app/src/Features/Project/ProjectEntityUpdateHandler.mjs'
import Errors from '../app/src/Features/Errors/Errors.js'
import { scriptRunner } from './lib/ScriptRunner.mjs'
@@ -1,6 +1,6 @@
import readline from 'node:readline'
import ProjectEntityHandler from '../app/src/Features/Project/ProjectEntityHandler.js'
import ProjectGetter from '../app/src/Features/Project/ProjectGetter.js'
import ProjectEntityHandler from '../app/src/Features/Project/ProjectEntityHandler.mjs'
import ProjectGetter from '../app/src/Features/Project/ProjectGetter.mjs'
import Errors from '../app/src/Features/Errors/Errors.js'
async function countFiles() {
+3 -3
View File
@@ -1,9 +1,9 @@
import readline from 'node:readline'
import { ObjectId, db } from '../app/src/infrastructure/mongodb.js'
import ProjectEntityHandler from '../app/src/Features/Project/ProjectEntityHandler.js'
import ProjectGetter from '../app/src/Features/Project/ProjectGetter.js'
import ProjectEntityHandler from '../app/src/Features/Project/ProjectEntityHandler.mjs'
import ProjectGetter from '../app/src/Features/Project/ProjectGetter.mjs'
import Errors from '../app/src/Features/Errors/Errors.js'
import HistoryManager from '../app/src/Features/History/HistoryManager.js'
import HistoryManager from '../app/src/Features/History/HistoryManager.mjs'
// Handles a list of project IDs from stdin, one per line, and outputs the count of files and docs
// in the project, along with the aggregated size in bytes for all files and docs.
+4 -4
View File
@@ -9,10 +9,10 @@ import _ from 'lodash'
import parseArgs from 'minimist'
import OError from '@overleaf/o-error'
import { User } from '../app/src/models/User.js'
import ProjectCreationHandler from '../app/src/Features/Project/ProjectCreationHandler.js'
import ProjectEntityUpdateHandler from '../app/src/Features/Project/ProjectEntityUpdateHandler.js'
import ProjectEntityHandler from '../app/src/Features/Project/ProjectEntityHandler.js'
import EditorController from '../app/src/Features/Editor/EditorController.js'
import ProjectCreationHandler from '../app/src/Features/Project/ProjectCreationHandler.mjs'
import ProjectEntityUpdateHandler from '../app/src/Features/Project/ProjectEntityUpdateHandler.mjs'
import ProjectEntityHandler from '../app/src/Features/Project/ProjectEntityHandler.mjs'
import EditorController from '../app/src/Features/Editor/EditorController.mjs'
import { fileURLToPath } from 'node:url'
const __dirname = path.dirname(fileURLToPath(import.meta.url))
@@ -2,9 +2,9 @@
import minimist from 'minimist'
import ChatApiHandler from '../app/src/Features/Chat/ChatApiHandler.js'
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.js'
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.mjs'
import DocstoreManager from '../app/src/Features/Docstore/DocstoreManager.js'
import HistoryManager from '../app/src/Features/History/HistoryManager.js'
import HistoryManager from '../app/src/Features/History/HistoryManager.mjs'
import { db, ObjectId } from '../app/src/infrastructure/mongodb.js'
const OPTS = parseArgs()
@@ -7,10 +7,10 @@ import minimist from 'minimist'
import mongodb from 'mongodb-legacy'
import { db } from '../app/src/infrastructure/mongodb.js'
import Errors from '../app/src/Features/Errors/Errors.js'
import ProjectEntityMongoUpdateHandler from '../app/src/Features/Project/ProjectEntityMongoUpdateHandler.js'
import ProjectEntityMongoUpdateHandler from '../app/src/Features/Project/ProjectEntityMongoUpdateHandler.mjs'
import { iterablePaths } from '../app/src/Features/Project/IterablePath.js'
import { scriptRunner } from './lib/ScriptRunner.mjs'
import HistoryManager from '../app/src/Features/History/HistoryManager.js'
import HistoryManager from '../app/src/Features/History/HistoryManager.mjs'
const { ObjectId } = mongodb
@@ -1,7 +1,7 @@
import minimist from 'minimist'
import ChatApiHandler from '../app/src/Features/Chat/ChatApiHandler.js'
import DocstoreManager from '../app/src/Features/Docstore/DocstoreManager.js'
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.js'
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.mjs'
import { promiseMapWithLimit } from '@overleaf/promise-utils'
import { scriptRunner } from './lib/ScriptRunner.mjs'
+2 -2
View File
@@ -5,9 +5,9 @@ import { promiseMapWithLimit } from '@overleaf/promise-utils'
import Settings from '@overleaf/settings'
import { db } from '../app/src/infrastructure/mongodb.js'
import GracefulShutdown from '../app/src/infrastructure/GracefulShutdown.js'
import ProjectDeleter from '../app/src/Features/Project/ProjectDeleter.js'
import ProjectDeleter from '../app/src/Features/Project/ProjectDeleter.mjs'
import SplitTestManager from '../app/src/Features/SplitTests/SplitTestManager.js'
import UserDeleter from '../app/src/Features/User/UserDeleter.js'
import UserDeleter from '../app/src/Features/User/UserDeleter.mjs'
import UserRegistrationHandler from '../app/src/Features/User/UserRegistrationHandler.mjs'
const MONOREPO = Path.dirname(
@@ -8,9 +8,7 @@
*/
import mongodb from 'mongodb-legacy'
import { db } from '../app/src/infrastructure/mongodb.js'
import ProjectLocator, {
findDeep,
} from '../app/src/Features/Project/ProjectLocator.js'
import ProjectLocator from '../app/src/Features/Project/ProjectLocator.mjs'
import minimist from 'minimist'
import readline from 'node:readline'
import fs from 'node:fs'
@@ -18,6 +16,7 @@ import logger from '@overleaf/logger'
import { scriptRunner } from './lib/ScriptRunner.mjs'
const { ObjectId } = mongodb
const { findDeep } = ProjectLocator
const lastUpdated = new Date()
const argv = minimist(process.argv.slice(2), {
+3 -3
View File
@@ -2,10 +2,10 @@ import fs from 'node:fs'
import minimist from 'minimist'
import { ObjectId } from '../app/src/infrastructure/mongodb.js'
import DocstoreManager from '../app/src/Features/Docstore/DocstoreManager.js'
import FileStoreHandler from '../app/src/Features/FileStore/FileStoreHandler.js'
import FileStoreHandler from '../app/src/Features/FileStore/FileStoreHandler.mjs'
import FileWriter from '../app/src/infrastructure/FileWriter.js'
import ProjectEntityMongoUpdateHandler from '../app/src/Features/Project/ProjectEntityMongoUpdateHandler.js'
import ProjectLocator from '../app/src/Features/Project/ProjectLocator.js'
import ProjectEntityMongoUpdateHandler from '../app/src/Features/Project/ProjectEntityMongoUpdateHandler.mjs'
import ProjectLocator from '../app/src/Features/Project/ProjectLocator.mjs'
import RedisWrapper from '@overleaf/redis-wrapper'
import Settings from '@overleaf/settings'
import { scriptRunner } from './lib/ScriptRunner.mjs'
+1 -1
View File
@@ -1,6 +1,6 @@
import mongodb from 'mongodb-legacy'
import { db } from '../app/src/infrastructure/mongodb.js'
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.js'
import DocumentUpdaterHandler from '../app/src/Features/DocumentUpdater/DocumentUpdaterHandler.mjs'
import { scriptRunner } from './lib/ScriptRunner.mjs'
const { ObjectId } = mongodb
@@ -3,7 +3,7 @@
import minimist from 'minimist'
import { db, ObjectId } from '../app/src/infrastructure/mongodb.js'
import ProjectEntityUpdateHandler from '../app/src/Features/Project/ProjectEntityUpdateHandler.js'
import ProjectEntityUpdateHandler from '../app/src/Features/Project/ProjectEntityUpdateHandler.mjs'
import ProjectEntityRestoreHandler from '../app/src/Features/Project/ProjectEntityRestoreHandler.mjs'
import RedisWrapper from '@overleaf/redis-wrapper'
import Settings from '@overleaf/settings'
@@ -1,5 +1,5 @@
import ProjectEntityRestoreHandler from '../app/src/Features/Project/ProjectEntityRestoreHandler.mjs'
import ProjectEntityHandler from '../app/src/Features/Project/ProjectEntityHandler.js'
import ProjectEntityHandler from '../app/src/Features/Project/ProjectEntityHandler.mjs'
import DocstoreManager from '../app/src/Features/Docstore/DocstoreManager.js'
import { scriptRunner } from './lib/ScriptRunner.mjs'
+1 -1
View File
@@ -1,5 +1,5 @@
import minimist from 'minimist'
import ProjectDeleter from '../app/src/Features/Project/ProjectDeleter.js'
import ProjectDeleter from '../app/src/Features/Project/ProjectDeleter.mjs'
import { scriptRunner } from './lib/ScriptRunner.mjs'
async function main() {
+1 -1
View File
@@ -1,6 +1,6 @@
import minimist from 'minimist'
import settings from '@overleaf/settings'
import ProjectDetailsHandler from '../app/src/Features/Project/ProjectDetailsHandler.js'
import ProjectDetailsHandler from '../app/src/Features/Project/ProjectDetailsHandler.mjs'
import mongodb from '../app/src/infrastructure/mongodb.js'
import mongoose from '../app/src/infrastructure/Mongoose.js'
import fs from 'node:fs'
@@ -1,5 +1,5 @@
import minimist from 'minimist'
import ProjectDeleter from '../app/src/Features/Project/ProjectDeleter.js'
import ProjectDeleter from '../app/src/Features/Project/ProjectDeleter.mjs'
import { scriptRunner } from './lib/ScriptRunner.mjs'
async function main() {
@@ -3,7 +3,7 @@ import Path from 'node:path'
import { expect } from 'chai'
import UserHelper from './helpers/User.mjs'
import MockV1HistoryApiClass from './mocks/MockV1HistoryApi.mjs'
import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.js'
import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.mjs'
import { fileURLToPath } from 'node:url'
import sinon from 'sinon'
import logger from '@overleaf/logger'
@@ -14,9 +14,9 @@
import LockManager from '../../../app/src/infrastructure/LockManager.js'
import ProjectCreationHandler from '../../../app/src/Features/Project/ProjectCreationHandler.js'
import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.js'
import ProjectEntityMongoUpdateHandler from '../../../app/src/Features/Project/ProjectEntityMongoUpdateHandler.js'
import ProjectCreationHandler from '../../../app/src/Features/Project/ProjectCreationHandler.mjs'
import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.mjs'
import ProjectEntityMongoUpdateHandler from '../../../app/src/Features/Project/ProjectEntityMongoUpdateHandler.mjs'
import UserCreator from '../../../app/src/Features/User/UserCreator.mjs'
import { expect } from 'chai'
import _ from 'lodash'
@@ -3,7 +3,7 @@ import mongodb from 'mongodb-legacy'
import Path from 'node:path'
import fs from 'node:fs'
import { Project } from '../../../app/src/models/Project.js'
import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.js'
import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.mjs'
import UserHelper from './helpers/User.mjs'
import MockDocStoreApiClass from './mocks/MockDocstoreApi.mjs'
import MockDocUpdaterApiClass from './mocks/MockDocUpdaterApi.mjs'
@@ -16,7 +16,7 @@ import { assert } from 'chai'
import async from 'async'
import User from './helpers/User.mjs'
import request from './helpers/request.js'
import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.js'
import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.mjs'
const assertHasCommonHeaders = function (response) {
const { headers } = response
@@ -1,5 +1,5 @@
import { expect } from 'chai'
import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.js'
import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.mjs'
import request from './helpers/request.js'
import User from './helpers/User.mjs'
@@ -88,14 +88,14 @@ describe('CollaboratorsController', function () {
}))
vi.doMock(
'../../../../app/src/Features/Collaborators/CollaboratorsHandler.js',
'../../../../app/src/Features/Collaborators/CollaboratorsHandler.mjs',
() => ({
default: ctx.CollaboratorsHandler,
})
)
vi.doMock(
'../../../../app/src/Features/Collaborators/CollaboratorsGetter.js',
'../../../../app/src/Features/Collaborators/CollaboratorsGetter.mjs',
() => ({
default: ctx.CollaboratorsGetter,
})
@@ -147,7 +147,7 @@ describe('CollaboratorsController', function () {
})
)
vi.doMock('../../../../app/src/Features/Project/ProjectGetter.js', () => ({
vi.doMock('../../../../app/src/Features/Project/ProjectGetter.mjs', () => ({
default: ctx.ProjectGetter,
}))
@@ -159,7 +159,7 @@ describe('CollaboratorsController', function () {
)
vi.doMock(
'../../../../app/src/Features/Subscription/LimitationsManager.js',
'../../../../app/src/Features/Subscription/LimitationsManager.mjs',
() => ({
default: ctx.LimitationsManager,
})
@@ -125,7 +125,7 @@ describe('CollaboratorsInviteController', function () {
},
}
vi.doMock('../../../../app/src/Features/Project/ProjectGetter.js', () => ({
vi.doMock('../../../../app/src/Features/Project/ProjectGetter.mjs', () => ({
default: ctx.ProjectGetter,
}))
@@ -137,7 +137,7 @@ describe('CollaboratorsInviteController', function () {
)
vi.doMock(
'../../../../app/src/Features/Subscription/LimitationsManager.js',
'../../../../app/src/Features/Subscription/LimitationsManager.mjs',
() => ({
default: ctx.LimitationsManager,
})
@@ -148,7 +148,7 @@ describe('CollaboratorsInviteController', function () {
}))
vi.doMock(
'../../../../app/src/Features/Collaborators/CollaboratorsGetter.js',
'../../../../app/src/Features/Collaborators/CollaboratorsGetter.mjs',
() => ({
default: ctx.CollaboratorsGetter,
})
@@ -98,7 +98,7 @@ describe('CollaboratorsInviteHandler', function () {
)
vi.doMock(
'../../../../app/src/Features/Collaborators/CollaboratorsHandler.js',
'../../../../app/src/Features/Collaborators/CollaboratorsHandler.mjs',
() => ({
default: ctx.CollaboratorsHandler,
})
@@ -108,7 +108,7 @@ describe('CollaboratorsInviteHandler', function () {
default: ctx.UserGetter,
}))
vi.doMock('../../../../app/src/Features/Project/ProjectGetter.js', () => ({
vi.doMock('../../../../app/src/Features/Project/ProjectGetter.mjs', () => ({
default: ctx.ProjectGetter,
}))
@@ -141,7 +141,7 @@ describe('CollaboratorsInviteHandler', function () {
)
vi.doMock(
'../../../../app/src/Features/Subscription/LimitationsManager.js',
'../../../../app/src/Features/Subscription/LimitationsManager.mjs',
() => ({
default: ctx.LimitationsManager,
})

Some files were not shown because too many files have changed in this diff Show More