{
    "parser": "babel",
    "printer": "putout",
    "formatter": ["progress-bar", {
        "minCount": 10
    }],
    "processors": [
        "javascript",
        "json",
        "markdown",
        "ignore",
        "yaml",
        "css",
        "filesystem"
    ],
    "match": {
        "*.{mjs,ts,tsx,mts}": {
            "nodejs/remove-useless-strict-mode": "on",
            "nodejs/add-missing-strict-mode": "off"
        },
        "*.{jsx,js,cjs}": {
            "nodejs/add-missing-strict-mode": "on",
            "nodejs/remove-useless-strict-mode": "on"
        },
        "{.,}putout.json": {
            "putout-config": "on"
        },
        ".madrun.{js,cjs,mjs}": {
            "madrun": "on"
        },
        "setupTests.*": {
            "esm/remove-empty-import": "off"
        },
        ".filesystem.json": {
            "filesystem": "on",
            "nodejs/cjs-file": "on",
            "nodejs/mjs-file": "on",
            "nodejs/rename-file-cjs-to-js": "on",
            "nodejs/rename-file-mjs-to-js": "on",
            "package-json/find-file": "on",
            "package-json/remove-exports-with-missing-files": "on",
            "typescript/find-file": "on",
            "typescript/cts-file": "on",
            "typescript/mts-file": "on",
            "typescript/rename-file-cts-to-ts": "on",
            "typescript/rename-file-mts-to-ts": "on",
            "putout-config/remove-empty-file": "on",
            "esm/resolve-imported-file": "on",
            "esm/apply-namespace-import-to-file": "on"
        },
        "*.md": {
            "apply-arrow": "off",
            "assignment/convert-to-declaration": "off",
            "conditions/apply-consistent-blocks": "off",
            "conditions/convert-comparison-to-boolean": "off",
            "conditions/remove-constant": "off",
            "maybe": "off",
            "convert-quotes-to-backticks": "off",
            "remove-unused-expressions": "off",
            "remove-unused-variables": "off",
            "labels/remove-unused": "off",
            "remove-useless-escape": "off",
            "remove-useless-variables": "off",
            "remove-useless-push": "off",
            "esm/remove-useless-export-specifiers": "off",
            "return/remove-useless": "off",
            "remove-empty": "off",
            "for-of/remove-unused-variables": "off",
            "remove-console": "off",
            "remove-unreachable-code": "off",
            "declare": "off",
            "nodejs/declare": "off",
            "typescript/remove-unused-types": "off",
            "remove-nested-blocks": "off",
            "putout/apply-namespace-specifier": "off"
        },
        "*.svelte": {
            "remove-unused-variables": "off"
        },
        "{*rc,*.{json,yml}}": {
            "convert-quotes-to-backticks": "off",
            "remove-useless-escape": "off",
            "math/apply-numeric-separators": "off"
        },
        ".github/**/*.yml": {
            "github": "on",
            "github/set-node-versions": ["on", {
                "versions": [
                    "20.x",
                    "22.x",
                    "24.x"
                ]
            }],
            "remove-useless-escape": "off"
        },
        ".gitignore": {
            "gitignore": "on"
        },
        ".npmignore": {
            "npmignore": "on"
        },
        ".{nyc,c8}rc.json": {
            "coverage": "on"
        },
        ".*ignore": {
            "convert-quotes-to-backticks": "off"
        },
        "webpack.config.js": {
            "webpack": "on"
        },
        "browserlist": {
            ".browserlistrc": "on"
        },
        ".eslintrc{*,.json}": {
            "eslint": "on",
            "eslint/convert-require-to-import": "off",
            "eslint/apply-match-to-flat": "off"
        },
        "eslint.config.*": {
            "eslint": "on",
            "putout/convert-match-to-function": "off"
        },
        "package.json": {
            "package-json": "on"
        },
        "bin": {
            "nodejs/remove-process-exit": "off",
            "nodejs/convert-top-level-return": "on",
            "remove-console": "off",
            "esm/remove-empty-import": "off"
        },
        "{test,*.spec.{js,mjs,cjs}}": {
            "tape": "on"
        },
        "*.mjs": {
            "nodejs/convert-commonjs-to-esm": "on",
            "tape/convert-mock-require-to-mock-import": "on"
        },
        "*.mts": {
            "typescript/convert-commonjs-to-esm": "on"
        },
        "*.cts": {
            "typescript/convert-esm-to-commonjs": "on"
        },
        "*.cjs": {
            "nodejs/convert-esm-to-commonjs": "on"
        },
        "*.{ts,tsx,mts,cts,md{ts},md{tsx}}": {
            "typescript": "on"
        },
        "*.d.ts": {
            "declare": "off"
        }
    },
    "ignore": [
        "**/node_modules",
        "**/fixture",
        "**/.nyc_output",
        "**/.yarn",
        "**/yarn.lock",
        "**/yarn-error.log",
        "**/*.gif",
        "**/*.png",
        "**/*.jpeg",
        "**/.pnp.*",
        "**/coverage",
        "**/dist",
        "**/dist-dev",
        "**/build",
        "**/package-lock.json",
        "**/.idea",
        "**/.git"
    ],
    "rules": {
        "coverage": "off",
        "typescript": "off",
        "nodejs/convert-esm-to-commonjs": "off",
        "nodejs/convert-commonjs-to-esm": "off",
        "nodejs/convert-top-level-return": "off",
        "putout": "off",
        "putout-config": "off",
        "eslint": "off",
        "package-json": "off",
        "madrun": "off",
        "webpack": "off",
        "gitignore": "off",
        "npmignore": "off",
        "github": "off",
        "tape": "off",
        "nodejs/add-missing-strict-mode": "off",
        "nodejs/remove-useless-strict-mode": "off",
        "browserlist": "off",
        "filesystem": "off"
    },
    "plugins": [
        "parens",
        "apply-at",
        "apply-arrow",
        "apply-dot-notation",
        "apply-flat-map",
        "apply-destructuring",
        "apply-shorthand-properties",
        "apply-starts-with",
        "apply-template-literals",
        "apply-overrides",
        "assignment",
        "extract-keywords-from-variables",
        "extract-object-properties",
        "extract-sequence-expressions",
        "madrun",
        "maybe",
        "webpack",
        "eslint",
        "optional-chaining",
        "package-json",
        "remove-debugger",
        "remove-iife",
        "remove-console",
        "remove-empty",
        "remove-unreferenced-variables",
        "remove-unused-variables",
        "remove-unused-private-fields",
        "remove-unused-expressions",
        "remove-useless-assign",
        "remove-useless-replace",
        "remove-useless-variables",
        "remove-useless-push",
        "remove-useless-map",
        "remove-useless-constructor",
        "remove-useless-array",
        "remove-useless-array-constructor",
        "remove-useless-array-entries",
        "remove-useless-continue",
        "remove-useless-delete",
        "remove-useless-operand",
        "remove-useless-arguments",
        "remove-useless-escape",
        "remove-useless-spread",
        "remove-useless-functions",
        "remove-useless-template-expressions",
        "remove-duplicate-case",
        "remove-nested-blocks",
        "remove-unreachable-code",
        "remove-duplicate-keys",
        "return",
        "reuse-duplicate-init",
        "split-call-with-destructuring",
        "split-variable-declarations",
        "split-nested-destructuring",
        "simplify-ternary",
        "convert-const-to-let",
        "convert-expression-to-params",
        "convert-apply-to-spread",
        "convert-concat-to-flat",
        "convert-arguments-to-rest",
        "convert-object-assign-to-merge-spread",
        "convert-to-arrow-function",
        "convert-array-copy-to-slice",
        "convert-template-to-string",
        "convert-index-of-to-includes",
        "convert-quotes-to-backticks",
        "convert-object-entries-to-array-entries",
        "esm",
        "merge-destructuring-properties",
        "merge-duplicate-functions",
        "declare-before-reference",
        "declare",
        "labels",
        "math",
        "putout",
        "putout-config",
        "generators",
        "promises",
        "typescript",
        "coverage",
        "gitignore",
        "npmignore",
        "browserlist",
        "regexp",
        "github",
        "tape",
        "try-catch",
        "nodejs",
        "montag",
        "new",
        "logical-expressions",
        "types",
        "conditions",
        "for-of",
        "filesystem"
    ]
}
