migrate to "export default"

also, set no-use-before-define in linter
This commit is contained in:
Girish Ramakrishnan
2026-02-14 15:43:24 +01:00
parent ddb46646fa
commit 36aa641cb9
231 changed files with 2846 additions and 2728 deletions

View File

@@ -1,43 +1,43 @@
import * as appTaskManager from './apptaskmanager.js';
import * as appstore from './appstore.js';
import * as archives from './archives.js';
import appTaskManager from './apptaskmanager.js';
import appstore from './appstore.js';
import archives from './archives.js';
import assert from 'node:assert';
import backups from './backups.js';
import * as backupSites from './backupsites.js';
import backupSites from './backupsites.js';
import BoxError from './boxerror.js';
import constants from './constants.js';
import crypto from 'node:crypto';
import { CronTime } from 'cron';
import * as dashboard from './dashboard.js';
import * as database from './database.js';
import dashboard from './dashboard.js';
import database from './database.js';
import debugModule from 'debug';
import * as dns from './dns.js';
import * as docker from './docker.js';
import * as domains from './domains.js';
import dns from './dns.js';
import docker from './docker.js';
import domains from './domains.js';
import eventlog from './eventlog.js';
import fs from 'node:fs';
import Location from './location.js';
import locks from './locks.js';
import * as logs from './logs.js';
import * as mail from './mail.js';
import logs from './logs.js';
import mail from './mail.js';
import manifestFormat from '@cloudron/manifest-format';
import mysql from 'mysql2';
import * as notifications from './notifications.js';
import notifications from './notifications.js';
import once from './once.js';
import path from 'node:path';
import paths from './paths.js';
import { PassThrough } from 'node:stream';
import * as reverseProxy from './reverseproxy.js';
import reverseProxy from './reverseproxy.js';
import safe from 'safetydance';
import semver from 'semver';
import services from './services.js';
import shellModule from './shell.js';
import tasks from './tasks.js';
import { Transform as TransformStream } from 'node:stream';
import * as users from './users.js';
import users from './users.js';
import util from 'node:util';
import * as volumes from './volumes.js';
import * as _ from './underscore.js';
import volumes from './volumes.js';
import _ from './underscore.js';
const debug = debugModule('box:apps');
const shell = shellModule('apps');
@@ -69,153 +69,6 @@ const ACCESS_LEVEL_OPERATOR = 'operator';
const ACCESS_LEVEL_USER = 'user';
const ACCESS_LEVEL_NONE = '';
export default {
canAccess,
isOperator,
accessLevel,
pickFields,
// database crud
add,
update,
setHealth,
del,
get,
getByIpAddress,
getByFqdn,
list,
listByUser,
// user actions
install,
unarchive,
uninstall,
archive,
setAccessRestriction,
setOperators,
setCrontab,
setUpstreamUri,
setLabel,
setIcon,
setTags,
setNotes,
setChecklistItem,
setMemoryLimit,
setCpuQuota,
setMounts,
setDevices,
setAutomaticBackup,
setAutomaticUpdate,
setReverseProxyConfig,
setCertificate,
setDebugMode,
setEnvironment,
setMailbox,
setInbox,
setTurn,
setRedis,
setLocation,
setStorage,
repair,
restore,
importApp,
exportApp,
clone,
updateApp,
backup,
listBackups,
updateBackup,
getBackupDownloadStream,
getTask,
getLogPaths,
getLogs,
appendLogLine,
start,
stop,
restart,
createExec,
startExec,
getExec,
checkManifest,
restoreApps,
configureApps,
schedulePendingTasks,
restartAppsUsingAddons,
getStorageDir,
getIcon,
getMemoryLimit,
getSchedulerConfig,
listEventlog,
downloadFile,
uploadFile,
writeConfig,
loadConfig,
canBackupApp,
PORT_TYPE_TCP,
PORT_TYPE_UDP,
// task codes - the installation state is now a misnomer (keep in sync in UI)
ISTATE_PENDING_INSTALL,
ISTATE_PENDING_CLONE,
ISTATE_PENDING_CONFIGURE,
ISTATE_PENDING_RECREATE_CONTAINER,
ISTATE_PENDING_LOCATION_CHANGE,
ISTATE_PENDING_SERVICES_CHANGE,
ISTATE_PENDING_DATA_DIR_MIGRATION,
ISTATE_PENDING_RESIZE,
ISTATE_PENDING_DEBUG,
ISTATE_PENDING_UNINSTALL,
ISTATE_PENDING_RESTORE,
ISTATE_PENDING_IMPORT,
ISTATE_PENDING_UPDATE,
ISTATE_PENDING_START,
ISTATE_PENDING_STOP,
ISTATE_PENDING_RESTART,
ISTATE_ERROR,
ISTATE_INSTALLED,
// run states
RSTATE_RUNNING,
RSTATE_STOPPED,
// health states (keep in sync in UI)
HEALTH_HEALTHY: 'healthy',
HEALTH_UNHEALTHY: 'unhealthy',
HEALTH_ERROR: 'error',
HEALTH_DEAD: 'dead',
// app access levels
ACCESS_LEVEL_ADMIN,
ACCESS_LEVEL_OPERATOR,
ACCESS_LEVEL_USER,
ACCESS_LEVEL_NONE,
// exported for testing
_checkForPortBindingConflict: checkForPortBindingConflict,
_validatePorts: validatePorts,
_validateAccessRestriction: validateAccessRestriction,
_validateUpstreamUri: validateUpstreamUri,
_validateLocations: validateLocations,
_parseCrontab: parseCrontab,
_clear: clear
};
// NOTE: when adding fields here, update the clone and unarchive logic as well
const APPS_FIELDS_PREFIXED = [ 'apps.id', 'apps.appStoreId', 'apps.versionsUrl', 'apps.installationState', 'apps.errorJson', 'apps.runState',
@@ -3134,3 +2987,151 @@ async function loadConfig(app) {
await update(app.id, data);
}
export default {
canAccess,
isOperator,
accessLevel,
pickFields,
// database crud
add,
update,
setHealth,
del,
get,
getByIpAddress,
getByFqdn,
list,
listByUser,
// user actions
install,
unarchive,
uninstall,
archive,
setAccessRestriction,
setOperators,
setCrontab,
setUpstreamUri,
setLabel,
setIcon,
setTags,
setNotes,
setChecklistItem,
setMemoryLimit,
setCpuQuota,
setMounts,
setDevices,
setAutomaticBackup,
setAutomaticUpdate,
setReverseProxyConfig,
setCertificate,
setDebugMode,
setEnvironment,
setMailbox,
setInbox,
setTurn,
setRedis,
setLocation,
setStorage,
repair,
restore,
importApp,
exportApp,
clone,
updateApp,
backup,
listBackups,
updateBackup,
getBackupDownloadStream,
getTask,
getLogPaths,
getLogs,
appendLogLine,
start,
stop,
restart,
createExec,
startExec,
getExec,
checkManifest,
restoreApps,
configureApps,
schedulePendingTasks,
restartAppsUsingAddons,
getStorageDir,
getIcon,
getMemoryLimit,
getSchedulerConfig,
listEventlog,
downloadFile,
uploadFile,
writeConfig,
loadConfig,
canBackupApp,
PORT_TYPE_TCP,
PORT_TYPE_UDP,
// task codes - the installation state is now a misnomer (keep in sync in UI)
ISTATE_PENDING_INSTALL,
ISTATE_PENDING_CLONE,
ISTATE_PENDING_CONFIGURE,
ISTATE_PENDING_RECREATE_CONTAINER,
ISTATE_PENDING_LOCATION_CHANGE,
ISTATE_PENDING_SERVICES_CHANGE,
ISTATE_PENDING_DATA_DIR_MIGRATION,
ISTATE_PENDING_RESIZE,
ISTATE_PENDING_DEBUG,
ISTATE_PENDING_UNINSTALL,
ISTATE_PENDING_RESTORE,
ISTATE_PENDING_IMPORT,
ISTATE_PENDING_UPDATE,
ISTATE_PENDING_START,
ISTATE_PENDING_STOP,
ISTATE_PENDING_RESTART,
ISTATE_ERROR,
ISTATE_INSTALLED,
// run states
RSTATE_RUNNING,
RSTATE_STOPPED,
// health states (keep in sync in UI)
HEALTH_HEALTHY: 'healthy',
HEALTH_UNHEALTHY: 'unhealthy',
HEALTH_ERROR: 'error',
HEALTH_DEAD: 'dead',
// app access levels
ACCESS_LEVEL_ADMIN,
ACCESS_LEVEL_OPERATOR,
ACCESS_LEVEL_USER,
ACCESS_LEVEL_NONE,
// exported for testing
_checkForPortBindingConflict: checkForPortBindingConflict,
_validatePorts: validatePorts,
_validateAccessRestriction: validateAccessRestriction,
_validateUpstreamUri: validateUpstreamUri,
_validateLocations: validateLocations,
_parseCrontab: parseCrontab,
_clear: clear
};