Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/mets.corals.io/wp-content/themes/metras/node_modules/stylelint/lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/mets.corals.io/wp-content/themes/metras/node_modules/stylelint/lib/cli.js
/* @flow */
"use strict";

const chalk = require("chalk");
const checkInvalidCLIOptions = require("./utils/checkInvalidCLIOptions");
const dynamicRequire = require("./dynamicRequire");
const EOL = require("os").EOL;
const getFormatterOptionsText = require("./utils/getFormatterOptionsText");
const getModulePath = require("./utils/getModulePath");
const getStdin = require("get-stdin");
const meow = require("meow");
const needlessDisablesStringFormatter = require("./formatters/needlessDisablesStringFormatter");
const path = require("path");
const printConfig = require("./printConfig");
const resolveFrom = require("resolve-from");
const standalone = require("./standalone");
const writeOutputFile = require("./writeOutputFile");

const EXIT_CODE_ERROR = 2;

/*:: type meowOptionsType = {
  argv?: string[],
  autoHelp: boolean,
  autoVersion: boolean,
  help: string,
  flags: {
    cache: {
      type: string
    },
    "cache-location": {
      type: string
    },
    config: {
      default: boolean,
      type: string
    },
    "config-basedir": {
      type: string
    },
    "print-config": {
      type: string
    },
    color: {
      type: string
    },
    "custom-formatter": {
      type: string
    },
    "custom-syntax": {
      type: string
    },
    "disable-default-ignores": {
      alias: string,
      type: string
    },
    fix: {
      type: string
    },
    formatter: {
      alias: string,
      default: "string",
      type: string
    },
    help: {
      alias: string,
      type: string
    },
    "ignore-disables": {
      alias: string,
      type: string
    },
    "ignore-path": {
      alias: string
    },
    "ignore-pattern": {
      alias: string
    },
    "no-color": {
      type: string
    },
    "output-file" : {
      type: string
    },
    "report-needless-disables": {
      alias: string
    },
    "max-warnings": {
      alias: string
    },
    "stdin-filename": {
      type: string
    },
    quiet: {
      alias: string,
      type: string,
      default: boolean
    },
    syntax: {
      alias: string
    },
    version: {
      alias: string,
      type: string
    }
  },
  pkg: string,
} */

/*:: type cliType = {
  flags: {
    cache: any,
    cacheLocation: any,
    config: any,
    configBasedir: any,
    printConfig: boolean,
    customFormatter: any,
    customSyntax: any,
    disableDefaultIgnores: boolean,
    fix: any,
    formatter: any,
    h: boolean,
    help: boolean,
    ignoreDisables: boolean,
    ignorePath: string,
    ignorePattern: string,
    maxWarnings: number,
    outputFile: string,
    quiet: any,
    reportNeedlessDisables: any,
    stdinFilename: any,
    syntax: any,
    v: string,
    version: string,
    allowEmptyInput: boolean
  },
  input: any,
  help: any,
  pkg: any,
  showHelp: Function,
  showVersion: Function
}*/

/*:: type optionBaseType = {
  formater?: any,
  cache?: boolean,
  cacheLocation?: any,
  codeFilename?: any,
  configBasedir?: any,
  configFile?: any,
  configOverrides: {
    quiet?: any,
  },
  printConfig?: any,
  customSyntax?: any,
  fix?: any,
  ignoreDisables?: any,
  ignorePath?: any,
  outputFile?: string,
  reportNeedlessDisables?: any,
  maxWarnings?: any,
  syntax?: any,
  disableDefaultIgnores?: any,
  ignorePattern?: any,
  allowEmptyInput?: boolean
}*/

