import * as plugins from './npmci.plugins.js'; // env import { NpmciEnv } from './npmci.classes.npmcienv.js'; import { NpmciInfo } from './npmci.classes.npmciinfo.js'; import { NpmciCli } from './npmci.classes.npmcicli.js'; import { NpmciConfig } from './npmci.classes.npmciconfig.js'; // connectors import { CloudlyConnector } from './connector.cloudly/cloudlyconnector.js'; // managers import { NpmciCloudronManager } from './manager.cloudron/index.js'; import { NpmciDockerManager } from './manager.docker/index.js'; import { NpmciGitManager } from './manager.git/index.js'; import { NpmciNodeJsManager } from './manager.nodejs/index.js'; import { NpmciNpmManager } from './manager.npm/index.js'; export class Npmci { public analytics: plugins.smartanalytics.Analytics; public cloudlyConnector: CloudlyConnector; public npmciEnv: NpmciEnv; public npmciInfo: NpmciInfo; public npmciConfig: NpmciConfig; public npmciCli: NpmciCli; // managers public cloudronManager: NpmciCloudronManager; public dockerManager: NpmciDockerManager; public gitManager: NpmciGitManager; public nodejsManager: NpmciNodeJsManager; public npmManager: NpmciNpmManager; constructor() { this.analytics = new plugins.smartanalytics.Analytics({ apiEndPoint: 'https://pubapi.lossless.one/analytics', projectId: 'gitzone', appName: 'npmci', }); } public async start() { this.cloudlyConnector = new CloudlyConnector(this); this.npmciEnv = new NpmciEnv(this); this.npmciInfo = new NpmciInfo(this); await this.npmciInfo.printToConsole(); this.npmciCli = new NpmciCli(this); this.npmciConfig = new NpmciConfig(this); await this.npmciConfig.init(); // managers this.cloudronManager = new NpmciCloudronManager(this); this.dockerManager = new NpmciDockerManager(this); this.gitManager = new NpmciGitManager(this); this.nodejsManager = new NpmciNodeJsManager(this); this.npmManager = new NpmciNpmManager(this); this.npmciCli.startParse(); } }