Girish Ramakrishnan
96dc79cfe6
Migrate codebase from CommonJS to ES Modules
...
- Convert all require()/module.exports to import/export across 260+ files
- Add "type": "module" to package.json to enable ESM by default
- Add migrations/package.json with "type": "commonjs" to keep db-migrate compatible
- Convert eslint.config.js to ESM with sourceType: "module"
- Replace __dirname/__filename with import.meta.dirname/import.meta.filename
- Replace require.main === module with process.argv[1] === import.meta.filename
- Remove 'use strict' directives (implicit in ESM)
- Convert dynamic require() in switch statements to static import lookup maps
(dns.js, domains.js, backupformats.js, backupsites.js, network.js)
- Extract self-referencing exports.CONSTANT patterns into standalone const
declarations (apps.js, services.js, locks.js, users.js, mail.js, etc.)
- Lazify SERVICES object in services.js to avoid circular dependency TDZ issues
- Add clearMailQueue() to mailer.js for ESM-safe queue clearing in tests
- Add _setMockApp() to ldapserver.js for ESM-safe test mocking
- Add _setMockResolve() wrapper to dig.js for ESM-safe DNS mocking in tests
- Convert backupupload.js to use dynamic imports so --check exits before
loading the module graph (which requires BOX_ENV)
- Update check-install to use ESM import for infra_version.js
- Convert scripts/ (hotfix, release, remote_hotfix.js, find-unused-translations)
- All 1315 tests passing
Migration stats (AI-assisted using Cursor with Claude):
- Wall clock time: ~3-4 hours
- Assistant completions: ~80-100
- Estimated token usage: ~1-2M tokens
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-14 15:11:45 +01:00
Girish Ramakrishnan
74f4849144
req.connection.remoteAddress is deprecated
2025-01-29 10:35:21 +01:00
Girish Ramakrishnan
d2c702f890
eventlog: always use AuditSource objects as source field
2023-08-28 08:13:56 +05:30
Girish Ramakrishnan
be24ed64f8
lint
2023-07-25 13:21:41 +05:30
Girish Ramakrishnan
7ffcfc5206
auditSource: add PLATFORM
2021-11-17 10:33:28 -08:00
Girish Ramakrishnan
445c83c8b9
make auditsource a class
...
this allows us to use AuditSource for the class and auditSource for
the instances!
2021-09-30 10:13:36 -07:00
Girish Ramakrishnan
5dd6f85025
reverseproxy: async'ify
2021-08-17 14:34:55 -07:00
Girish Ramakrishnan
2b13593630
notifications: only send backup failure email on 3 consecutive fails
2021-06-24 00:48:59 -07:00
Girish Ramakrishnan
355de5b0a4
notifications: fix update notification
...
the notification wasn't working because this was in apptask and the apptask died
before it could send out the email. we now move the notification to box process
and also remove the email notification.
2021-04-19 15:14:04 -07:00
Johannes Zellner
8fd0461c62
Auto create users on login if present in external ldap source
2019-11-20 18:18:21 +01:00
Girish Ramakrishnan
e97606ca87
Remove internal sysadmin server
...
this is now unused
2019-09-12 13:33:01 -07:00
Johannes Zellner
b823213c94
Create and update users from external ldap
2019-08-30 10:20:04 +02:00
Girish Ramakrishnan
9f1210202a
port taskmanager to use tasks
2019-08-28 15:17:53 -07:00
Johannes Zellner
b536c8196b
Create app updated eventlog entry and notification
2019-05-07 12:04:43 +02:00
Girish Ramakrishnan
d752c68790
re-factor all the audit source objects
2019-03-25 15:15:39 -07:00
Girish Ramakrishnan
39c0409d42
only notify automated backup failures
2019-03-25 15:15:35 -07:00