const meowOptions /*: meowOptionsType*/ = {
  autoHelp: false,
  autoVersion: false,
  help: `
    Usage: stylelint [input] [options]

    Input: Files(s), glob(s), or nothing to use stdin.

      If an input argument is wrapped in quotation marks, it will be passed to
      globby for cross-platform glob support. node_modules and
      bower_components are always ignored. You can also pass no input and use
      stdin, instead.

    Options:

      --config

        Path to a specific configuration file (JSON, YAML, or CommonJS), or the
        name of a module in node_modules that points to one. If no --config
        argument is provided, stylelint will search for configuration files in
        the following places, in this order:
          - a stylelint property in package.json
          - a .stylelintrc file (with or without filename extension:
            .json, .yaml, .yml, and .js are available)
          - a stylelint.config.js file exporting a JS object
        The search will begin in the working directory and move up the directory
        tree until a configuration file is found.

      --config-basedir

        An absolute path to the directory that relative paths defining "extends"
        and "plugins" are *relative to*. Only necessary if these values are
        relative paths.

      --print-config

        Print the configuration for the given path.

      --ignore-path, -i

        Path to a file containing patterns that describe files to ignore. The
        path can be absolute or relative to process.cwd(). By default, stylelint
        looks for .stylelintignore in process.cwd().

      --ignore-pattern, --ip

        Pattern of files to ignore (in addition to those in .stylelintignore)

      --syntax, -s

        Specify a non-standard syntax. Options: "scss", "sass", "less", "sugarss".
        If you do not specify a syntax, non-standard syntaxes will be
        automatically inferred by the file extensions .scss, .sass, .less, and .sss.

      --fix

        Automatically fix violations of certain rules.

      --custom-syntax

        Module name or path to a JS file exporting a PostCSS-compatible syntax.

      --stdin-filename

        A filename to assign stdin input.

      --ignore-disables, --id

        Ignore styleline-disable comments.

      --disable-default-ignores, --di

        Allow linting of node_modules and bower_components.

      --cache                       [default: false]

        Store the info about processed files in order to only operate on the
        changed ones the next time you run stylelint. By default, the cache
        is stored in "./.stylelintcache". To adjust this, use --cache-location.

      --cache-location              [default: '.stylelintcache']

        Path to a file or directory to be used for the cache location.
        Default is "./.stylelintcache". If a directory is specified, a cache
        file will be created inside the specified folder, with a name derived
        from a hash of the current working directory.

        If the directory for the cache does not exist, make sure you add a trailing "/"
        on *nix systems or "\\" on Windows. Otherwise the path will be assumed to be a file.

      --formatter, -f               [default: "string"]

        The output formatter: ${getFormatterOptionsText({ useOr: true })}.

      --custom-formatter

        Path to a JS file exporting a custom formatting function.

      --quiet, -q

        Only register warnings for rules with an "error"-level severity (ignore
        "warning"-level).

      --color
      --no-color

        Force enabling/disabling of color.

      --report-needless-disables, --rd

        Report stylelint-disable comments that are not blocking a lint warning.
        The process will exit with code ${EXIT_CODE_ERROR} if needless disables are found.

      --max-warnings, --mw

        Number of warnings above which the process will exit with code ${EXIT_CODE_ERROR}.
        Useful when setting "defaultSeverity" to "warning" and expecting the
        process to fail on warnings (e.g. CI build).
        
      --output-file, -o
      
        Path of file to write report.

      --version, -v

        Show the currently installed version of stylelint.

      --allow-empty-input, --aei

        When glob pattern matches no files, the process will exit without throwing an error.
  `,
  flags: {
    "allow-empty-input": {
      alias: "aei",
      type: "boolean"
    },
    cache: {
      type: "boolean"
    },
    "cache-location": {
      type: "string"
    },
    config: {
      default: false,
      type: "string"
    },
    "config-basedir": {
      type: "string"
    },
    "print-config": {
      type: "boolean"
    },
    color: {
      type: "boolean"
    },
    "custom-formatter": {
      type: "string"
    },
    "custom-syntax": {
      type: "string"
    },
    "disable-default-ignores": {
      alias: "di",
      type: "boolean"
    },
    fix: {
      type: "boolean"
    },
    formatter: {
      alias: "f",
      default: "string",
      type: "string"
    },
    help: {
      alias: "h",
      type: "boolean"
    },
    "ignore-disables": {
      alias: "id",
      type: "boolean"
    },
    "ignore-path": {
      alias: "i"
    },
    "ignore-pattern": {
      alias: "ip"
    },
    "no-color": {
      type: "boolean"
    },
    "output-file": {
      alias: "o",
      type: "string"
    },
    "report-needless-disables": {
      alias: "rd",
      type: "boolean"
    },
    "max-warnings": {
      alias: "mw"
    },
    "stdin-filename": {
      type: "string"
    },
    quiet: {
      alias: "q",
      type: "boolean",
      default: false
    },
    syntax: {
      alias: "s"
    },
    version: {
      alias: "v",
      type: "boolean"
    }
  },
  pkg: require("../package.json")
};

