shell bypass 403
#!/usr/bin/env node
"use strict";
var _commander = _interopRequireDefault(require("commander"));
var _chalk = _interopRequireDefault(require("chalk"));
var _determineConfig = _interopRequireDefault(require("./determineConfig"));
var _logger = _interopRequireDefault(require("../logger"));
var _app = _interopRequireWildcard(require("../app"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const prettyPrintResults = fullResults => {
_logger.default.log('');
fullResults.forEach(result => {
const filePath = _chalk.default.italic(result.filePath) + ':';
if (result.error) {
_logger.default.log(`${_chalk.default.red('ERROR')} ${filePath} ${result.error}`);
return;
}
if (result.status === _app.STATUSES.FAIL) {
_logger.default.log(`${_chalk.default.redBright('FAIL')} ${filePath} ${result.message}`);
return;
}
if (result.status === _app.STATUSES.WARN) {
_logger.default.log(`${_chalk.default.yellowBright('WARN')} ${filePath} ${result.message}`);
return;
}
_logger.default.log(`${_chalk.default.greenBright('PASS')} ${filePath} ${result.message}`);
});
_logger.default.log('');
};
const main = async () => {
const config = (0, _determineConfig.default)(_commander.default);
if (config.files && config.files.length > 0) {
const results = await (0, _app.default)(config);
if (results.url) {
_logger.default.log('');
_logger.default.log(`${_chalk.default.cyanBright('Result breakdown at:')} ${results.url}`);
}
prettyPrintResults(results.fullResults);
if (results.status === _app.STATUSES.FAIL) {
_logger.default.log(_chalk.default.redBright(`bundlewatch FAIL`));
_logger.default.log(results.summary);
_logger.default.log('');
return 1;
}
if (results.status === _app.STATUSES.WARN) {
_logger.default.log(_chalk.default.redBright(`bundlewatch WARN`));
_logger.default.log(results.summary);
_logger.default.log('');
return 0;
}
_logger.default.log(_chalk.default.greenBright(`bundlewatch PASS`));
_logger.default.log(results.summary);
_logger.default.log('');
return 0;
}
_logger.default.error(`Configuration missing:
Run ${_chalk.default.italic('bundlewatch --help')} for examples and options
Documentation available at: http://bundlewatch.io/`);
return 1;
};
const mainSafe = async () => {
try {
const errorCode = await main();
return errorCode;
} catch (error) {
if (error.type === 'ValidationError') {
_logger.default.fatal(error.message);
return 1;
}
_logger.default.fatal(`Uncaught exception`, error);
return 1;
}
};
_commander.default.usage('[options] <filePathGlobs ...>').option('--config [configFilePath]', 'file to read configuration from, if used all options are blown away').option('--max-size [maxSize]', 'maximum size threshold (e.g. 3kb)').option('--compression [compression]', 'specify which compression algorithm to use').option('--normalize [regex]', 'normalize filenames via regex, any match will be removed');
_commander.default.on('--help', () => {
_logger.default.log('');
_logger.default.log(' Examples:');
_logger.default.log('');
_logger.default.log(' Read configuration from package.json');
_logger.default.log(' $ bundlewatch ');
_logger.default.log('');
_logger.default.log(' Read configuration from file');
_logger.default.log(' $ bundlewatch --config internals/bundlewatch.config.js');
_logger.default.log('');
_logger.default.log(' Use command line');
_logger.default.log(' $ bundlewatch --max-size 100KB ./src/*.js /lib/*.js');
_logger.default.log('');
_logger.default.log('');
});
_commander.default.parse(process.argv);
mainSafe().then(errorCode => {
process.exitCode = errorCode;
});