"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const envinfo_1 = __importDefault(require("envinfo")); const DEFAULT_DETAILS = { Binaries: ['Node', 'Yarn', 'npm'], Browsers: [ 'Brave Browser', 'Chrome', 'Chrome Canary', 'Edge', 'Firefox', 'Firefox Developer Edition', 'Firefox Nightly', 'Internet Explorer', 'Safari', 'Safari Technology Preview', ], Monorepos: ['Yarn Workspaces', 'Lerna'], System: ['OS', 'CPU', 'Memory'], npmGlobalPackages: ['webpack', 'webpack-cli'], npmPackages: '*webpack*', }; class InfoCommand { async apply(cli) { const { logger } = cli; await cli.makeCommand({ name: 'info', alias: 'i', description: 'Outputs information about your system.', usage: '[options]', pkg: '@webpack-cli/info', }, [ { name: 'output', type: String, description: 'To get the output in specified format ( accept json or markdown )', }, ], async (options) => { let { output } = options; const envinfoConfig = {}; if (output) { // Remove quotes if exist output = output.replace(/['"]+/g, ''); switch (output) { case 'markdown': envinfoConfig['markdown'] = true; break; case 'json': envinfoConfig['json'] = true; break; default: logger.error(`'${output}' is not a valid value for output`); process.exit(2); } } let info = await envinfo_1.default.run(DEFAULT_DETAILS, envinfoConfig); info = info.replace(/npmPackages/g, 'Packages'); info = info.replace(/npmGlobalPackages/g, 'Global Packages'); logger.raw(info); }); } } exports.default = InfoCommand;