module.exports = (argv /*: string[]*/) /*: Promise<void>|void*/ => {
  meowOptions.argv = argv;
  const cli /*: cliType*/ = meow(meowOptions);

  const invalidOptionsMessage = checkInvalidCLIOptions(
    meowOptions.flags,
    cli.flags
  );

  if (invalidOptionsMessage) {
    process.stderr.write(invalidOptionsMessage);
    process.exit(EXIT_CODE_ERROR); // eslint-disable-line no-process-exit
  }

  let formatter = cli.flags.formatter;

  if (cli.flags.customFormatter) {
    const customFormatter = path.isAbsolute(cli.flags.customFormatter)
      ? cli.flags.customFormatter
      : path.join(process.cwd(), cli.flags.customFormatter);

    formatter = dynamicRequire(customFormatter);
  }

  const optionsBase /*: optionBaseType*/ = {
    formatter,
    configOverrides: {}
  };

  if (cli.flags.quiet) {
    optionsBase.configOverrides.quiet = cli.flags.quiet;
  }

  if (cli.flags.syntax) {
    optionsBase.syntax = cli.flags.syntax;
  }

  if (cli.flags.customSyntax) {
    optionsBase.customSyntax = getModulePath(
      process.cwd(),
      cli.flags.customSyntax
    );
  }

  if (cli.flags.config) {
    // Should check these possibilities:
    //   a. name of a node_module
    //   b. absolute path
    //   c. relative path relative to `process.cwd()`.
    // If none of the above work, we'll try a relative path starting
    // in `process.cwd()`.
    optionsBase.configFile =
      resolveFrom.silent(process.cwd(), cli.flags.config) ||
      path.join(process.cwd(), cli.flags.config);
  }

  if (cli.flags.configBasedir) {
    optionsBase.configBasedir = path.isAbsolute(cli.flags.configBasedir)
      ? cli.flags.configBasedir
      : path.resolve(process.cwd(), cli.flags.configBasedir);
  }

  if (cli.flags.stdinFilename) {
    optionsBase.codeFilename = cli.flags.stdinFilename;
  }

  if (cli.flags.ignorePath) {
    optionsBase.ignorePath = cli.flags.ignorePath;
  }

  if (cli.flags.ignorePattern) {
    optionsBase.ignorePattern = cli.flags.ignorePattern;
  }

  if (cli.flags.ignoreDisables) {
    optionsBase.ignoreDisables = cli.flags.ignoreDisables;
  }

  if (cli.flags.disableDefaultIgnores) {
    optionsBase.disableDefaultIgnores = cli.flags.disableDefaultIgnores;
  }

  if (cli.flags.cache) {
    optionsBase.cache = true;
  }

  if (cli.flags.cacheLocation) {
    optionsBase.cacheLocation = cli.flags.cacheLocation;
  }

  if (cli.flags.fix) {
    optionsBase.fix = cli.flags.fix;
  }

  if (cli.flags.outputFile) {
    optionsBase.outputFile = cli.flags.outputFile;
  }

  const reportNeedlessDisables = cli.flags.reportNeedlessDisables;

  if (reportNeedlessDisables) {
    optionsBase.reportNeedlessDisables = reportNeedlessDisables;
  }

  const maxWarnings = cli.flags.maxWarnings;

  if (maxWarnings !== undefined) {
    optionsBase.maxWarnings = maxWarnings;
  }

  if (cli.flags.help || cli.flags.h) {
    cli.showHelp(0);

    return;
  }

  if (cli.flags.version || cli.flags.v) {
    cli.showVersion();

    return;
  }

  if (cli.flags.allowEmptyInput) {
    optionsBase.allowEmptyInput = cli.flags.allowEmptyInput;
  }

  return Promise.resolve()
    .then(() => {
      // Add input/code into options
      if (cli.input.length) {
        return Object.assign({}, optionsBase, {
          files: cli.input
        });
      }

      return getStdin().then(stdin =>
        Object.assign({}, optionsBase, {
          code: stdin
        })
      );
    })
    .then(options => {
      if (cli.flags.printConfig) {
        return printConfig(options)
          .then(config => {
            process.stdout.write(JSON.stringify(config, null, "  "));
          })
          .catch(handleError);
      }

      if (!options.files && !options.code) {
        cli.showHelp();

        return;
      }

      return standalone(options)
        .then(linted => {
          if (reportNeedlessDisables) {
            const report = needlessDisablesStringFormatter(
              linted.needlessDisables
            );

            process.stdout.write(report);

            if (report) {
              process.exitCode = EXIT_CODE_ERROR;
            }

            return;
          }

          if (!linted.output) {
            return;
          }

          process.stdout.write(linted.output);

          if (options.outputFile) {
            writeOutputFile(linted.output, options.outputFile).catch(
              handleError
            );
          }

          if (linted.errored) {
            process.exitCode = EXIT_CODE_ERROR;
          } else if (maxWarnings !== undefined && linted.maxWarningsExceeded) {
            const foundWarnings = linted.maxWarningsExceeded.foundWarnings;

            process.stdout.write(
              chalk.red(`Max warnings exceeded: `) +
                `${foundWarnings} found. ` +
                chalk.dim(`${maxWarnings} allowed${EOL}${EOL}`)
            );
            process.exitCode = EXIT_CODE_ERROR;
          }
        })
        .catch(handleError);
    });
};

function handleError(err /*: { stack: any, code: any }*/) /*: void */ {
  console.log(err.stack); // eslint-disable-line no-console
  const exitCode = typeof err.code === "number" ? err.code : 1;

  process.exit(exitCode); // eslint-disable-line no-process-exit
}

Spamworldpro Mini