import * as plugins from './szci.plugins.ts'; // env import { SzciEnv } from './szci.classes.szcienv.ts'; import { SzciInfo } from './szci.classes.szciinfo.ts'; import { SzciCli } from './szci.classes.szcicli.ts'; import { SzciConfig } from './szci.classes.szciconfig.ts'; // connectors import { CloudlyConnector } from './connector.cloudly/cloudlyconnector.ts'; // managers import { SzciCloudronManager } from './manager.cloudron/index.ts'; import { SzciDockerManager } from './manager.docker/index.ts'; import { SzciGitManager } from './manager.git/index.ts'; import { SzciNodeJsManager } from './manager.nodejs/index.ts'; import { SzciNpmManager } from './manager.npm/index.ts'; export class Szci { public analytics: plugins.smartanalytics.Analytics; public cloudlyConnector: CloudlyConnector; public npmciEnv: SzciEnv; public npmciInfo: SzciInfo; public npmciConfig: SzciConfig; public npmciCli: SzciCli; // managers public cloudronManager: SzciCloudronManager; public dockerManager: SzciDockerManager; public gitManager: SzciGitManager; public nodejsManager: SzciNodeJsManager; public npmManager: SzciNpmManager; constructor() { this.analytics = new plugins.smartanalytics.Analytics({ apiEndPoint: 'https://pubapi.lossless.one/analytics', projectId: 'gitzone', appName: 'szci', }); } public async start() { this.cloudlyConnector = new CloudlyConnector(this); this.npmciEnv = new SzciEnv(this); this.npmciInfo = new SzciInfo(this); await this.npmciInfo.printToConsole(); this.npmciCli = new SzciCli(this); this.npmciConfig = new SzciConfig(this); await this.npmciConfig.init(); // managers this.cloudronManager = new SzciCloudronManager(this); this.dockerManager = new SzciDockerManager(this); this.gitManager = new SzciGitManager(this); this.nodejsManager = new SzciNodeJsManager(this); this.npmManager = new SzciNpmManager(this); this.npmciCli.startParse(); } }