#!/usr/bin/env node
							 | 
						|
								
							 | 
						|
								const assign = require('object.assign');
							 | 
						|
								const entries = require('object.entries');
							 | 
						|
								const { ESLint } = require('eslint');
							 | 
						|
								
							 | 
						|
								const baseConfig = require('.');
							 | 
						|
								
							 | 
						|
								const severities = ['off', 'warn', 'error'];
							 | 
						|
								
							 | 
						|
								function getSeverity(ruleConfig) {
							 | 
						|
								  if (Array.isArray(ruleConfig)) {
							 | 
						|
								    return getSeverity(ruleConfig[0]);
							 | 
						|
								  }
							 | 
						|
								  if (typeof ruleConfig === 'number') {
							 | 
						|
								    return severities[ruleConfig];
							 | 
						|
								  }
							 | 
						|
								  return ruleConfig;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								async function onlyErrorOnRules(rulesToError, config) {
							 | 
						|
								  const errorsOnly = assign({}, config);
							 | 
						|
								  const cli = new ESLint({
							 | 
						|
								    useEslintrc: false,
							 | 
						|
								    baseConfig: config
							 | 
						|
								  });
							 | 
						|
								  const baseRules = (await cli.calculateConfigForFile(require.resolve('./'))).rules;
							 | 
						|
								
							 | 
						|
								  entries(baseRules).forEach((rule) => {
							 | 
						|
								    const ruleName = rule[0];
							 | 
						|
								    const ruleConfig = rule[1];
							 | 
						|
								    const severity = getSeverity(ruleConfig);
							 | 
						|
								
							 | 
						|
								    if (rulesToError.indexOf(ruleName) === -1 && severity === 'error') {
							 | 
						|
								      if (Array.isArray(ruleConfig)) {
							 | 
						|
								        errorsOnly.rules[ruleName] = ['warn'].concat(ruleConfig.slice(1));
							 | 
						|
								      } else if (typeof ruleConfig === 'number') {
							 | 
						|
								        errorsOnly.rules[ruleName] = 1;
							 | 
						|
								      } else {
							 | 
						|
								        errorsOnly.rules[ruleName] = 'warn';
							 | 
						|
								      }
							 | 
						|
								    }
							 | 
						|
								  });
							 | 
						|
								
							 | 
						|
								  return errorsOnly;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								onlyErrorOnRules([
							 | 
						|
								  'array-bracket-newline',
							 | 
						|
								  'array-bracket-spacing',
							 | 
						|
								  'array-element-newline',
							 | 
						|
								  'arrow-spacing',
							 | 
						|
								  'block-spacing',
							 | 
						|
								  'comma-spacing',
							 | 
						|
								  'computed-property-spacing',
							 | 
						|
								  'dot-location',
							 | 
						|
								  'eol-last',
							 | 
						|
								  'func-call-spacing',
							 | 
						|
								  'function-paren-newline',
							 | 
						|
								  'generator-star-spacing',
							 | 
						|
								  'implicit-arrow-linebreak',
							 | 
						|
								  'indent',
							 | 
						|
								  'key-spacing',
							 | 
						|
								  'keyword-spacing',
							 | 
						|
								  'line-comment-position',
							 | 
						|
								  'linebreak-style',
							 | 
						|
								  'multiline-ternary',
							 | 
						|
								  'newline-per-chained-call',
							 | 
						|
								  'no-irregular-whitespace',
							 | 
						|
								  'no-mixed-spaces-and-tabs',
							 | 
						|
								  'no-multi-spaces',
							 | 
						|
								  'no-regex-spaces',
							 | 
						|
								  'no-spaced-func',
							 | 
						|
								  'no-trailing-spaces',
							 | 
						|
								  'no-whitespace-before-property',
							 | 
						|
								  'nonblock-statement-body-position',
							 | 
						|
								  'object-curly-newline',
							 | 
						|
								  'object-curly-spacing',
							 | 
						|
								  'object-property-newline',
							 | 
						|
								  'one-var-declaration-per-line',
							 | 
						|
								  'operator-linebreak',
							 | 
						|
								  'padded-blocks',
							 | 
						|
								  'padding-line-between-statements',
							 | 
						|
								  'rest-spread-spacing',
							 | 
						|
								  'semi-spacing',
							 | 
						|
								  'semi-style',
							 | 
						|
								  'space-before-blocks',
							 | 
						|
								  'space-before-function-paren',
							 | 
						|
								  'space-in-parens',
							 | 
						|
								  'space-infix-ops',
							 | 
						|
								  'space-unary-ops',
							 | 
						|
								  'spaced-comment',
							 | 
						|
								  'switch-colon-spacing',
							 | 
						|
								  'template-tag-spacing',
							 | 
						|
								  'import/newline-after-import',
							 | 
						|
								], baseConfig).then((config) => console.log(JSON.stringify(config)));
							 |