Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

putout

coderaiser65.2kMIT40.0.23

🐊 Pluggable and configurable code transformer with built-in ESLint, Babel and support of js, jsx, typescript, flow, markdown, yaml and json

ast, transform, putout-script, codemod, eslint, babel, plugin, lint, variable, unused

readme

Putout NPM version Build Status Coverage Status

Perfection is finally attained not when there is no longer anything to add, but when there is no longer anything to take away.

(c) Antoine de Saint ExupΓ©ry

putout

🐊Putout is a JavaScript Linter, pluggable and configurable code transformer, drop-in ESLint replacement with built-in code printer and ability to fix syntax errors. It has a lot of transformations that keeps your codebase in a clean state, removing any code smell and making code readable according to best practices.

The main target is JavaScript, but:

  • βœ… JSX;
  • βœ… TypeScript;
  • βœ… Yaml;
  • βœ… Markdown;
  • βœ… JSON;
  • βœ… Ignore;

are also supported. Here is how it looks like:

putout

πŸ€·β€οΈ In doubt about using 🐊Putout?

Check out couple variants of plugins that does the same: linting debugger statement:

'use strict';

module.exports.report = () => 'Unexpected "debugger" statement';

module.exports.replace = () => ({
    debugger: '',
});

Choose wisely, competitors cannot even fix… 🀫

πŸ™ Whom should I thank for this project exist?

If I have seen further, it is by standing upon the shoulders of giants.

(c) Isaak Newton

  • πŸ’ͺ ESLint for stable releases and future proof API.
  • πŸ’ͺ Babel for amazing API documented in Handbook and responsiveness of a team.
  • πŸ’ͺ Prettier for minimalistic options and uniform codestyle.
  • πŸ’ͺ jscodeshift for making codemods simple and popular.

🀷 Why does this project exist?

☝️ 🐊Putout on the other hand can make more drastic code transformations that directly affects your codebase making it a better place to code πŸ’».

It can:

  • βœ… remove unused variables;
  • βœ… remove unused for-of variables;
  • βœ… remove unused typescripts types;
  • βœ… remove unreferenced variables;
  • βœ… remove unused private fields;
  • βœ… remove unused expressions;
  • βœ… remove useless variables;
  • βœ… remove useless Object.assign();
  • βœ… remove useless replace();
  • βœ… remove useless map;
  • βœ… remove useless mapped types;
  • βœ… remove useless mapping modifiers;
  • βœ… remove useless continue;
  • βœ… remove useless operand;
  • βœ… remove useless array constructor;
  • βœ… remove useless conditions;
  • βœ… remove useless type conversion;
  • βœ… remove useless functions;
  • βœ… remove useless Array.from;
  • βœ… remove useless spread;
  • βœ… remove useless arguments;
  • βœ… remove useless escape;
  • βœ… remove useless async;
  • βœ… remove useless await;
  • βœ… remove useless typeof;
  • βœ… remove useless template expressions;
  • βœ… remove useless for-of;
  • βœ… remove useless array.entries();
  • βœ… remove debugger statement;
  • βœ… remove iife;
  • βœ… remove nested blocks;
  • βœ… remove process.exit call;
  • βœ… remove console.log calls;
  • βœ… remove empty block statements;
  • βœ… remove empty patterns;
  • βœ… remove strict mode directive from esm;
  • βœ… remove constant conditions;
  • βœ… remove boolean from assertion;
  • βœ… remove boolean from logical expressions;
  • βœ… remove duplicates from TypeScript Union;
  • βœ… remove unreachable code;
  • βœ… remove duplicate keys;
  • βœ… remove useless typescripts types;
  • βœ… remove duplicate typescripts interface keys;
  • βœ… replace test.only to test calls;
  • βœ… replace test.skip to test calls;
  • βœ… reuse duplicate init;
  • βœ… split variable declarations;
  • βœ… split nested destructuring;
  • βœ… simplify assignment;
  • βœ… simplify ternary;
  • βœ… simplify logical expressions;
  • βœ… if absent strict mode directive in commonjs add it;
  • βœ… convert const to let (when needed to avoid TypeError);
  • βœ… convert apply to spread;
  • βœ… convert bitwise to logical operator;
  • βœ… convert concat to flat;
  • βœ… convert esm to commonjs (enabled for *.cjs);
  • βœ… convert commonjs to esm (enabled for *.mjs);
  • βœ… convert template with one expression to string;
  • βœ… convert equal to strict equal;
  • βœ… convert indexOf to includes;
  • βœ… convert replace to replaceAll;
  • βœ… convert assignment to arrow function;
  • βœ… convert forEach to for...of;
  • βœ… convert map to for...of;
  • βœ… convert reduce to for...of;
  • βœ… convert Math.sqrt() to Math.hypot();
  • βœ… extract sequence expressions;
  • βœ… extract object properties;
  • βœ… add return await;
  • βœ… remove useless Promise.resolve;
  • βœ… convert Promise.reject to throw;
  • βœ… declare before reference;
  • βœ… declare undefined variables;
  • βœ… declare imports first;
  • βœ… apply as type assertions;
  • βœ… apply utility types;
  • βœ… apply array.at;
  • βœ… apply filter(Boolean);
  • βœ… apply isArray;
  • βœ… apply if condition;
  • βœ… apply await import;
  • βœ… apply comparison order;
  • βœ… apply flatMap();
  • βœ… apply template literals;
  • βœ… merge duplicate imports;
  • βœ… merge duplicate functions;

Install

npm i putout -D

Usage

Usage: putout [options] [path]
Options:
   -h, --help                  display this help and exit
   -v, --version               output version information and exit
   -f, --format [formatter]    use a specific output format, the default is: 'progress-bar' locally and 'dump' on CI
   -s, --staged                add staged files when in git repository
   -i, --interactive           set lint options using interactive menu
   --fix                       apply fixes of errors to code
   --fix-count [count = 10]    count of fixes rounds
   --rulesdir                  use additional rules from directory
   --transform [replacer]      apply Replacer, for example 'var __a = __b -> const __a = __b', read about Replacer https://git.io/JqcMn
   --plugins [plugins]         a comma-separated list of plugins to use
   --enable [rule]             enable the rule and save it to '.putout.json' walking up parent directories
   --disable [rule]            disable the rule and save it to '.putout.json' walking up parent directories
   --enable-all                enable all found rules and save them to '.putout.json' walking up parent directories
   --disable-all               disable all found rules (set baseline) and save them to '.putout.json' walking up parent directories
   --match [pattern]           read '.putout.json' and convert 'rules' to 'match' according to 'pattern'
   --fresh                     generate a fresh cache
   --no-config                 avoid reading '.putout.json'
   --no-ci                     disable the CI detection
   --no-cache                  disable the cache
   --no-worker                 disable worker thread

To find errors:

putout lib test

To fix errors:

putout lib test --fix

Plugins

By default 🐊Putout uses all enabled by default plugins, anyways it can be run with a couple mentioned plugins (split with ","):

putout lib --plugins remove-debugger,remove-unused-variables

Environment variables

🐊Putout supports next environment variables:

  • PUTOUT_FILES - files that should be processed by putout, divided by ",";
  • PUTOUT_CONFIG_FILE - path to 🐊Putout config file;
  • ESLINT_CONFIG_FILE - path to ESLint config file;
  • NO_ESLINT - do not run ESLint after 🐊Putout;
  • NO_ESLINT_WARNINGS - do not show ESLint warnings;
PUTOUT_FILES=lib,test putout --fix

Configuration

To configure create .putout.json file and override any of default options.

Match

When you need to match paths to rules you can use match section for this purpose in .putout.json:

{
    "match": {
        "server": {
            "remove-process-exit": true
        }
    }
}

Ignore

When you need to ignore some routes no metter what, you can use ignore section in .putout.json:

{
    "ignore": ["test/fixture"]
}

Plugins

🐊Putout supports two types of plugins, prefix with:

  • βœ… @putout/plugin-;
  • βœ… putout-plugin-;

To use your plugin createnpm package with keywords putout, putout-plugin and add it to .putout.json.

For example if you need to remove-something create 🐊Putout plugin with name putout-plugin-remove-something and it to package.json:

{
    "plugins": ["remove-something"]
}

Codemods

🐊Putout supports codemodes in the similar to plugins way, just create a directory ~/.putout and put your plugins there. Here is example: convert-tape-to-supertape and this is examples of work.

API

All examples works both in ESM and CommonJS.

CommonJS:

const putout = require('putout');

ESM:

import {putout} from 'putout';

putout(source, options)

import {putout} from 'putout';

const source = `
    const t = 'hello';
    const m = t + '!';
    console.log(t);
`;

putout(source, {
    plugins: ['remove-unused-variables'],
});

// returns
`
const t = 'hello';
console.log(t);
`;

putoutAsync(source, options)

import {putoutAsync} from 'putout';

const source = `
    const t = 'hello';
    const m = t + '!';
    console.log(t);
`;

await putoutAsync(source, {
    plugins: ['remove-unused-variables'],
});

// returns
`
const t = 'hello';
console.log(t);
`;

License

MIT

changelog

2025.05.05, v40.0.23

feature:

  • 304f3a4e6 putout: @putout/plugin-convert-template-to-string v3.0.0
  • da994b2cc @putout/plugin-convert-template-to-string: migrate to ESM
  • e78d8bc39 eslint-plugin-putout: safe rules: convert-template-to-string
  • 8a8b5e042 @putout/plugin-remove-useless-templates: migrate to ESM
  • b16f61038 @putout/plugin-declare-before-reference: remove-useless-arguments

2025.05.05, v40.0.22

feature:

  • 1e936a6c5 putout: @putout/plugin-try-catch v6.0.0
  • 2349b690f @putout/plugin-try-catch: drop support of 🐊 < 40
  • 76ba37ade @putout/plugin-try-catch: sync: report
  • 325d1c940 @putout/plugin-try-catch: exclude MemberExpression

2025.05.04, v40.0.21

feature:

  • 5071f4626 putout: @putout/plugin-declare-before-reference v8.0.0
  • 6dd259ef3 @putout/plugin-declare-before-reference: drop support of 🐊 < 40
  • 414c42643 @putout/plugin-declare-before-reference: improve support of @putout/plugin-tape
  • 137d93177 @putout/plugin-putout: apply-report: exclude noReport: plugins
  • 4ec4fb8e6 @putout/test: noReport: plugins

2025.05.04, v40.0.20

feature:

  • 36dc454f8 putout: @putout/plugin-split-call-with-destructuring v2.0.0
  • e70b148c4 putout: @putout/plugin-remove-useless-variables v14.0.0
  • 62dc1ff0e @putout/plugin-remove-useless-variabes: migrate to ESM
  • 8b8ee4ffc @putout/operate: replaceWithMultiple: trailing comments
  • 458f18b47 @putout/eslint-config: no-prototype-builtins: off

2025.05.02, v40.0.19

feature:

  • c39ab6d2d putout: @putout/plugin-simplify-ternary v8.0.0
  • b90099e4b @putout/plugin-simplify-ternary: drop support of 🐊 < 40

2025.05.02, v40.0.18

feature:

  • 67d6dc5a6 putout: @putout/plugin-tape v19.0.0
  • 8b4e6b4e5 @putout/plugin-tape: drop support of 🐊 < 40
  • 561eb070b @putout/plugin-tape: add-t-end: speed up

2025.05.01, v40.0.17

feature:

  • d165fa712 putout: @putout/plugin-split-nested-destructuring v4.0.0
  • aa014b627 @putout/plugin-split-nested-destructuring: migrate to ESM
  • 4b2c37d30 @putout/plugin-split-call-with-destructuring: migrate to ESM
  • 96d22a08f @putout/plugin-typescript: apply-type-guards: function

2025.04.29, v40.0.16

feature:

  • f1c9d86b1 putout: @putout/plugin-split-variable-declarations v5.0.0
  • 74fc41ea3 @putout/plugin-split-variable-declarations: migrate to ESM
  • 39a8a51db @putout/plugin-esm: merge-declaration-with-export: add
  • 1e780c495 @putout/plugin-putou: convert-replace-with: rm declaration

2025.04.28, v40.0.15

feature:

  • d4ae50367 putout: @putout/plugin-declare-before-reference v7.0.0
  • 54bb36538 @putout/plugin-declare-before-reference: migtrate to ESM
  • 610b43b47 @putout/plugin-declare-before-reference: cross-references

2025.04.25, v40.0.14

fix:

  • 3abef1518 @putout/plugin-eslint: report

feature:

  • 5d06e9a63 putout: @putout/plugin-nodejs v16.0.0
  • e72073916 @putout/plugin-nodejs: drop support of 🐊 < 40
  • ddae66cc0 @putout/plugin-nodejs: convert-commonjs-to-esm: exclude logical

2025.04.24, v40.0.13

fix:

  • 15de821b5 @putout/test: extension
  • 3c46a6b1f @putout/test: UPDATE

feature:

  • 943d36b25 putout: @putout/plugin-eslint v14.0.0
  • 76cc3bbd2 @putout/plugin-eslint: drop support of 🐊 < 40
  • 7234f64e6 @putout/plugin-eslint: remove-useless-define-config: CommonJS: add support
  • 71f06ca77 @putout/compare: __identifier: check
  • fe1296189 @putout/processor-wasm: rules: remove-useless-args: add

2025.04.23, v40.0.12

fix:

  • 8295aed4c @putout/processor-wasm: rules: apply-nesting: exclude couple

feature:

  • b55e781e4 putout: @putout/plugin-reuse-duplicate-init v8.0.0
  • 0445a713c @putout/plugin-reuse-duplicate-init: migrate to ESM
  • 804a1b657 @putout/processor-wasm: rules: remove-unused: exclude called
  • a7e955e27 @putout/processor-wasm: rules: remove-unused: add

2025.04.22, v40.0.11

fix:

  • 5547e4c38 @putout/test: ext -> extension

feature:

  • 0d7a08058 putout: @putout/plugin-webpack v4.0.0
  • 25abc610c @putout/processor-wasm: apply-nesting (xtuc/webassemblyjs#1208)
  • 0bb7573f1 @putout/processor-wasm: drop support of 🐊 < 40
  • 115d824d0 @putout/test: add ability to override ext

2025.04.18, v40.0.10

feature:

  • bb6971df1 putout: @putout/plugin-labels v2.0.0
  • 44576acd2 @putout/plugin-label: migrate to ESM
  • ba3a5627e @putout/plugin-filesystem: remove-vim-swap-file: .swo
  • 068e8d19a @putout/plugin-esm: apply-namespace-import-to-file: add filename
  • 0b705be30 @putout/plugin-webpack: migrate to ESM

2025.04.17, v40.0.9

feature:

  • 708cfb7bf putout: @putout/plugin-typescript v12.0.0
  • 69b67849f @putout/plugin-typescript: migrate to ESM
  • 7970b9ca2 @putout/plugin-putout: apply-namespace-specifier: get rid of dot dot
  • 5aa4db568 @putout/plugin-esm: apply-namespace-import-to-file
  • ee2ac5a44 @putout/engine-runner: @putout/plugin-filesystem v10.0.0

2025.04.17, v40.0.8

feature:

  • 8a04fbba7 putout: @putout/plugin-filesystem v10.0.0
  • f4f5cde58 @putout/plugin-filesystem: @putout/operator-filesystem v8.0.0
  • 7fe764f01 @putout/processor-filesystem: @putout/operator-filesystem v8.0.0
  • 3d35dc68d putout: @putout/operator-rename-files v4.0.0
  • 4a717f29c @putout/operator-rename-files: drop support of 🐊 < 40
  • 424aeb02d @putout/operator-rename-files: @putout/operator-filesystem v8.0.0
  • 0abca7109 putout: @putout/operator-match-files v8.0.0
  • 13d1c83f3 @putout/operator-match-files: @putout/operator-filesystem v8.0.0
  • 2febbf5d2 @putout/engine-runner: @putout/operator-filesystem v8.0.0

2025.04.17, v40.0.7

feature:

  • a30b87a25 putout: @putout/operator-filesystem v8.0.0
  • 40dee9474 @putout/plugin-putout: includer: ESM support
  • d04aa9077 @putout/operator-filesystem: drop support of 🐊 < 40
  • 6a6f09a13 @putout/operator-filesystem: encodeURIComponent -> escape
  • 2fe66e096 @putout/plugin-esm: apply-namespace-to-import: add

2025.04.16, v40.0.6

fix:

  • fe72c7142 @putout/plugin-esm: resolve-imported-file: rename
  • e64e93ccd @putout/plugin-putout: apply-exports: off

feature:

  • ea8f874c6 putout: @putout/plugin-return v2.0.0
  • 766298d13 @putout/plugin-return: convert to ESM

2025.04.15, v40.0.5

fix:

  • a02d1ceb6 @putout/plugin-convert-quotes-to-backtics: esm

feature:

  • bcc141e41 putout: @putout/plugin-convert-quotes-to-backticks v5.0.0
  • 18cc92029 @putout/plugin-convert-quotes-to-backticks: convert to ESM
  • 2d1387d9c @putout/plugin-convert-quotes-to-backticks: exclude: backtick

2025.04.14, v40.0.4

feature:

  • bc32c601d putout: @putout/plugin-apply-overrides v3.0.0
  • 845a0764e @putout/plugin-apply-overrides: convert to ESM
  • a09f6f0f6 @putout/engine-parser: hermes-parser v0.28.0

2025.04.10, v40.0.3

feature:

  • d64a2a7b1 putout: @putout/plugin-types v8.0.0
  • 965852122 @putout/plugin-types: migrate to ESM
  • 41f7b1c24 @putout/plugin-esm: add resolve-imported-file

2025.04.09, v40.0.2

fix:

  • fd687e08f @putout/operator-filesystem: readFileContent: avoid content decoding when has spaces

feature:

  • fa9d25f15 @putout/plugin-esm: add resolve-imported-file
  • f01a60ba7 @putout/test: noReportCode: add

2025.04.08, v40.0.1

feature:

  • 93aab7f93 putout: @putout/plugin-putout-config v10.0.0

2025.04.08, v40.0.0

fix:

  • d10f9fa21 @putout/engine-runner: debug

feature:

  • 6942cd54d putout: @putout/processor-css v11.0.0
  • 9445b251a @putout/processor-html: @putout/processor-css v11.0.0
  • 8bc1be871 @putout/processor-html: drop support of 🐊 < 40
  • c2e3e7a84 @putout/processor-css: drop support of 🐊 < 40
  • a34dbec14 @putout/processor-css: stylelint-config-standard v38.0.0
  • 269dfb2c8 putout: @putout/plugin-esm v4.0.0
  • b25ea5b76 putout: @putout/plugin-putout-config v9.0.1
  • 32eb6602c putout: @putout/plugin-putout v25.0.0
  • 13b71602a @putout/plugin-esm: drop support of 🐊 < 40
  • 8978a19e2 @putout/plugin-putout-config: drop support of 🐊 < 40
  • a5fa3a3c5 @putout/plugin-putout: drop support of 🐊 < 40
  • 57ae12d38 @putout/plugin-putout-config: apply-esm: v40
  • 41ea5055e @putout/plugin-esm: add-index-to-import: putout -> esm
  • 3100343b0 @putout/plugin-react: convert to ESM
  • 70a057292 @putout/plugin-putout: add-index-to-import: js -> .js
  • 5c9bc3d5e @putout/cli-process-file: get rid of mock-require

2025.04.04, v39.7.6

feature:

  • dd57a7b57 putout: @putout/plugin-apply-destructuring v9.0.0
  • c3373261a @putout/plugin-apply-destructuring: convert to ESM

2025.04.03, v39.7.5

feature:

  • 2df34edd6 putout: @putout/plugin-math v4.0.0
  • 9158c6bc2 @putout/plugin-math: convert to ESM

2025.04.03, v39.7.4

feature:

  • 3434213d1 putout: @putout/plugin-parens v3.0.0
  • d13ee4a48 @putout/plugin-parens: migrate to ESM

2025.04.03, v39.7.3

feature:

  • 4269914dd putout: @putout/plugin-maybe v4.0.0
  • 904b69bf5 @putout/plugin-maybe: migrate to ESM

2025.04.03, v39.7.2

feature:

  • 8a4d4c6f3 putout: @putout/plugin-esm v3.0.0
  • 54b1f9f0a @putout/plugin-esm: migrate to ESM
  • 91efff3de @putout/plugin-putout: declare: types: exclude: import

2025.04.02, v39.7.1

feature:

  • de3d3173b putout: @putout/plugin-merge-duplicate-functions v3.0.0
  • 94d163aa4 @putout/plugin-merge-duplicate-functions: convert to ESM

2025.04.01, v39.7.0

feature:

  • 30aab90cc putout: @putout/engine-reporter v4.0.0
  • 9fae392f7 @putout/engine-reporter: drop support of node < 20
  • a9993f599 @putout/engine-reporter: @putout/cli-keypress v3.0.0
  • f62697b27 putout: @putout/cli-keypress v3.0.0
  • 2d063cb10 putout: @putout/plugin-apply-flat-map v3.0.0
  • ff4fb02f4 @putout/cli-keypress: migrate to ESM
  • b465fb4e6 @putout/plugin-apply-flat-map: migrate to ESM
  • 38327a9dd @putout/engine-parser: estree-to-babel v11.0.0
  • 3b6864c1c @putout/plugin-eslint: remove-suffix-config: add support of CommonJS

2025.03.31, v39.6.0

feature:

  • 751537f78 putout: @putout/plugin-new v4.0.0
  • 9d8d469bc putout: @putout/plugin-optional-chaining v2.0.0
  • c0cc06e33 @putout/plugin-new: convert to ESM
  • 060716f67 @putout/plugin-optional-chaining: convert to ESM

2025.03.29, v39.5.0

feature:

  • 531478f73 putout: @putout/plugin-tape v18.0.0
  • 8c24505e1 @putout/plugin-tape: convert to ESM
  • 0ec1b47f0 @putout/plugin-nextjs: convert to ESM
  • 72dea8119 @putout/engine-runner: scanner: condition -> shouldConvert
  • a43e4084c @putout/engine-runner: get rid of mock-require
  • 8cdfb8ff8 @putout/plugin-nodejs: declare: process: env
  • 56feadc53 @putout/engine-runner: add directories

2025.03.28, v39.4.0

feature:

  • b3c0a7b37 putout: @putout/plugin-merge-destructuring-properties v11.0.0
  • a4c99901c @putout/plugin-merge-destructuring-properties: AssignmentExpression
  • 3078ca324 @putout/plugin-merge-destructuring-properties: assignment
  • 67a6096e9 @putout/plugin-merge-destructuring-properties: report
  • 881fc650a @putout/plugin-merge-destructuring-properties: migrate to ESM
  • be1a24f36 @putout/test: @putout/cli-process-file v3.0.0
  • 02d3ad659 @putout/plugin-react-router: convert to ESM
  • 0febc6c13 @putout/plugin-postcss: convert tot ESM

2025.03.27, v39.3.0

fix:

  • 08a13b0e4 @putout/plugin-filesystem: convert to ESM

feature:

  • e3f030a24 putout: @putout/plugin-promises v17.0.0
  • c30003a77 @putout/plugin-promises: convert to ESM
  • c96e6ba57 putout: @putout/cli-process-file v3.0.0
  • c8cf25c26 putout: @putout/plugin-try-catch v5.0.0
  • eba82d546 @putout/cli-process-file: samadhi v3.0.0
  • 6fcd1a664 @putout/cli-process-file: drop support of node < 20
  • 00a6beba7 @putout/cli-process-file: samadhi v3.0.0
  • b2bf47047 @putout/plugin-try-catch: convert to ESM
  • b6ec47eeb putout: @putout/cli-ruler v4.0.0
  • a524b64a7 @putout/cli-ruler: drop support of node < 20
  • ab358222f @putout/cli-ruler: move out stringify
  • 02e6f8fdd @putout/plugin-putout: add-index-to-import: cjs
  • 299a85ed0 @putout/plugin-filesystem: rename-test-to-spec: simplify

2025.03.26, v39.2.0

feature:

  • bf0738e89 putout: @putout/cli-process-file v3.0.0
  • a3fa76ab2 putout: @putout/plugin-try-catch v5.0.0
  • f7b1d7af4 @putout/cli-process-file: samadhi v3.0.0
  • e82bb9da2 @putout/cli-process-file: drop support of node < 20
  • 82756c1c3 @putout/cli-process-file: samadhi v3.0.0
  • b4c81b687 @putout/plugin-try-catch: convert to ESM

2025.03.26, v39.1.0

fix:

  • 78591b068 @putout/plugin-filesystem: convert to ESM

feature:

  • f639fc14e putout: @putout/cli-ruler v4.0.0
  • a73365e22 @putout/cli-ruler: drop support of node < 20
  • 526801988 @putout/cli-ruler: move out stringify
  • 581eee976 @putout/plugin-putout: add-index-to-import: cjs
  • 419b65277 @putout/plugin-filesystem: rename-test-to-spec: simplify
  • 8da42e75b @putout/plugin-vitest: drop support of 🐊 < 39

2025.03.25, v39.0.14

fix:

  • 16e21ad1d @putout/plugin-madrun: convert-cut-env-to-run: report
  • 5bf53b94e @putout/plugin-putout-config: comparisson -> comparison

feature:

  • fdc7bad66 putout: @putout/plugin-eslint v13.0.0
  • ce8bab41d @putout/plugin-eslint: remove-useless-define-config: add
  • e71ea95e9 @putout/plugin-eslint: convert to ESM
  • f420043c4 putout: @putout/plugin-regexp v11.0.0
  • bb86eb8a8 @putout/plugin-regexp: drop support of 🐊 < 39
  • 7c97b5734 @putout/plugin-putout: apply-namespace-specifier: parent directory
  • ef569b43d @putout/plugin-nodejs: convert-commonjs-to-esm-require: do not add extension

2025.03.25, v39.0.13

fix:

  • a4a02f14a @putout/plugin-nodejs: declare: json -> esm

feature:

  • 165818035 putout: @putout/plugin-putout-config v9.0.0
  • 6df798018 @putout/plugin-putout-config: apply-assignment: add
  • 2f86e89b1 @putout/plugin-putout-config: drop support of 🐊 < 39
  • c948d5f1c @putout/plugin-putout: apply-exports: add
  • 52e17b11a @putout/plugin-nodejs: convert-exports-to-module-exports: declared
  • 3e10bd2e5 @putout/plugin-putout: check-replace-code: commonjs

2025.03.24, v39.0.12

fix:

  • 997d6ae86 @putout/plugin-react-hooks: react-hooks -> index

feature:

  • d272ebf7b putout: @putout/plugin-madrun v21.0.0
  • 20c97bf8c @putout/plugin-assignment: convert to ESM
  • e3ffee0d5 @putout/plugin-assignment: add
  • ea21d12ab @putout/plugin-madrun: drop support of node < 20
  • 69b322eea @putout/plugin-putout: apply-namespace-specifier: external
  • 11202d1b8 @putout/plugin-cloudcmd: convert to ESM
  • 98acaf81b @putout/plugin-react-hook-form: drop support of node < 20
  • 18c666b04 @putout/plugin-react-hooks: convert to ESM
  • da7e1be4a @putout/engine-parser: hermes-parser v0.27.0
  • d3e6231e0 @putout/test: v13
  • 9dd1cd659 @putout/test: drop support of node < 20
  • aafcc9bbc putout: supertape v11.0.2

2025.03.23, v39.0.11

feature:

  • 69c35c650 putout: @putout/plugin-for-of v9.0.0
  • c6d2ca2ea @putout/plugin-for-of: drop support of node < 20
  • bfb25a8c9 @putout/plugin-for-of: convert to ESM
  • 702ac92ac @putout/plugin-putout: check-replace-code: exclude BlockStatement

2025.03.22, v39.0.10

fix:

  • 9305eaa57 @putout/plugin-putout: apply-exports-to-rename-files: matchFiles -> renameFiles
  • ac77f5dac @putout/plugin-putout: declare: get-rule

feature:

  • 281ad0520 putout: @putout/plugin-nodejs v15.0.0
  • 5ffd7d4a2 @putout/plugin-nodejs: convert to ESM
  • 9f8bd3660 @putout/plugin-putout: apply-exports-to-rename-files: add
  • a5e022be5 @putout/plugin-putout: apply-exports-to-match-files: add
  • 5a21a7dba @putout/plugin-putout: convert-report-to-function: esm
  • 8ea2fe3c6 eslint-plugin-putout: no-unresolved: ".", ".."
  • f162ed7b4 @putout/engine-runner: @putout/plugin-filesystem v9.0.0

2025.03.22, v39.0.9

feature:

  • 094000e9d putout: @putout/plugin-filesystem v9.0.0
  • 67f5a80b1 @putout/plugin-filesystem: @putout/operator-filesystem v7.0.0
  • e5d78d941 @putout/plugin-filesystem: drop support of 🐊 < 39

2025.03.22, v39.0.8

feature:

  • 4cb7c20db putout: @putout/operator-rename-files v3.0.0
  • 25ee061f0 @putout/operator-rename-files: @putout/operator-filesystem v7.0.0
  • 55b51e239 @putout/operator-rename-files: drop support of node < 20
  • c5d2ba619 @putout/engine-runner: @putout/operator-filesystem v7.0.0
  • 703dfc60d @putout/engine-runner: @putout/compare v17.0.0
  • ae16cfa37 @putout/engine-runner: @putout/operator-declare v12.0.0
  • befb1007d @putout/operator-match-files: @putout/operator-filesystem v7.0.0

2025.03.22, v39.0.7

feature:

  • 2217f8299 putout: @putout/operator-add-args v11.0.1

2025.03.22, v39.0.6

feature:

  • 851b52a36 putout: @putout/processor-filesystem v6.0.0
  • 2308a4b0d @putout/processor-filesystem: drop support of node < 20
  • 0ebf92ded @putout/processor-filesystem: @putout/operator-filesystem v7.0.0

2025.03.22, v39.0.5

feature:

  • 1a0032eb9 putout: @putout/operator-declare v12.0.0
  • 3ed32a6ed @putout/operator-declare: @putout/engine-parser v13.0.1
  • f0050dd42 @putout/operator-declare: @putout/compare v17.0.0
  • dcec9d2b7 @putout/operator-declare: drop support of node < 20
  • d7e4e9c54 @putout/operator-add-args: @putout/engine-parser v13.0.1
  • 8051ac4fd @putout/operator-match-files: @putout/engine-parser v13.0.1
  • 4b2b14e4b putout: @putout/traverse v13.0.0
  • 0faf6eebd @putout/traverse: drop support of node < 20
  • 8b4e83f6a @putout/traverse: @putout/compare v17.0.0
  • a5a8b7e7b putout: @putout/operator-filesystem v7.0.0
  • 41ef0eecc @putout/operator-filesystem: drop support of node < 20
  • ca729724d @putout/operator-filesystem: @putout/engine-parser v13.0.1
  • 9a5882f41 root: redlint v4.0.0
  • f915a602d putout: @putout/operator-add-args v10.0.1
  • cfeb9e50b @putout/operator-add-args: @putout/compare v17.0.0
  • 8b05e3efd @putout/operator-add-args: drop support of node < 20
  • a3d06ef9a @putout/engine-parser: @putout/printer v14.0.0
  • d023d0e87 eslint-plugin-putout: @putout/engine-parser v13.0.0

2025.03.22, v39.0.4

feature:

  • 22da9682f putout: @putout/compare v17.0.0
  • 68af3aa91 @putout/compare: drop support of node < 20
  • f202f7919 @putout/compare: @putout/engine-parser v13.0.0
  • aed617aaf putout: @putout/engine-runner v24.0.0
  • 709484533 @putout/engine-runner: @putout/engine-parser v13.0.0
  • 43bb04896 putout: @putout/operator-match-files v7.0.0
  • 7f2912020 @putout/operator-match-files: drop support of node < 20

2025.03.22, v39.0.3

feature:

  • 9d23ae441 putout: @putout/engine-parser v13.0.0
  • 7755997dc @putout/engine-parser: drop support of node < 20
  • 91d9216b5 @putout/engine-parser: @putout/printer v13.4.1
  • 49440ef0e root: madrun v11.0.0

2025.03.21, v39.0.2

feature:

  • facefb7ed putout: @putout/plugin-putout v24.0.0

2025.03.21, v39.0.1

fix:

  • 83da6f393 eslint-plugin-putout: rm synkit

feature:

  • 5881498cc @putout/plugin-printer: convert to ESM
  • 8fb6762bb @putout/plugin-apply-exports-to-add-args: add
  • b3cd69a90 @putout/plugin-putout: convert to ESM
  • 91f44cc12 @putout/plugin-putout: drop support of node < 20
  • 28ab74ed8 @putout/operator-parens: putout v39.0.0
  • d91505ce0 root: @putout/eslint-flat v3.0.0
  • 9bdb8921d @putout/eslint-flat: drop support of node < 20
  • db06f0fa2 @putout/eslint-flat: @eslint/config-helpers v0.2.0
  • 1ecc6b65e eslint-plugin-putout: typescript v5.8.2
  • d0f92b682 eslint-plugin-putout: @putout/eslint-config v11.0.0
  • ef072c248 root: eslint-plugin-putout v26.0.0

2025.03.21, v39.0.0

fix:

  • be67064de @putout/plugin-madrun: add-function: report
  • 6ba9abfc8 @putout/operator-filesystem: removeEmptyDirectory: root
  • d98797154 @putout/plugin-putout: apply-report: template

feature:

  • 16f2974e9 putout: @putout/plugin-montag v4.0.0
  • dca9ff3d7 putout: @putout/plugin-github v15.0.0
  • 953e1f062 @putout/plugin-github: set-node-versions: report
  • 465424b6e putout: drop support of node < 20
  • 87b73ceeb @putout/eslint-config: drop support of node < 20
  • be11baee1 @putout/eslint-config: object-shorthand: dissable, use apply-shorthand-properties instead
  • b0f280911 eslint-plugin-putout: drop support of node < 20
  • b75f4714a @putout/plugin-github: convert to ESM
  • 2477c3f51 @putout/plugin-github: drop support of node < 20
  • ef38ba0c0 @putout/plugin-montag: convert to ESM
  • fb6b83776 eslint-plugin-putout: get rid of esm preset
  • fae128672 @putout/engine-loader: rules: parse-rules: get rid of condition
  • 2238f289d @putout/engine-loader: add ability to disable all rules except couple enabled
  • 33d1f137f @putout/plugin-filesystem: remove-empty-directory: add
  • 9b0fa1ea6 @putout/engine-runner: replace: initialize match once
  • 44a831012 @putout/plugin-putout: declare: removeEmptyDirectory
  • 9975fe8d1 @putout/operator-filesystem: property: move out
  • 78c27f37e @putout/operator-filesystem: removeEmptyDirectory: add

2025.03.17, v38.5.7

fix:

  • f15bcd105 @putout/plugin-remove-useless-variables: assignment
  • c19c8e110 @putout/plugin-remove-useless-variables: report

feature:

  • 8061de2a0 putout: @putout/plugin-remove-unreferenced-variables v5.0.0
  • f59537cb6 @putout/plugin-remove-unreferenced-variables: drop support of 🐊 < 38
  • 50271f209 @putout/plugin-remove-unreferenced-variables: AssignmentExpression: exclude

2025.03.17, v38.5.6

fix:

  • c8f3d140b @putout/plugin-putout: apply-report: no-report-three: TemplateLiteral

feature:

  • 1ce114ff5 putout: @putout/plugin-remove-useless-variables v13.0.0
  • 320fb45f1 @putout/plugin-remove-useless-variables: drop support of 🐊 < 38
  • ba7a45953 @putout/plugin-remove-useless-variables: assignment: add
  • 01dc18bc3 @putout/plugin-putout: declare: addRootDirectory
  • 4b127eb3d @putout/operator-filesystem: getRootDirectory: add
  • 474878740 @putout/plugin-putout: apply-report: noReportWithOptions: 3 args
  • ded6d6690 @putout/cli-filesystem: removeFile: force: add
  • 3aa90044b @putout/plugin-putout: apply-report: add
  • 2bf9c989e @putout/plugin-putout: apply-create-nested-directory: add
  • 0fd65e55a @putout/plugin-putout: declare: createNestedDirectory: add

2025.03.15, v38.5.5

feature:

  • 783b883d9 putout: @putout/plugin-tape v17.0.0
  • 2abe1fae3 @putout/plugin-conditions: merge-if-with-else
  • 70b56daee @putout/plugin-tape: drop support of 🐊 < 38
  • 819116c10 @putout/plugin-tape: convert-called-with-args: add spread
  • 9d3893e2a @putout/engine-runner: replace: couple: run fix only after match
  • 08ce83bd7 @putout/plugin-for-of: add-missing-declaration: add support-of ArrayPattern, ObjectPattern
  • 769c220e2 @putout/engine-runner: rm comment
  • 86af22bfa @putout/operator-filesystem: createNestedDirectory: add
  • 5fa44bdbd @putout/plugin-conditions: remove-useless-loop-condition
  • b8dcb0016 @putout/plugin-putout: convert-node-to-path-in-get-template-values: exclude parentPath
  • 698ad755e eslint-plugin-putout: json: .filesystem.json: putout/objects-braces-inside-array: disable
  • d4ababf00 @putout/processor-filesystem: lint simple filesystem
  • 40c6a3b5b @putout/plugin-putout: declare: readDirectory: add
  • d6c60679f @putout/operator-filesystem: readDirectory: add
  • 7b16cf80b @putout/plugin-operator-declare: nodejs/convert-esm-to-commonjs: improve support
  • 67fb7675d @putout/plugin-putout: replace-test-message: transform with plugins
  • d8574395d @putout/plugin-putout: add-traverse-args: convert-traverse-to-scan
  • 7dfac1641 @putout/plugin-putout: convert-traverse-to-scan: ESM
  • c0f811234 @putout/plugin-filesystem: remove-travis-yml-file: add

2025.03.10, v38.5.4

fix:

  • 7d2db2ff5 @putout/plugin-reuse-duplicate-init: overlap
  • c311d1b43 eslint-plugin-putout: rules
  • 9fe97183d eslint-plugin-putout: exports: rules

feature:

  • 1af5645a6 putout: @putout/plugin-reuse-duplicate-init v7.0.0
  • ad76550ff @putout/plugin-reuse-duplicate-init: drop support of 🐊 < 38
  • 2d49645c5 @putout/plugin-filesystem: remove-nyc-output-files: add
  • be3cbcdcb @putout/plugin-putout: add-traverse-args: options
  • 0dcc70fef @putout/plugin-eslint: apply-define-config: add (https://eslint.org/blog/2025/03/flat-config-extends-define-config-global-ignores/)
  • 1aaeac6d4 @putout/plugin-putout: check-declare: add
  • 2de7fd42f @putout/plugin-eslint: declare: defineConfig, globalIgnores
  • c0efe51d1 remove-unused-variables: ExportNamedDeclaraiton: ObjectPattern
  • 72c932ea9 @putout/eslint-flat: createESLintConfig: alias to defineConfig
  • 95c59f7f4 eslint-plugin-putout: export plugin (#232)

2025.03.07, v38.5.3

fix:

  • 48492ecc8 @putout/cli-process-file: log error
  • 95098943a @putout/cli-process-file: log any kind of error, not only from parser

feature:

  • 4183d7a89 putout: @putout/plugin-remove-duplicate-keys v7.0.0
  • 66e8e4b74 @putout/plugin-remove-duplicate-keys: drop support of 🐊 < 38
  • 4dfb77852 @putout/plugin-remove-duplicate-keys: argument name clash support
  • 208422a17 @putout/operate: traverseProperties: ObjectPattern: exclude RestElement
  • 340e3a131 eslint-plugin-puotut: plugin: convert to ESM
  • fade161c4 @putout/cli-process-file: FLATLINT
  • ecf87f88e @putout/plugin-putout: apply-lowercase-to-node-builders: add (babel/babel#17129)
  • 8622b32f5 @putout/plugin-react-hooks: drop support of 🐊 < 38
  • 43c258230 @putout/plugin-react-hooks: convert-state-to-hooks: change names
  • 4139f0cfd @putout/plugin-putout: declare: lowercased node builders (babel/babel#17129)
  • f69c01e8a @putout/plugin-remove-unused-private-fields: report
  • 07c709330 @putout/plugin-remove-unused-private-fields: convert to Traverser

2025.03.05, v38.5.2

feature:

  • f3b7634d0 putout: @putout/plugin-madrun v20.0.0
  • 696408a0f @putout/plugin-madrun: drop support of 🐊 < 38
  • 8fd873682 @putout/plugin-madrun: add-missing-quotes-to-watcher
  • 80ffe0331 @putout/compare: jessy v4.1.0
  • 5095a96ad @putout/engine-runner: jessy v4.0.0
  • 0859c0230 @putout/plugin-eslint: remove-useless-match-to-flat: add

2025.03.03, v38.5.1

feature:

  • 9cb17c1a1 putout: @putout/plugin-regexp v10.0.0
  • 785310630 @putout/plugin-regexp: drop support of 🐊 < 38
  • 4d9d69748 @putout/plugin-regexp: apply-ends-with: exclude escape

2025.03.02, v38.5.0

feature:

  • 66cc1de57 @putout/plugin-split-call-with-destructuring: add

2025.03.01, v38.4.5

fix:

  • 81b03812a @putout/plugin-apply-arrow: no loc
  • 9f556a4fa eslint-plugin-putout: typescript version according to peer dependencies

feature:

  • d1b5a3743 putout: @putout/plugin-apply-arrow v2.0.0
  • 6c78e2aaf @putout/plugin-apply-arrow: drop support of 🐊 < 38
  • dc08ab558 @putout/engine-runner: find: override traverse
  • 6dd6b23b2 @putout/plugin-declare-before-reference: improve uid check
  • 1929a9875 @putout/plugin-declare-before-reference: add not top level
  • e30bfad5f @putout/plugin-split-assignment-expressions: array destructuring after variable assignment
  • 7fa846e79 @putout/test: report: add ability to pass plugins

2025.02.28, v38.4.4

fix:

  • 22496dc1d @putout/engine-runner: remove useless should skip

feature:

  • 11d844a16 putout: @putout/plugin-split-assignment-expressions v2.0.0
  • 6b36f0b14 @putout/plugin-split-assignment-expressions: false positive: MemberExpression with SequenceExpression property
  • 0f13915fd @putout/plugin-split-assignment-expressions: drop support of 🐊 < 38
  • 4dd1beba9 @putout/cli-process-file: use flatlint only when reason = parse
  • a72e6eacd @putout/engine-runner: reason: fix
  • 6b27274b6 @putout/engine-runner: add error reason when throw during traverse
  • 61792e6d8 @putout/cli-process-file: do not run samadhi, when reason of an error is traverse

2025.02.28, v38.4.3

feature:

  • d1d721543 putout: @putout/plugin-apply-destructuring v8.0.0
  • dacc7c482 @putout/plugin-apply-destructuring: shorten
  • 10a42996f @putout/plugin-apply-destructuring: assign
  • c7e0ff204 @putout/plugin-apply-destructuring: drop support of 🐊 < 38
  • 884c7a1c5 @putout/plugin-minify: drop support of 🐊 < 38
  • 9465e15ca @putout/engine-runner: fixCount: 2
  • 32c313f96 @putout/engine-runner: traverse: override
  • 58f32a1ca @putout/plugin-esm: apply-export-from: add
  • e93b188c2 @putout/plugin-typescript: apply-utility-types: Optional: add
  • 04b17fd7d @putout/eslint-config: no-empty: off
  • 9916d5c2e @putout/plugin-remove-nested-blocks: remove useless crawl
  • a23b1a2c4 @putout/operate: remove: do not throw when no node
  • b5d6949da eslint-plugin-putout: export rules
  • 525711e30 @putout/eslint: get rid of legacy ESLintRC

2025.02.21, v38.4.2

feature:

  • 132b5cbd2 putout: @putout/plugin-remove-useless-escape v7.0.0
  • 82b4986bd @putout/plugin-eslint: remove-create-eslint-config-with-one-argument
  • d0cae79c5 @putout/plugin-remove-useless-escape: drop support of 🐊 < 38
  • 40d4e7b40 @putout/plugin-remove-useless-escape: backtick inside RegExp

2025.02.21, v38.4.1

feature:

  • 79ca0645c putout: @putout/plugin-eslint v12.0.0

2025.02.21, v38.4.0

feature:

  • 5e784a86d @putout/test: @putout/eslint v4.0.0
  • 3c3082de1 @putout/cli-process-file: @putout/eslint v4.0.0
  • 94406e20b putout: @putout/test v12.0.0
  • 7438f34ef root: eslint-plugin-putout v25.0.1
  • 5c9d37329 putout: @putout/eslint v4.0.0
  • 5b739c41c eslint-plugin-putout: @putout/eslint v4.0.0
  • 950d5ab5c eslint-plugin-putout: @putout/eslint-config v10.0.0
  • 064e59bb5 putout: migrate to FlatConfig
  • 480bee08e @putout/test: improve support of FlatConfig
  • 5c9a692d7 @putout/eslint: improve support of FlatConfig
  • 888b338e9 @putout/eslint-config: migrate to ESM
  • 1710fb0e2 eslint-plugin-putout: migrate to FlatConfig
  • f0abc9b18 @putout/plugin-eslint: remove-suffix-config: add
  • bd50bf939 @putout/plugin-eslint: remove-parser-options: exclude when has parser property
  • 8d957e176 @putout/plugin-eslint: remove-parser-options: exclude typescript options
  • daed489ee @putout/plugin-eslint: apply-create-eslint-config: exclude when no SpreadElement
  • 5f35b70d2 @putout/operator-keyword: default: add
  • 37f664458 putout: @putout/plugin-declare-before-reference v6.0.0
  • 9cdf816d5 @putout/plugin-declare-before-reference: drop support of 🐊 < 38
  • f871b6fd3 @putout/declare-before-reference: exclude require
  • 7dbf1415a @putout/plugin-eslint: remove-spread-from-create-eslint-config: add
  • 43afe6b55 @putout/plugin-eslint: remove-parser-options: add
  • 48374759c @putout/plugin: add-path-to-arg-fix: no body
  • 9a873a604 @putout/plugin-commonjs: require: add support of ArrayPattern
  • b1ddce88b @putout/processor-css: use @stylistic instead of prettier

2025.02.19, v38.3.1

feature:

  • b0ac42adf putout: @putout/plugin-declare-before-reference v6.0.0
  • ec1b1aa4d @putout/plugin-declare-before-reference: drop support of 🐊 < 38
  • aa139735a @putout/declare-before-reference: exclude require
  • 1ede44548 @putout/plugin-eslint: remove-spread-from-create-eslint-config: add
  • f6ae23714 @putout/plugin-eslint: remove-parser-options: add
  • 2584e601f @putout/plugin: add-path-to-arg-fix: no body
  • f9b2209e9 @putout/plugin-commonjs: require: add support of ArrayPattern
  • d680da029 @putout/processor-css: use @stylistic instead of prettier
  • 49140f0ce root: lerna: drop
  • 3ae38614e putout: @putout/cli-cache v5.0.0
  • cb993e6bf @putout/cli-cache: convert to ESM

2025.02.18, v38.3.0

fix:

feature:

  • 945d7e658 putout: @putout/cli-cache v5.0.0
  • 8baa29be3 @putout/cli-cache: convert to ESM
  • 7ede62b95 putout: dynamic load of @putout/cli-cache
  • 45f3bca30 @putout/cli-cache: get rid of find-up
  • fcc31feb6 @putout/cli-cache: find-node-modules using escalade
  • 40cd7d8ea @putout/cli-cache: find node_modules instead of package.json
  • a46da87c0 cache: check mtime when change do not work
  • e225bdbf4 @putout/plugin-esm: merge-duplicate-imports: duplicate-specifier
  • 25dc14614 @putout/plugin-esm: sort-imports-by-specifiers: do not switch oterh then # with #
  • 8f89126ac @putout/plugin-esm: group-imports-by-source: add support of hash
  • d565d800e @putout/engine-runner: nessy v5.2.0
  • 398f2217e @putout/engine-parser: @putout/printer v13.0.0
  • f5ebcf9da @putout/plugin-convert-quotes-to-backticks: check key

2025.02.16, v38.2.0

feature:

  • c31e0dbbd putout: @putout/plugin-types v7.0.0
  • 466615717 @putout/plugin-types: declare: isNumberLike: add
  • 1b5bb3139 @putout/plugin-types: drop support of 🐊 < 38
  • 9950c02fd @putout/plugin-types: declare: isNumber: add check for isNaN

2025.02.15, v38.1.10

feature:

  • 3d5020104 putout: @putout/plugin-for-of v8.0.0
  • 047babc2f @putout/plugin-for-of: drop support of 🐊 < 38
  • 8e213c77f @putout/plugin-for-of: remove-useless-variables: check for VariableDeclarator before getting init

2025.02.15, v38.1.9

fix:

  • 3c45f796e @putout/operator-filesystem: findFile: exclude fn: drop, no place where it can be used

feature:

  • 55a774cbd putout: @putout/plugin-maybe v3.0.0
  • b87489f33 @putout/plugin-maybe: drop support of 🐊 < 38
  • ebdada7c1 @putout/plugin-maybe: declare: maybeCall
  • a3ff2b943 @putout/operator-keyword: async
  • 3fd84ef41 @putout/compare: nessy v5.1.0

2025.02.14, v38.1.8

feature:

  • 3822c6326 putout: @putout/plugin-declare v5.0.0
  • ea96c54c6 @putout/plugin-declare: drop support of 🐊 < 38
  • d9f9409cf @putout/plugin-declare: fromEntries: add
  • 6102ae452 @putout/operator-parens: addParens/removeParens: do nothingh when parens exists/absent

2025.02.14, v38.1.7

feature:

  • b163f5597 putout: @putout/plugin-remove-nested-blocks v8.0.0
  • 74712f1e2 @putout/plugin-remove-nested-blocks: drop support of 🐊 < 38
  • 9341d99b5 @putout/plugin-remove-nested-blocks: ExportNamedDeclaration
  • 9f8c82ef7 @putout/plugin-exptract-keywrods-from-variables: ArrowFunctionExpression
  • 281cd6f40 @putout/plugin-parens: remove-useless-for-parens: add
  • 53b4b91a2 @putout/operator-parens: addParens/removeParens: return path
  • a16d22d08 @putout/plugin-eslint: apply-create-eslint: add
  • 499ff7d66 @putout/plugin-eslint: apply-ignores: off
  • 96bb81494 @putout/plugin-convert-quotes-to-backticks: add support of ObjectProperty
  • cf66ec5c5 @putout/plugin-putout: apply-vars: add support of CommonJS

2025.02.13, v38.1.6

feature:

  • b06f22259 putout: @putout/plugin-remove-unused-private-fields v3.0.0
  • da4f95e0f @putout/plugin-remove-unused-private-fields: drop support of 🐊 < 38
  • d4d863da1 @putout/plugin-remove-unused-private-fields: use before declare
  • 7274aec73 @putout/plugin-putout-config: apply-esm: add missing sort-imports-by-specifiers (#229)

2025.02.13, v38.1.5

fix:

  • 9f2fbb1c7 @putout/plugin-remove-useless-arguments: method: exclude: ClassPrivateProperty

feature:

  • ef3e07c75 putout: @putout/plugin-remove-useless-arguments v11.0.0
  • ae33022ae @putout/plugin-remove-useless-arguments: drop support of 🐊 < 38
  • 2ff56b573 putout: @putout/plugin-convert-quotes-to-backticks v4.0.1
  • fa0fb1db8 @putout/plugin-convert-quot-to-backticks: drop support of 🐊 < 38
  • b055d874a @putout/plugin-convert-quotes-to-backticks: exclude ObjectProperty

2025.02.13, v38.1.4

feature:

  • 38a149629 putout: @putout/plugin-convert-quotes-to-backticks v4.0.1
  • 3b8e4ca62 @putout/plugin-convert-quot-to-backticks: exclude ObjectProperty
  • 7ad5a8bff @putout/plugin-convert-quotes-to-backticks: drop support of 🐊 < 38

2025.02.13, v38.1.3

fix:

  • 0e4ecd321 @putout/cli-process-file: startLine: 1 -> 0

feature:

  • f3478ed1f putout: @putout/plugin-eslint v11.0.0
  • 1442f9f86 @putout/plugin-eslint: drop support of 🐊 < 38
  • 2dff0742e @putout/cli-process-file: printer: package.json
  • 047bba202 @putout/plugin-eslint: apply-ignores: add
  • d8b06eff9 @putout/plugin-putout: check-match: return
  • cd9fde269 eslint-plugin-putout: safe: remove-useless-push: add
  • 716dea229 putout: @putout/plugin-conditions v7.1.0
  • f8303aade @putout/plugin-conditions: drop support of 🐊 < 38
  • cfe3afbdd @putout/plugin-conditions: reverse: !(a || __b) -> !a && !__b
  • bcd8b0f97 @putout/plugin-apply-template-literals: improve support of newlines
  • c7bee3487 @putout/operator-parens: add

2025.02.10, v38.1.2

fix:

  • 9331e96fe @putout/operator-json: description
  • c1a88abdc @putout/plugin-vitest: v3-apply-browser-instances: report after transform

feature:

  • f9ccb341b @putout/operator-parens: add
  • fb7db0604 @putout/plugin-vitest: drop support of 🐊 < 38

2025.02.09, v38.1.1

fix:

  • 72e487a1b @putout/operate: get back
  • 434e4f7f7 @putout/plugin-nodejs: strict-mode: remove-useless: get back

feature:

  • 897f6d958 putout: default fixCount: 3
  • 72b54dbb2 @putout/engine-runner: @putout/plugin-filesystem v8.0.1
  • e5cbf3c3e @putout/processor-filesystem: @putout/operator-filesystem v6.0.2
  • 8b2a11bf7 putout: @putout/operator-match-files v6.0.1
  • f7e8b64f9 @putout/plugin-filesystem: @putout/operator-filesystem v6.0.2
  • 0a1a8d0ac putout: @putout/plugin-filesystem v8.0.0
  • c8786fd9d @putout/processor-html: @putout/processor-css v10.0.0
  • e8cc4051b putout: @putout/plugin-nodejs v14.0.0
  • 718205c4d @putout/operator-rename-files: @putout/operator-filesystem v6.0.2
  • 62292c6f8 @putout/operator-match-files: @putout/operator-filesystem v6.0.2
  • 079db9f12 @putout/engine-runner: @putout/operator-declare v11.0.3
  • 04680543a @putout/test: @putout/cli-process-file v2.0.1
  • b9fa6d7fe @putout/engine-runner: @putout/operator-filesystem v6.0.2

2025.02.09, v38.1.0

feature:

  • 83cca883d putout: @putout/plugin-parens v2.0.0
  • 67adb9f8a putout: @putout/plugin-typescript v11.0.0
  • 3c5b53f29 @putout/plugin-typescript: drop supprot of 🐊 < 38
  • d5acfc730 @putout/plugin-parens: drop support of 🐊 < 38
  • e047933a5 @putout/plugin-putout: apply-parens: add
  • 943fa0cd5 @putout/plugin-putout: hasParens: add
  • 4f0e164b0 @putout/opereate: hasParens: add
  • 9eb02880b @putout/plugin-putout: declare: addParens, removeParens
  • 6cf363866 @putout/operate: addParens, removeParens: add
  • 4f41b2f2d @putout/engine-parser: mark used printer in ast
  • 4f273837f @putout/plugin-react-hook-form: drop support of 🐊 < 38

2025.02.09, v38.0.10

feature:

  • d8372b25d putout: @putout/processor-css v10.0.0
  • 4088078e4 @putout/processor-css: drop support of 🐊 < 38
  • 1ecef2753 @putout/processor-css: align-spaces v2.0.0
  • 96f8b560e @putout/engine-parser: align-spaces v2.0.0
  • 751e23450 eslint-plugin-putout: align-spaces v2.0.0
  • 9cf373e4b @putout/engine-parser: printer: babel: trim spaces (babel/babel#17121)
  • c30554998 @putout/engine-parser: printer: babel: align spaces by default (babel/babel#17120)
  • 970f80ba1 putout: printer: babel
  • 1de78eb14 @putout/engine-parser: print: improve support of babel

2025.02.08, v38.0.9

fix:

  • a5caadeb0 putout: get rid of sourceFileName
  • 917e3cb49 @putout/operator-declare: rm unused check

feature:

  • 49ca79f58 @putout/operator-declare: rm unused check
  • 7e1a59001 @putout/compare: @putout/operate v13.0.0

2025.02.06, v38.0.8

feature:

  • 4269f7ad6 @putout/cli-process-file: @putout/operate v13.0.0
  • 9a71fef9e @putout/operator-filesystem: drop support of 🐊 < 38
  • a1a52770d @putout/operator-filesystem: @putout/operate v13.0.0
  • f2d777785 @putout/engine-runner: @putout/operate v13.0.0
  • f969a94bc putout: @putout/operator-ignore v2.0.0
  • 3ac7372e5 @putout/operator-ignore: @putout/operate v13.0.0
  • 961b4d737 @putout/plugin-filesystem: drop support of 🐊 < 38
  • 883b1d69c @putout/plugin-filesystem: @putout/operate v13.0.0
  • 613b55151 @putout/operator-add-args: @putout/compare v16.0.0
  • 23f2ac211 @putout/operator-declare: @putout/operate v13.0.0
  • 52551faf8 @putout/operator-declare: @putout/compare v16.0.0
  • 4c736adab putout: @putout/traverse v12.0.0
  • 90627cd70 @putout/traverse: @putout/compare v16.0.0
  • 73169ee66 putout: @putout/engine-parser v12.0.0
  • 3207f8fb1 @putout/operator-match-files: @putout/engine-parser v12.0.0
  • b0e80c608 putout: @putout/operator-filesystem v6.0.0
  • fa149fe34 @putout/operator-filesystem: @putout/engine-parser v12.0.0
  • fc660f3d2 putout: @putout/cli-process-file v2.0.0
  • f2af527ac @putout/cli-process-file: drop support of Flow
  • 208b2ab01 putout: @putout/operator-declare v11.0.0
  • 3049e07d4 @putout/operator-declare: drop support of 🐊 < 38
  • 45dd802e8 @putout/operator-declare: @putout/engine-parser v12.0.0
  • b5892c2f0 putout: @putout/operator-add-args v10.0.0
  • 42a742372 @putout/operator-add-args: drop support of 🐊 < 38
  • 3ad0c40a7 @putout/operator-add-args: @putout/engine-parser v12.0.0
  • a363cd851 eslint-plugin-putout: @putout/engine-parser v12.0.0
  • 7e804d899 putout: @putout/engine-runner v23.0.1
  • c48edf3eb putout: @putout/compare v16.0.0
  • 57b0233dd @putout/engine-runner: @putout/compare v16.0.0
  • 1e43c45c2 @putout/engine-runner: @putout/engine-parser v12.0.0
  • ac9a46a1f @putout/compare: @putout/engine-parser v12.0.0
  • 22f168b30 putout: @putout/operate v13.0.0
  • 43897393b putout: @putout/engine-parser v11.4.0
  • 3ee67ae93 putout: @putout/plugin-remove-unused-variables v12.0.0
  • d8c6f5199 putout: @putout/plugin-nodejs v13.1.1
  • aa186521a putout: @putout/plugin-remove-empty v14.0.0
  • 7796fa4d6 putout: @putout/plugin-remove-unused-expressions v11.0.0
  • bb94b324b putout: @putout/plugin-remove-useless-spread v12.0.0
  • 571e49674 putout: @putout/operator-keyword v2.0.0
  • e90e45b5f @putout/plugin-remove-useless-spread: drop support of 🐊 < 38
  • 034ac332d @putout/plugin-remove-useless-spread: drop support of recast
  • c110a9b54 @putout/plugin-remove-unused-expressions: drop support 🐊 < 38
  • fdd6c4a2b @putout/plugin-remove-empty: drop support of 🐊 < 38
  • fe047333a @putout/plugin-remove-empty: drop support of recast
  • 005b1d7ab @putout/plugin-putout: drop support of recast
  • 925f0102c @putout/plugin-nodejs: drop support of 🐊 < 38
  • f0ea8fa79 @putout/plugin-nodejs: drop support of recast
  • 6e090d6bc @putout/operate: drop support of recast
  • 8431e0ec1 putout: get rid of --flow
  • c5fed41a4 @putout/plugin-remove-unused-variables: drop support of 🐊 < 38
  • 9f1696e58 @putout/plugin-remove-unused-variables: drop support of flow
  • f16737e5b @putout/operator-keyword: isTSKeyword: split reserved and unreserved
  • 1da48c79c @putout/engine-parser: get rid of recast
  • 93d6a4798 @putout/operator-keyword: class, extends, declare, mode, type
  • 3f3144e42 @putout/eslint: NO_ESLINT: once
  • b3ead03cb @putout/operator-keyword: isTSKeyword
  • d7f61438d @putout/operator-keyword: readonly: add

2025.02.05, v38.0.7

fix:

  • da369e6e6 @putout/operator-keyword: typescript

feature:

  • a56fdafa3 putout: @putout/plugin-apply-template-literals v4.0.0
  • 99b7bc6e7 @putout/plugin-apply-template-literals: exclude \n
  • 2b5274a3f @putout/plugin-apply-template-literals: drop support of 🐊 < 38
  • 61065dc79 @putout/operator-keyword: interface
  • eb86fd19d @putout/engine-loader: async-loader: require.resolve
  • 7e6560416 @putout/engine-loader: async-loader: PUTOUT_LOAD_DIR
  • b17d5145f @putout/processor-markdown: add support frontmatter

2025.02.04, v38.0.6

feature:

  • 487a24e4e @putout/cli-process-file: add
  • 34c38b881 @putout/plugin-extract-keywords-from-variables: MemberExpression

2025.02.03, v38.0.5

feature:

  • f4cc6a711 putout: @putout/plugin-putout-config v8.0.0
  • ffeb3951a putout: @putout/plugin-esm v2.0.0
  • a08863ef9 @putout/plugin-esm: drop support of 🐊 < 38
  • 33e0c6129 @putout/plugin-esm: declare-imports-first: exclude not ESM

2025.02.02, v38.0.4

feature:

  • bdd6ae17a putout: @putout/plugin-esm v2.0.0
  • 9b4ea5c24 @putout/plugin-esm: drop support of 🐊 < 38
  • 7017b762e @putout/plugin-esm: declare-imports-first: exclude not ESM

2025.02.02, v38.0.3

feature:

  • 363d44b68 putout: @putout/plugin-putout v23.0.0
  • 483be8117 @putout/plugin-putout: drop support of 🐊 < 38
  • 53c545ea0 @putout/plugin-putout: apply-fixture-name-to-message: options
  • ff7238a73 @putout/operate: replaceWith: improve ExpressionStatement check

2025.02.01, v38.0.2

fix:

  • 682989347 putout: exit codes: RULLER -> RULER

feature:

  • e947022dd @putout/operator-keyword: isStatementKeyword: add

2025.01.31, v38.0.1

fix:

  • 003699b56 @putout/plugin-return: remove-useless

feature:

  • 151732a11 putout: @putout/plugin-extract-keywords-from-variables v2.0.0
  • ad89e159f @putout/plugin-extract-keywords-from-variables: drop support of 🐊 < 38
  • 7c314f9d6 @putout/plugin-extract-keywords-from-variables: add support of Identifier used as init
  • d3bd4516f @putout/plugin-putout-config: drop support of 🐊 < 38
  • 281827db0 @putout/plugin-putout-config: add apply-return
  • ab0804f65 root: eslint-plugin-putout v24.0.0

2025.01.29, v38.0.0

fix:

  • 34b3cfb3e @putout/plugin-convert-break-to-return: report

feature:

  • 315f40e32 @putout/plugin-return: convert-from-break/continue: simplify
  • e43dc88e4 eslint-plugin-putout: drop support of 🐊 < 38
  • 664d486f5 eslint-plugin-putout: remove-useless-return -> return/remove-useless
  • eaeda59c9 @putout/plugin-return: add

2025.01.29, v37.22.0

fix:

  • 147dce894 @putout/test: eslint: UPDATE

feature:

  • f3c660348 @putout/plugin-convert-break-to-return: add
  • 5717ab6ff @putout/operator-keyword: break

2025.01.28, v37.21.1

fix:

  • b6b24d18c @putout/plugin-react: rename -> rename-file
  • 240965767 @putout/plugin-remove-unreachable-code: report count

feature:

  • 6a5934166 putout: @putout/plugin-remove-unused-variables v11.0.0
  • a440651b6 babel-plugin-putout: mocha v11.1.0
  • a40bcb195 eslint-plugin-putout: @stylistic/eslint-plugin-ts v3.0.0
  • 5eef5ad00 eslint-plugin-putout: @stylistic/eslint-plugin-jsx v3.0.0
  • 0e525ee18 @putout/eslint-config: @stylistic/eslint-plugin-js v3.0.0
  • d77150cc6 @putout/plugin-react: drop support of 🐊 < 37
  • dab92ff9e @putout/plugin-react: rename-jsx-to-js: add
  • 8b2b5c432 @putout/plugin-putout: add-path-arg-to-fix: exclude empty body
  • d9b8c9ab1 @putout/plugin-extract-keywords-from-variables: export
  • 1d21caeb9 @putout/plugin-putout: declare: isModuleDeclarationKeyword
  • 3c4e67958 @putout/operator-keyword: isModuleDeclarationKeyword: add
  • 5f4d46c14 @putout/plugin-react: rename-js-to-jsx: add
  • 4f7a7a8c3 @putout/operator-match-files: add support of filename
  • 9e9c03c09 @putout/operator-filesystem: findFile: exclude: function
  • d80ebedd2 @putout/plugin-remove-unreachable-code: report
  • e109fd293 @putout/plugin-remove-nested-blocks: case when it is the only block (#225)
  • 8698589be @putout/plugin-remove-unreachable-code: backtracking parents and enhancements (#226)

2025.01.25, v37.21.0

feature:

  • 9857a7c69 putout: @putout/plugin-typescript v10.0.0
  • afafd9f58 @putout/plugin-typescript: drop support of 🐊 < 37
  • 1c37d8136 @putout/plugin-typescript: apply-type-guards: exists
  • e26fabdf6 @putout/plugin-printer: remove-legacy-test-declaration: add
  • 7065b535c @putout/processor-css: quietDeprecationWarnings

2025.01.23, v37.20.0

feature:

  • 0f3d340b2 putout: @putout/plugin-split-variable-declarations v4.0.0
  • 321cd4666 putout: @putout/plugin-convert-assignment-to-declaration v2.0.0
  • 63c4f40ad @putout/plugin-convert-assignment-to-declaration: drop support of 🐊 < 37
  • 47a5ba076 @putout/plugin-convert-assignment-to-declaration: exclude keywords
  • fc20fe6e7 @putout/plugin-split-variables-declarations: drop support of 🐊 < 37
  • 9a8146c8f @putout/plugin-split-variable-declarations: exclude keywords

2025.01.23, v37.19.0

fix:

  • d9359471b @putout/plugin-extract-keywords-from-variables: isDeclarationKeyword

feature:

  • 94e35fbba @putout/plugin-putout: declare: operator-keyword
  • 1be222802 @putout/operator-keyword: isDeclarationKeyword, isConditionKeyword
  • f37981315 putout: @putout/plugin-remove-unused-variables v10.1.0
  • f27b24496 @putout/plugin-remove-unused-variables: drop support of 🐊 < 37
  • 40ad7ae99 putout: add operator-keyword
  • 6cf22f70d @putout/plugin-remove-unused-variables: exclude keywords
  • 8e3dce03e @putout/operator-keyword: add
  • 03024f0ea @putout/plugin-extract-keywords-from-variables: isKeyword
  • e6d85801d @putout/plugin: declare: isKeyword
  • da325b7f1 @putout/engine-loader: load: PUTOUT_LOAD_DIR
  • dfdf418eb @putout/plugin-conditions: reverse-conditions: !(__a !== __b || __c !== __d) -> __a === __b && __c === __d
  • b178889e1 @putout/plugin-putout: declare-path-variable: add
  • 4989b9f90 @putout/plugin-putout: declare-template-variables: declared partially
  • ee80b0024 @putout/engine-parser: acorn: ParenthesizedExpression + TS

2025.01.21, v37.18.0

feature:

  • e66562c50 putout: @putout/plugin-eslint v10.0.0
  • 615e09b60 @putout/plugin-eslint: drop support of 🐊 < 37
  • 12400df77 @putout/plugin-eslint: convert-files-to-array: check config type

2025.01.20, v37.17.0

feature:

  • 2226743e0 putout: @putout/plugin-conditions v7.0.0
  • 058352358 @putout/plugin-conditions: remove-undefined: remove
  • c5292d422 @putout/plugin-types: convert-typeof-to-is-type: equal undefined
  • cd74412f7 @putout/processor-css: improve output
  • 61133cc20 @putout/plugin-vitest: add
  • 54f1b7f9b @putout/plugin-extract-keywords-from-variables: if
  • ff0c02ac1 @putout/plugin-apply-fixture-name-to-message: only
  • d4b1905c1 @putout/plugin-convert-const-to-let: no assign
  • 2b9c660ec @putout/plugin-extract-keywords-from-variables: add support of literals
  • 324ad3384 @putout/engine-loader: esm.sh
  • 58d40dd86 @putout/plugin-apply-arrow: exclude long lines
  • a27a1883f @putout/plugin-convert-const-to-let: exclude const, let, var
  • b8b19a49a @putout/plugin-extract-keywords-from-variables: report
  • 114a9a397 @putout/plugin-putout: apply-fixture-name-to-message: exclude partial
  • 6c760cd53 @putout/engine-laoder: when rule name same as used in config use state of it
  • 679ed2bab @putout/plugin-declare-template-variables: add
  • 48ed56374 @putout/plugin-putout: apply-vars: add
  • c1e3c4004 @putout/plugin-extract-keywords-from-variables: add support of import, let, var
  • 4896496fb @putout/plugin-for-of: remove-useless-variables: exclude nested ObjectPatterns
  • 9b1f6a050 @putout/plugin-extract-keywords-from-variables: switch places of paths

2025.01.17, v37.16.0

feature:

  • 1afaf7302 @putout/plugin-extract-keywords-from-variables: add

2025.01.17, v37.15.2

feature:

  • 9a6f245e8 putout: @putout/plugin-convert-const-to-let v4.0.0
  • 2c22b5b8e @putout/plugin-convert-const-to-let: drop support of 🐊 < 37
  • cad7b02aa @putout/plugin-convert-const-to-let: exclude: export
  • d629da0cc @putout/plugin-package-json: remove-duplicate-keywords: second
  • d10696282 @putout/plugin-package-json: remove-duplicate-keywords: add
  • a64d46d50 @putout/plugin-apply-fixture-name-to-message: tape: remove-only
  • c8b795082 @putout/plugin-putout: apply-fixture-name-to-message

2025.01.15, v37.15.1

feature:

  • b51d57ab7 putout: @putout/formatter-frame v7.0.0
  • 78fdd9f50 @putout/formatter-frame: drop support of 🐊 < 37
  • a212f3071 @putout/formatter-frame: @putout/formatter-codeframe v8.0.0

2025.01.14, v37.15.0

feature:

  • b63ba46e6 @putout/processor-css: stylelint-config-standard v37.0.0
  • bdefe4298 putout: @putout/plugin-remove-nested-blocks v7.0.0
  • c29efca99 putout: @putout/plugin-remove-unreachable-code v2.0.0
  • 415250dc9 putout: @putout/plugin-remove-unused-expressions v10.0.0
  • 9202702ae @putout/plugin-labels: remove-unused: exclude when previous ReturnStatement without args
  • 8f8efd153 @putout/labels: drop support of 🐊 < 37
  • bdcf9e2a8 @putout/plugin-remove-unreachable-code: drop support of 🐊 < 37
  • ba5440107 @putout/plugin-remove-unreachable-code: exclude ReturnStatement wihout arg
  • a4e6777ae @putout/plugin-remove-nested-blocks: drop support of 🐊 < 37
  • 0b6709223 @putout/plugin-remove-nested-blocks: exclude ReturnStatement
  • 278c48b71 @putout/plugin-remove-unused-expressions: return block
  • ae26c57a0 @putout/plugin-remove-unused-expressions: drop support of 🐊 < 37
  • 0cd79a7b0 @putout/plugin-remove-unused-expressions: exclude return without argument with next sibling
  • c5d32f76b @putout/plugin-merge-return-with-next-sibling: add
  • 4b9619a50 @putout/plugin-react-router: v7-split-multi-segment-route: object (#221)
  • 1c5b7c2c7 @putout/plugin-react-router: drop support of 🐊 < 37
  • 8af6d2250 @putotu/plugin-react-router: v7-split-multi-segment-route: add (#221)
  • 36b8c05c6 @putout/plugin-apply-arrow: exclude LogicalExpression

2025.01.12, v37.14.0

feature:

  • cb9fa5a7c @putout/engine-runner: @putout/plugin-filesystem v7.0.0
  • 56b19dc72 putout: @putout/plugin-filesystem v7.0.0
  • bd27d3b9a @putout/plugin-filesystem: drop support of 🐊 < 37
  • 903010628 putout: @putout/formatter-codeframe v8.0.0
  • a5834ffdd @putout/formatter-codeframe: drop support of 🐊 < 37
  • 47282eb41 putout: @putout/plugin-github v14.0.0
  • 5aad75ba4 @putout/engine-parser: @putout/printer v12.0.0
  • 4235ad19d @putout/compare: vars: Identifier inside TSTypeParameter
  • bed86b079 @putout/operator/filesystem: getParentDirectory: no parentPath
  • 81bd7b188 @putout/plugin-github: drop support of 🐊 < 37
  • 0256b88c4 @putout/operate: remove: add ability to have no scope
  • 01107d757 @putout/operate: replaceWith: allow path
  • aab65a133 @putout/traverse: @putout/babel v3.0.0
  • 559cdf23e @putout/plugin-apply-arrow: exclude nodes with comments
  • 2724c45b4 @putout/plugin-conditions: remove-unudefined: add

2025.01.09, v37.13.0

feature:

  • bb648a364 putout: @putout/plugin-remove-useless-functions v4.0.0
  • 2b6495d04 @putout/plugin-remove-useless-functions: drop support of node < 18
  • 054cc07a5 @putout/plugin-remove-useless-functions: undefined
  • afab717af @putout/plugin-types: convert-typeof-to-is-type: instanceof: Array, Object
  • 614fb22da @putout/processor-typescript: ts-morph v25.0.0
  • ea39a1ef7 eslint-plugin-putout: safe: merge-duplicate-functions
  • 02e4cb8e9 @putout/plugin-remove-useless-argruments: json-parse: add

2025.01.05, v37.12.0

fix:

  • 64605cf2b @putout/test: Error -> createError

feature:

  • 90ab1d5fe putout: @putout/plugin-remove-useless-arguments v10.0.0
  • f3b72d079 @putout/plugin-remove-useless-arguments: drop support of node < 18
  • 1079cdc74 @putout/plugin-remove-useless-arguments: unused: add
  • 113c84884 @putout/plugin-declare-before-reference: improve scope check

2025.01.05, v37.11.0

fix:

  • f871b5344 @putout/plugin-apply-arrow: find top scope

feature:

  • ebdccbaa4 putout: @putout/plugin-types v6.0.0
  • b8b25399c @putout/plugin-types: convert-typeof-to-is-type: add support of isError
  • b3fe00dfb @putout/plugin-types: drop support of 🐊 < 37
  • fdc62279f @putout/plugin-types: declare: isError: add
  • b49445435 @putout/plugin-apply-arrow: different scopes
  • bf73e15cb @putout/apply-arrow: handle case when no loc found
  • 90146fe82 @putout/plugin-apply-arrow: exclude long lines

2025.01.04, v37.10.0

feature:

  • 4eb7a3f17 @putout/plugin-apply-arrow: add
  • aa76ecb28 @putout/plugin-tape: remove-only: exclude not Identifier
  • ee4b52b27 putout: @putout/plugin-package-json v9.0.0
  • d3b2cae5f @putout/plugin-package-json: drop support of 🐊 < 37
  • aae27cc74 @putout/plugin-package-json: remove-exports-with-missing-files: node
  • 594f88fb3 @putout/plugin-conditions: reverse-condition: and: add
  • 91b35fe43 @putout/operate: delete duplicate comments

2025.01.04, v37.9.0

feature:

  • e48a95145 @putout/plugin-tape: remove-only: exclude not Identifier
  • 03f7a3701 putout: @putout/plugin-package-json v9.0.0
  • 3c7c632d2 @putout/plugin-package-json: drop support of 🐊 < 37
  • d00da6ede @putout/plugin-package-json: remove-exports-with-missing-files: node
  • 45a2f5a79 @putout/plugin-conditions: reverse-condition: and: add
  • 70db84bf2 @putout/operate: delete duplicate comments
  • 29f9f2206 @putout/plugin-math: remove-unchanged-zero-declaration: exclude assertions
  • 374ae6466 @putout/plugin-math: remove-unchanged-zero-declaration: exclude not referenced
  • f9dc5980d @putout/eslint: eslint: when output is empty string return it, instead of source
  • 222d5c20c @putout/test: eslint: UPDATE: generate fixture when absent
  • 60c7e3661 @putout/plugin-conditions: wrap-with-block: add
  • 5744fc4b7 @putout/plugin-conditions: apply-consistent-blocks: exclude statement-inside-if
  • 58436d2f5 @putout/plugin-putout: add-path-arg-to-visitors: add
  • 4bc086ff4 @putout/plugin-for-of: to-for-n: add
  • a7421908b @putout/plugin-esm: sort-imports-by-specifiers: hash
  • 0f37689c8 @putout/plugin-math: remove-unchanged-zero-declarations: BinaryExpressions: only

2024.12.29, v37.8.2

feature:

  • 4a111530f putout: @putout/plugin-for-of v7.0.0
  • b55c6f122 @putout/plugin-for-of: drop support of 🐊 < 37
  • 34cce1055 @putout/plugin-for-of: for-entries-n: i changed inside loop: exclude
  • d563d3431 @putout/plugin-conditions: reverse: add
  • 3d7d816da @putout/plugin-math: remove-unchanged-zero-declarations: exclude reference parents: CallExpression, ObjectProperty

2024.12.28, v37.8.1

feature:

  • 2b9ac61dc putout: @putout/plugin-math v3.0.0

2024.12.28, v37.8.0

feature:

  • 9610ca481 @putout/plugin-putout-config: apply-esm: convert-assert-to-with
  • 93cd1c4d9 @putout/plugin-esm: merge convert-assert-to-with
  • 15fbf4b80 putout: @putout/plugin-math v2.1.0
  • 3257753d2 @putout/plugin-putout: remove-useless-printer-option: add
  • bda76d72c @putout/plugin-math: remove-unchanged-zero-declaration: exclude exported
  • ef9aa4e43 @putout/plugin-math: drop support of 🐊 < 37
  • f543239ca @putout/plugin-math: remove-unchanged-zero-declarations: add
  • 4c1bcf1dd @putout/test: add ability to use other linter instead of 🐊Putout

2024.12.26, v37.7.2

feature:

  • 211ac1166 @putout/engine-parser: hermes-parser v0.26.0
  • 723dd6e67 putout: ignore v7.0.0

2024.12.25, v37.7.1

feature:

  • ee4a71a1c putout: @putout/plugin-conditions v6.0.0
  • 51005f31c @putout/plugin-conditions: drop support of 🐊 < 37
  • 3305a4bca @putout/plugin-conditions: apply-consistent-blocks: empty consequent body, no alternate
  • 2aafebb67 @putout/plugin-esm: merge-duplicate-imports: export
  • 5b39158fb @putout/plugin-putout-config: apply-parens

2024.12.22, v37.7.0

fix:

  • 7dd2dcc3d putout: rm unused dependencies

feature:

  • 43e7194d3 @putout/plugin-parens: remove-useless-for-await: no parens
  • 6f8f828af @putout/plugin-parens: remove-useless: add
  • e0ef81c05 @putout/plugin-parens: add-missing-for-assign: add
  • 6d1e77881 @putout/plugin-parens: add
  • 20ef6818c putout: @putout/plugin-remove-empty v13.0.0
  • 02cedc504 @putout/plugin-putout-config: apply-esm: add
  • bdef0dad6 @putout/plugin-remove-empty: drop support of 🐊 < 37
  • 35474d776 @putout/esm: add

2024.12.21, v37.6.1

fix:

  • fec2d671a putout: rm unused dependencies

2024.12.21, v37.6.0

feature:

  • 54885c347 putout: @putout/plugin-remove-empty v13.0.0
  • 510900179 @putout/plugin-putout-config: apply-esm: add
  • 33a95b465 @putout/plugin-remove-empty: drop support of 🐊 < 37
  • db8664285 @putout/esm: add
  • e7b05856f @putout/plugin-nodejs: group-require-by-id: improve support of @putout/
  • c84d4bf41 @putout/plugin-declare-before-reference: improve support of @putout/plugin-nodejs: group-require-by-id

2024.12.20, v37.5.0

feature:

  • 7c58079e2 putout: @putout/plugin-nodejs v13.0.0
  • eb42a12fc @putout/plugin-nodejs: drop support of 🐊 < 37
  • a110f288e @putout/plugin-nodejs: group-require-by-id: exclude not top-level
  • 98853450d @putout/plugin-nodejs: group-require-by-id: add
  • 3ce9cd00a @putout/plugin-printer: apply-types: traverse: exclude

2024.12.19, v37.4.0

feature:

  • ce1d98e4e putout: @putout/plugin-tape v16.0.0
  • 0340fdf0c putout: @putout/plugin-declare-before-reference v5.0.0
  • e18aed185 @putout/plugin-declare-before-reference: drop support of 🐊 < 37
  • 7b6dc3fdd @putout/test: noReportAfterTransform: addons
  • f9a93e7f2 @putout/plugin-declare-before-reference: printer/apply-types
  • dacb6956d @putout/plugin-tape: drop support of 🐊 < 37
  • 26fa7c082 @putout/plugin-tape: remove-only: name starts with test
  • 2e413e594 @putout/plugin-printer: apply-types: couple
  • f130427c8 @putout/plugin-printer: apply-types: add

2024.12.18, v37.3.0

feature:

  • af6bc6531 putout: @putout/plugin-putout v22.0.0
  • eb25212fa @putout/plugin-putout: drop support of 🐊 < 37
  • 65b1178e6 @putout/plugin-putout: declare: export
  • f0114e1a6 @putout/plugin-printer: drop support of node < 18
  • 3d179ac93 @putout/plugin-printer: declare: add
  • 303c420e3 @putout/eslint-config: operator-linebreak: ||

2024.12.16, v37.2.0

feature:

  • 71640126f putout: @putout/plugin-promises v16.0.0
  • 6cbc165a8 putout: @putout/plugin-add-missing-parens v2.0.0
  • d5fbf87ad @putout/plugin-add-missing-parens: drop support of 🐊 < 37
  • 6e226f0b2 @putout/plugin-add-missing-parens: await
  • 6fe222bda @putout/plugin-promises: drop support of 🐊 < 37
  • 3f25609c9 @putout/plugin-promises: remove-useless-await: optional-chaining
  • 398dc7091 @putout/engine-parser: BABEL_TYPES_8_BREAKING is not supported anymore

2024.12.15, v37.1.1

feature:

  • 0f248a3b7 putout: keywords: putout-script
  • 98e289097 @putout/cli-cache: add support of incompatible cache file

2024.12.13, v37.1.0

feature:

  • 354221316 @putout/plugin-convert-expression-to-params: add

2024.12.13, v37.0.1

feature:

  • 29a99b3ee putout: @putout/cli-cache v4.0.0
  • cf6ecc385 @putout/cli-cache: places -> places.json

2024.12.13, v37.0.0

fix:

  • 613097b2f @putout/plugin-optional-chaining: convert-assign-to-optional: template.ast -> template.ast.fresh
  • e1395217b @putout/plugin-optional-chaining: typo
  • 7a4fac13a @putout/plugin-putout-config: apply-optional-chaining

feature:

  • 3fe8ef81c putout: @putout/plugin-putout-config v7.0.1
  • 1fe97b15f putout: @putout/plugin-optional-chaining v1.0.1
  • 55c3eeff3 @putout/plugin-putout-config: optional-chaining
  • a89e949aa @putout/plugin-optional-chaining: apply-optional-chaining + convert-optional-to-logical

2024.12.13, v36.18.0

feature:

  • a89783a7d putout: @putout/plugin-convert-optional-to-logical v5.0.0
  • 4181da995 @putout/plugin-convert-optional-to-logical: call - disabled by default
  • 034b715d0 putout: syntax errors: export without const
  • f2bb12644 eslint-plugin-putout: mocha v11.0.1
  • 9d5d45e74 @putout/eslint: change the way of config search
  • 948f1a279 eslint-plugin-putout: add-newline-between-types: improve
  • 310441006 @putout/compare: improve support of jsx_atributes, jsx identifiers (a)
  • 00713f19c @putout/operate: add support of JSXIdentifier
  • bd4ca28a5 @putout/compare: vars: JSXText: improve support

2024.12.10, v36.17.0

feature:

  • 0785b644e putout: @putout/plugin-logical-expressions v7.0.0
  • 812e2f0c3 @putout/plugin-minify: drop support of 🐊 < 36
  • 1ae03f265 @putout/plugin-minify: convert-if-to-logical: improve
  • 81f775e90 @putout/compare: add plain compare
  • d81a9d0de @putout/plugin-logical-expressions: drop support of 🐊 < 36

2024.12.10, v36.16.0

feature:

  • e42148397 putout: @putout/plugin-typescript v9.0.0
  • 03f26ffd5 @putout/engine-parser: @putout/printer v11.0.0
  • 4bac48c0b @putout/plugin-typescript: typeParameters -> typeArguments
  • 7e1132149 @putout/plugin-putout: declare: isTSClassImplements: add
  • 564692fff scripts: set-engines: 16 -> 18
  • 2be18621d @putout/operator-match-files: exclude
  • ce81fba24 @putout/operator-filesystem: findFile: exclude
  • f7d55e327 @putout/plugin-putout: convert-include-to-traverse: add

2024.12.02, v36.15.0

feature:

  • e4e166626 putout: @putout/plugin-montag v3.0.0
  • d91e1b6c2 @putout/plugin-montag: drop support of 🐊 < 36
  • 54655bb2a @putout/plugin-add-missing-parens: add
  • be091a186 @putout/plugin-apply-shorthand-properties: ImportSpecifier: <StringLiteral>imported.value === <Identifier>local.name'

2024.11.27, v36.14.0

feature:

  • 47435b43f @putout/plugin-apply-shorthand-properties: ESM -> CommonJS
  • 475a6b53d putout: @putout/plugin-apply-shorthand-properties v6.0.0
  • 3655f9340 @putout/plugin-apply-shorthand-properties: drop support of node < 18
  • c672afc8b @putout/plugin-apply-shorthand-properties: rename
  • 95e09dfb4 @putout/plugin-putout: includer: [__a] -> __array
  • 59fa8a186 @putout/plugin-putout: check-replace-code: __array: inside VariableDeclarator, AssignmentExpression

2024.11.22, v36.13.1

feature:

  • 3e75a4b4f putout: @putout/plugin-remove-duplicate-keys v6.0.0

2024.11.22, v36.13.0

feature:

  • a2f2d494c putout: @putout/plugin-remove-duplicate-keys v5.1.0
  • 59d9c0b71 @putout/operate: traverse-properties: exclude ConditionalExpression
  • 1b2d1605d @putout/plugin-remove-duplicate-keys: drop support of 🐊 < 36

2024.11.11, v36.12.0

feature:

  • ff6e1950c @putout/process-html: drop support of 🐊 < 36
  • 71ffdc231 @putout/processor-html: svelte v5.1.14
  • 79066f8dc @putout/engine-runner: @putout/plugin-filesystem v6.0.0
  • 9e8a42207 @putout/cli-cache: file-entry-cache v10.0.2
  • 82f20dc38 putout: ignore v6.0.2
  • 46c569164 @putout/engine-parser: hermes-parser v0.25.0
  • 406c82c5f putout: @putout/plugin-filesystem v6.0.0
  • 9e4d3e042 @putout/plugin-filesystem: drop support of 🐊 < 36
  • 6f20f3012 @putout/plugin-filesystem: @putout/operator-filesystem v5.0.0
  • 2a9faab38 putout: @putout/engine-processor v13.0.0
  • 8055d90c9 @putout/engine-processor: @putout/engine-loader v15.0.1
  • ffd0bb770 putout: @putout/operator-rename-files v2.0.0
  • 14fdd9077 @putout/operator-filesystem: drop support of 🐊 < 36
  • 3426dba12 @putout/operator-rename-files: @putout/operator-filesystem v5.0.0
  • 2fbefedde putout: @putout/operator-match-files v5.0.0
  • 86647f5dd @putout/operator-match-files: @putout/operator-filesystem v5.0.0
  • e5cf3b290 putout: @putout/engine-reporter v3.0.0
  • a4dcae4e1 @putout/engine-reporter: @putout/engine-loader v15.0.1
  • 9a03af510 putout: @putout/processor-filesystem v5.0.0
  • 39c4e3f2f @putout/processor-filesystem: @putout/operator-filesystem v5.0.0
  • 8e36c6fbd @putout/engine-runner: @putout/operator-filesystem v5.0.0
  • fbb8c38c4 @putout/engine-runner: @putout/operator-declare v10.0.1
  • 9f577e18c @putout/plugin-remove-useless-variables: declaration: not in program parent
  • 72650834b @putout/plugin-remove-useless-variables: declaration: exclude re-assign
  • 2326bb003 @putout/compare: align to Babel v8
  • 8a39a26a9 @putout/plugin-typescript: apply-utility-types: report

2024.10.26, v36.11.0

feature:

  • f52bbfd7a @putout/compare: TSMappedType
  • fd9700335 putout: @putout/traverse v11.0.0
  • 6d450a982 @putout/traverse: @putout/compare v15.0.0
  • 3cb4057d9 @putout/operator-declare: @putout/compare v15.0.0
  • beb2642e0 @putout/engine-runner: @putout/compare v15.0.0
  • e9c4023f4 putout: @putout/plugin-reuse-duplicate-init v6.0.0
  • 287831cb1 @putout/plugin-reuse-duplicate-init: drop support of 🐊 < 36
  • 04e9eeb7b @putout/plugin-reuse-duplicate-init: exclude RestElement
  • 0d647d058 eslint-plugin-putout: @putout/engine-parser v11.0.1
  • ebf0c4d48 putout: @putout/operator-add-args v9.0.0
  • d46a59259 @putout/operator-add-args: @putout/compare v15.0.0
  • b0a6aa8e8 @putout/operator-add-args: @putout/engine-parser v11.0.1
  • f81a2be78 putout: @putout/operator-declare v10.0.0
  • 32c89e6b7 @putout/operator-declare: @putout/engine-parser v11.0.1
  • da52f240f putout: @putout/operator-filesystem v5.0.0
  • 452cfce56 @putout/operator-filesystem: @putout/engine-parser v11.0.1
  • dcb039c89 putout: @putout/operator-match-files v4.0.0
  • fe8f4f396 @putout/operator-match-files: drop support of 🐊 < 36
  • 3893928c7 @putout/operator-match-files: @putout/engine-parser v11.0.1
  • 063055635 putout: @putout/engine-runner v22.0.0
  • 0684cc72d @putout/engine-parser: @putout/printer v10.0.0
  • 77e0a5604 @putout/engine-loader: drop @putout/engine-parser
  • 3eeb3aa89 @putout/engine-runner: @putout/engine-parser v11.0.0
  • 4b4bf7565 putout: @putout/engine-loader v15.0.0
  • bdd08d889 @putout/engine-loader: @putout/engine-parser v11.0.0
  • 332994bfe putout: @putout/compare v15.0.0
  • 504fe604a putout: @putout/engine-parser v11.0.0
  • 5d968c816 @putout/compare: @putout/engine-parser v11.0.0
  • edbb27864 @putout/engine-parser: estree-to-babel v10.0.0
  • e0b70ec27 putout: @putout/plugin-remove-unused-variables v10.0.0
  • bfbcf64b9 putout: @putout/plugin-merge-destructuring-properties v10.0.0
  • 1bcb12395 @putout/plugin-merge-destructuring-properties: drop support of 🐊 < 36
  • c35780b61 @putout/plugin-merge-destructuring-properties: exclude VariableDeclarator with no init
  • 110070eee @putout/plugin-remove-unused-variables: drop support of 🐊 < 36
  • aa40f83f9 @putout/plugin-remove-unused-variables: align with Babel v8: TSExpressionWithTypeArguments -> TSClassImplements
  • fdbd4124f @putout/engine-parser: align to latest Babel v8
  • eb7c3854b putout: @putout/plugin-group-imports-by-source v2.0.0
  • 67818a017 @putout/plugin-typescript: drop support of 🐊 < 36
  • 20d2694e5 @putout/processor-typescript: ts-morph v24.0.0
  • 64dcffa1f @putout/plugin-group-imports-by-source: drop support of 🐊 < 36
  • 1ca427fa7 putout: @putout/plugin-github v13.0.0
  • 898463356 @putout/plugin-github: drop sut of 🐊 < 36
  • e387e8c8c @putout/plugin-github: set-node-version: v23 (https://nodejs.org/en/blog/release/v23.0.0)

2024.10.18, v36.10.0

feature:

  • eb0955cec putout: @putout/plugin-group-imports-by-source v2.0.0
  • 42ff53856 @putout/plugin-typescript: drop support of 🐊 < 36
  • 255ad02bb @putout/processor-typescript: ts-morph v24.0.0
  • c6468651b @putout/plugin-group-imports-by-source: drop support of 🐊 < 36
  • 6cbd80795 putout: @putout/plugin-github v13.0.0
  • a54241435 @putout/plugin-github: drop sut of 🐊 < 36
  • b631448d4 @putout/plugin-github: set-node-version: v23 (https://nodejs.org/en/blog/release/v23.0.0)
  • fbf87aaf6 @putout/plugin-package-json: remove-exports-with-missing-files: nested
  • e2bca80d6 @putout/plugin-package-json: remove-exports-with-missing-files: options
  • d4fc84e38 @putout/plugin-package-json: remove-exports-with-missing-files: exclude nested

2024.10.02, v36.9.0

fix:

  • d24950965 @putout/plugin-package-json: remove-exports-with-missing-files: indent: 4 -> 2
  • 037f06789 @putout/plugin-nodejs: remove-illigal-strict-mode -> remove-illegal-strict-mode

feature:

  • 9340f32a9 @putout/plugin-remove-useless-push: add
  • 8883e2e8f @putout/plugin-package-json: remove-exports-with-missing-files: add
  • ca4ecd296 @putout/plugin-putout: add-path-arg-to-fix: exclude empty body
  • 587da10e6 @putout/plugin-putout: add-track-file: one arg
  • cf3f4c49a @putout/plugin-convert-arguments-to-rest: exclude "strict mode"

2024.09.27, v36.8.0

feature:

  • 2242decc7 putout: @putout/plugin-nodejs v12.0.0
  • 425cef48a @putout/plugin-nodejs: drop support of 🐊 < 36
  • dc160ba2d @putout/plugin-putout: add-path-arg-to-fix: body
  • a24b23725 @putout/plugin-nodejs: remove-illigal-strict-mode: add (putoutjs/minify#28)
  • dd34149f4 putout: @putout/plugin-convert-arguments-to-rest v3.0.0
  • e3f4f6908 @putout/operate: getProperty: ObjectPattern support
  • 6b454ed4f @putout/plugin-package-json: apply-https-to-repository-url: improve check
  • 9bc776976 @putout/plugin-convert-arguments-to-rest: drop support of 🐊 < 36
  • 48beb1a07 @putout/plugin-convert-arguments-to-rest: improve support of internal functions (putoutjs/minify#28)

2024.09.26, v36.7.0

feature:

  • 5d9d805b7 putout: @putout/plugin-package-json v8.0.0
  • 22b90580f @putout/plugin-package-json: drop support of 🐊 < 36
  • 3c80fdddd @putout/operate: getProperty: check that path is ObjectExpression
  • a27d72de2 @putout/plugin-package-json: appy-https-to-repository-url

2024.09.26, v36.6.2

fix:

  • 6c0207700 putout: rm unused exports

feature:

  • 559fcd1ed @putout/plugin-remove-useless-variables: declaration: re-assign (coderaiser/minify#128)

2024.09.25, v36.6.1

feature:

  • 00f1be349 putout: @putout/plugin-madrun v19.0.0
  • bd50cf196 @putout/plugin-madrun: drop support of 🐊 < 36
  • 2837459aa @putout/plugin-madrun: convert-run-to-cut-env: exclude different envs

2024.09.23, v36.6.0

fix:

  • 6c3eb4f40 @putout/compare: _typeparams

feature:

  • dc92ef92a putout: @putout/plugin-remove-useless-constructor v2.0.0
  • eb8ef6197 @putout/plugin-remove-useless-constructor: change
  • 044fd02e8 @putout/plugin-typres: remove-useless-constructor: merge
  • f5de7f09d @putout/plugin-putout: add-path-arg-to-fix: add

2024.09.11, v36.5.1

fix:

  • d05335945 @putout/compare: vars: getTemplateValues: _typeparams

feature:

  • 2ea2f3ff9 putout: @putout/plugin-remove-useless-arguments v9.0.0
  • 06b9951b8 @putout/plugin-remove-useless-arguments: drop support of 🐊 < 36
  • f91eea293 @putout/plugin-remove-useless-arguments: destructuring: dashes
  • 24d82bdf2 @putout/compare: _typeparams: add
  • 93a380f5f @putout/compare: vars: add support of TSTypeParameter
  • 9a228f501 @putout/operate: extract: TSTypeParameter
  • 0958850c7 @putout/operate: replaceWithMultiple: leadingComments
  • c62defe91 @putout/operate: move out replaceWithMultiple
  • aa58622f8 @putout/plugin-putout-config: remove-empty-file: trackFile
  • 304edc325 @putout/plugin-putout-config: remove-empty-file: newline

2024.09.10, v36.5.0

feature:

  • e260e49df @putout/plugin-putout-config: remove-empty-file: add
  • b90c88e45 putout: @putout/plugin-putout v21.0.0
  • 74fa773ed @putout/plugin-putout: drop support of 🐊 < 36
  • cc27c27f8 @putout/plugin-putout: convert-traverse-to-include: check all methods
  • 58eea7073 @putout/engine-runner: improve plugins validation (#218)
  • c2ab8cb25 @putout/eslint: handle case when file is ignored

2024.09.02, v36.4.2

feature:

  • cc0cbc79f putout: @putout/plugin-conditions v5.0.0
  • 8bf9a33ef @putout/plugin-conditions: drop support of 🐊 < 36
  • a22bb4a78 @putout/plugin-conditions: convert-arrow-to-condition: add
  • af481c392 @putout/plugin-putout-config: apply-nodejs: v24
  • a035fc861 @putout/plugin-putout-config: rename-files: strict-mode
  • b96a628f3 @putout/plugin-putout-config: apply-math: add

2024.08.29, v36.4.1

feature:

  • 40665a412 putout: @putout/plugin-types v5.0.0
  • 53002e2d8 @putout/plugin-types: drop support of 🐊 < 36
  • 5e36fe79c @putout/plugin-putout-config: apply-types: add
  • 3337950e1 @putout/plugin-putout: rename-rules: add

2024.08.29, v36.4.0

feature:

  • c41e54d92 eslint-plugin-putout: @typescript-eslint/eslint-plugin v8.3.0
  • bec8db9b8 eslint-plugin-putout: @typescript-eslint/parser v8.3.0
  • af8366d34 putout: @putout/engine-reporter v2.0.0
  • fc46e6eb0 @putout/engine-reporter: @putout/engine-loader v14.0.0
  • ff3e17bb7 putout: @putout/engine-processor v12.0.0
  • 62213e261 @putout/engine-processor: @putout/engine-loader v14.0.0
  • 867817a0d @putout/plugin-putout-config: apply-for-of: add
  • e0c41cf61 @putout/plugin-putout-config: apply-conditions: add support of 🐊 v29
  • e51e18c99 @putout/plugin-putout-config: apply-promises: add
  • 842b389ff @putout/plugin-putout-config: apply-conditions: add
  • 44ea5cffd @putout/plugin-putout-config: apply-tape: add
  • 567fb9711 @putout/plugin-putout-config: apply-nodejs: add support of convert-esm-to-commonjs
  • b0406c16b @putout/plugin-putout-config: apply-nodejs: add

2024.08.25, v36.3.1

feature:

  • 7f84f5f7e putout: @putout/plugin-putout-config v6.0.0
  • 1eaa3713f @putout/plugin-putout-config: apply-labels: add

2024.08.25, v36.3.0

feature:

  • b519d78c8 putout: @putout/engine-loader v14.0.0
  • 3bd6fbf36 putout: validationError: throw -> return in places
  • 285b3e496 @putout/printer: validateRules: export and move out from loadPlugins

2024.08.24, v36.2.1

feature:

  • 44fa60e67 @putout/plugin-labels: add

2024.08.24, v36.2.0

fix:

  • 9219b1d6b @putout/plugin-typescript: require

feature:

  • 80542a57a @putout/plugin-remove-unused-labels: add
  • 95c5f137b @putout/eslint-config: no-unused-labels -> remove-unused-labels
  • 7f99993aa root: eslint-plugin-putout v23.0.0
  • 046aa3ac7 eslint-plugin-putout: drop support of 🐊 < 36
  • 36afe2d36 eslint-plugin-putout: no-extra-non-null-assertion -> typescript/remove-useless-non-null-expressions
  • 627838038 @putout/plugin-typescript: remove-useless-non-null-expression: add support of OptionalMemberExpression

2024.08.24, v36.1.2

feature:

  • 6df870c25 putout: @putout/plugin-typescript v8.0.0
  • 5bd7600fb @putout/plugin-typescript: drop support of 🐊 < 36
  • 4017b8f28 @putout/plugin-typescript: remove-useless-non-null-expression$: add
  • d7b1a3965 @putout/plugin-eslint: remove-useless-properties: after remove-overrides-with-empty-rules

2024.08.24, v36.1.1

fix:

  • 2496b126c @putout/plugin-remove-useless-delete: report: Remove -> Avoid

feature:

  • cc32d29a7 package: @putout/plugin-convert-label-to-object v2.0.0
  • d4792680b @putout/plugin-convert-label-to-object: drop support of 🐊 < 36

2024.08.23, v36.1.0

feature:

  • f7f9caa76 @putout/eslint-config: no-delete-var -> remove-useless-delete
  • 0179a6f44 putout: @putout/plugin-remove-useless-delete: add

2024.08.23, v36.0.9

feature:

  • 450a9d74e putout: @putout/plugin-convert-optional-to-logical v4.0.0
  • 11ee1dd53 @putout/plugin-convert-optional-to-logical: drop support of 🐊 < 36
  • e9a653a2c @putout/plugin-convert-optional-chaining: assign: exclude right
  • 1efb34869 @putout/plugin-apply-overrides: ReturnStatement
  • 638722707 @putout/plugin-remove-useless-variables: declaration: exclude module.exports

2024.08.22, v36.0.8

feature:

  • b6b594adc putout: @putout/plugin-apply-overrides v2.0.0
  • c1a3b1d45 @putout/plugin-apply-overrides: drop support of 🐊 < 36

2024.08.22, v36.0.7

feature:

  • a136020c9 putout: @putout/plugin-convert-const-to-let v3.0.0
  • 6d2cae860 @putout/plugin-convert-const-to-let: drop support of 🐊 < 36
  • 26695a9bc @putout/plugin-remove-useless-variables: declaration: different scopes

2024.08.21, v36.0.6

feature:

  • bf7789390 putout: @putout/plugin-try-catch v4.0.0
  • 4864fac7a @putout/plugin-try-catch: drop support of 🐊 < 36
  • e6881edc5 @putout/plugin-remove-useless-variables: declaration: exclude ForOfStatement
  • 5104bad8c @putout/plugin-remove-useless-variables: declaration: exclude functions
  • a1ed42472 @putout/plugin-remove-useless-variables: declaration: maxLength: add
  • f4ea68f5d @putout/plugin-remove-useless-variables: declaration: assignment
  • 0687c3dd7 @putout/plugin-tape: add-node-prefix-to-mock-require: mock-import

2024.08.17, v36.0.5

feature:

  • b00a865b9 putout: @putout/plugin-tape v15.0.0
  • df77d4cc6 @putout/plugin-tape: drop support of 🐊 < 36
  • b8d7d75e8 @putout/plugin-tape: add-node-prefix-to-mock-require

2024.08.16, v36.0.4

feature:

  • 935c62d3c putout: @putout/plugin-eslint v9.0.0
  • 6af8373a3 @putout/plugin-eslint: drop support of 🐊 < 36
  • d7265d182 @putout/plugin-eslint: remove-useless-properties: add

2024.07.19, v36.0.3

feature:

  • d6ac432fc putout: @putout/cli-validate-args v2.0.0
  • 00dc4ae46 @putout/cli-validate-args: convert to ESM
  • 14e951e58 @putout/cli-validate-args: drop support of 🐊 < 36
  • dcfb1bb27 @putout/cli-validate-args: just-kebab-case v4.2.0
  • 109c8dd57 @putout/engine-parser: hermes-parser v0.23.0
  • 8f5dba57f @putout/codemod-convert-pascal-to-camel: just-camel-case v6.2.0

2024.07.19, v36.0.2

feature:

  • 04f19efba putout: merge: printer (#213)

2024.07.18, v36.0.1

feature:

  • b6b1730e6 putout: @putout/plugin-remove-useless-variables v12.0.0
  • d1be29ed0 @putout/plugin-remove-useless-variables: drop support of 🐊 < 36
  • 9055ae93e @putout/plugin-remove-useless-variables: remove: init is MemberExpression (coderaiser/minify#125)

2024.07.16, v36.0.0

feature:

  • 9267d5340 putout: get rid of PUTOUT_PRINTER (#213)
  • fa489a918 @putout/test: get rid of PUTOUT_PRINTER

2024.07.15, v35.37.1

feature:

  • 00d3a41c2 @putout/engine-reporter: simple-import: import from putout (#214)
  • d15b34e88 @putout/engine-report: convert to ESLint v9
  • f5e2807ab @putout/plugin-remove-quotes-from-import-assertions: add
  • 075951d16 @putout/compare: improve support of __imports

2024.07.14, v35.37.0

feature:

  • e7eb5dc4e @putout/plugin-remove-quotes-from-import-assertions: add
  • 075951d16 @putout/compare: improve support of __imports
  • 4e57c70e7 @putout/plugin-remove-unused-variables: try-catch: destructuring
  • d19aae67f @putout/plugin-promises: apply-with-resolvers: add
  • 4b556cb10 putout: just-camel-case v6.2.0

2024.07.01, v35.36.2

feature:

  • ee7386ff2 putout: picomatch v4.0.2
  • 419d1cea6 @putout/engine-processor: picomatch v4.0.2
  • 7e4f47aa7 @putout/processor-typescript: ts-morph v23.0.0

2024.06.26, v35.36.1

feature:

  • 7b4c9730b putout: @putout/plugin-remove-unused-expressions v9.0.0
  • 269a89512 @putout/plugin-remove-unused-expressions: drop support of 🐊 < 35
  • cb3b14671 @putout/plugin-remove-unused-expressions: use client: exclude (#211)

2024.06.25, v35.36.0

feature:

  • 3d798f3f7 putout: add ability to import as specifier "putout"
  • 7e813cb26 @putout/plugin-putout: check-replace-code: once: add

2024.06.25, v35.35.8

feature:

  • c999629ba putout: @putout/plugin-remove-useless-return v7.0.0
  • 08198fb04 @putotu/plugin-remove-useless-return: drop support of 🐊 < 35'
  • eaaef62ed @putout/plugin-remove-useless-return: not argument
  • 74819bb59 putout: kill when hang after --inspect
  • 34b1b4c73 @putout/plugin-putout: check-replace-code: split more
  • 4e4f39572 @putout/plugin-putout: check-replace-code: split
  • d675e3d21 @putout/plugin-putout: check-replace-code: esm

2024.06.24, v35.35.7

fix:

  • 3c23a9640 putout: parse-error: braces
  • 4efc9b2ca @putout/operate: extract: quotes

feature:

  • 21e064702 @putout/plugin-eslint: convert-plugins-array-to-object
  • 798a45c47 @putout/plugin-convert-const-to-let: exclude: declare

2024.06.22, v35.35.6

fix:

  • 4956733ec putout: cli: pass processorRunners
  • 01e1ac3f5 @putout/engine-processor: picomatch works differently on win/unix (#208)

feature:

  • 8cb43358c @putout/engine-loader: createAsyncLoader: get rid of nanomemoize

2024.06.21, v35.35.5

fix:

  • f2a4d92a0 putout: syntax error: startLine
  • da1baf23e putout: --no-worker: silently fail when no formatter found -> log error (#208)
  • 814d32209 @putout/plugin-minify: mangle-names: get back references

feature:

  • dbf4d047d @putout/operate: get-literal-raw: quotes
  • 2f415bd20 @putout/plugin-minify: mangle-names: speed up: 1403 -> 1058

2024.06.19, v35.35.4

feature:

  • f445af289 putout: @putout/plugin-regexp v9.0.0
  • b2ebf86b5 @putout/plugin-regexp: drop support of 🐊 < 35
  • 3509f479e @putout/plugin-regexp: remove-useless-group: exclude Disjunction
  • 7e2a26cb5 @putout/plugin-minify: types: exclude object property
  • b3881ccec @putout/plugin-remove-useless-spread: object: inside call
  • 9324b4916 @putout/operate: get-literal-raw: no raw, no extra

2024.06.19, v35.35.3

feature:

  • e48b9e5fd putout: @putout/plugin-merge-destructuring-properties v9.0.0
  • 01426a7cd @putout/plugin-merge-destructuring-properties: drop support of 🐊 < 35
  • cae55119f @putout/plugin-merge-destructuring-properties: exclude remove parentPath
  • 98e715041 @putout/plugin-minify: merge-variables: exclude when first

2024.06.18, v35.35.2

feature:

  • 1ef73c58b @putout/plugin-group-imports-by-source: add
  • 929ef6089 @putout/plugin-putout: add-traverse-args: listStore
  • 3c530d7ce @putout/plugin-promises: remove-useless-await: exclude TaggedTemplateExpression
  • 9d2090f74 @putout/engine-parser: hermes-parser v0.22.0

2024.06.17, v35.35.1

feature:

  • d18ab8900 @putout/plugin-convert-assignment-to-declaration: binding
  • 0b22cf083 @putout/plugin-convert-assignment-to-declaration: add
  • 26518dcfb @putout/plugin-minify: merge-assignment-expressions: add
  • 2cd355f72 @putout/plugin-split-assignment-expressions: duplicate-reuse
  • 385a6ce21 @putout/plugin-split-assignment-expressions: exclude Function

2024.06.13, v35.35.0

feature:

  • 288584b98 @putout/plugin-convert-const-to-let: add support of FunctionDeclaration
  • 25d9ab194 putout: @putout/plugin-convert-const-to-let v2.0.0
  • 25239610b @putout/plugin-convert-const-to-let: drop support of 🐊 < 35
  • 92ffc3ad2 @putout/plugin-convert-const-to-let: for-of, for-in
  • 66d06887c @putout/plugin-minify: merge-variables: for-of
  • 8ac6ec73a @putout/compare: vars: Literal -> StringLiteral
  • 7d870d9a1 @putout/plugin-minify: mangle-names: exclude export
  • ecca64aab @putout/plugin-minify: merge-variables: duplicate declaration
  • 82952059e @putout/plugin-minify: merge-variables: check previous of each var (putoutjs/minify#18)
  • 015e801f3 @putout/plugin-minify: merge-variables: check that previous node is var
  • 6237e2741 root: c8 v10.0.0
  • a3ae58d50 eslint-plugin-putout: add-newline-before-return: exclude ReturnStatement that is first element of BlackStatement
  • 7cdb80133 @putout/plugin-minify: convert-const-to-var: exclude ForStatement (putoutjs/minify#20)
  • bba017fc8 @putout/plugin-remove-unused-variables: add support of ArrayPattern inside ExportNamedDeclaration (putoutjs/minify#22)

2024.06.10, v35.34.1

feature:

  • 30ed1aded putout: @putout/plugin-remove-unreferenced-variables v4.0.0
  • 7b52e4f1f @putout/plugin-remove-unreferenced-varialbes: drop support of 🐊 < 35
  • 41bcb0e76 @putout/plugin-remove-unreferenced-variables: exclude when parentPath is ConditionalExpression (putoutjs/minify#23)

2024.06.10, v35.34.0

fix:

  • 7a7a7cf76 @putout/plugin-minify: convert-const-to-var: overlap: fn (putoutjs/minify#17)

feature:

  • b614e3536 putout: @putout/plugin-apply-optional-chaining v6.0.0
  • 0c2991bb4 @putout/plugin-apply-optional-chaining: drop support of 🐊 < 35
  • e2f0ccf67 @putout/plugin-apply-optional-chaining: assign: turn off (putoutjs/minify#19)
  • 983c9f023 @putout/plugin-minify: merge-variables (putoutjs/minify#17)
  • d04e69cdd @putout/eslint-config: no-extra-parens: enforceForSequenceExpressions: false
  • 8e0851580 @putout/plugin-putout: add-places-to-compare-places: add
  • 04e0b533e eslint-plugin-putout: tsx: @typescript-eslint/no-explicit-any: off
  • e22a0ee14 eslint-plugin-putout: ts: keyword-spacing: disable js
  • 3946fc78f @putout/plugin-minify: join-continued-strings: win case (putoutjs/minify#13)
  • 4cd124f26 @putout/engine-parser: @putout/printer v9.0.0
  • 9872ea71b @putout/plugin-minify: convert-return-to-sequence-expression

2024.06.07, v35.33.0

fix:

  • b6900b729 @putout/compare: __body: inside FunctionDeclaration: multiple statements
  • 478e7f1e0 eslint-plugin-putout: remove-useless-variables

feature:

  • d9d6c9862 putout: @putout/plugin-simplify-boolean-return v2.0.0
  • aed08a413 @putout/plugin-minify: convert-const-to-var: iprove support of overlap (putoutjs/minify#17)
  • 4c18d43fa @putout/plugin-simplify-boolean-return: drop support of node < 18
  • fadcc660c @putout/plugin-simplify-boolean-return: template -> ReturnStatement
  • 3eb25963f @putout/engine-runner: Replacer: prevent stack overflow
  • e41e1d891 @putout/plugin-minify: join-continued-strings: add (putoutjs/minify#13)
  • 07a90c6ba @putout/plugin-putout: getLiteralRaw: add
  • abc9364f0 @putout/operate: getLiteralRaw: add
  • 2276f2009 @putout/plugin-minify: expand-binding: reassign (putoutjs/minify#14)
  • 12b63fd5f @putout/plugin-minify: convert-if-to-logical: nested-or: (coderaiser/minify#12)
  • f9c0ffa34 @putout/plugin-minify: convert-if-to-logical: parens when not BlockStatement (putoutjs/minify#12)
  • 1a05e31e4 @putout/plugin-minify: convert-if-to-logical: parens (putoutjs/minify#12)
  • 3039a216f @putout/engine-parser: @putout/babel v2.5.0: recordAndTuple: no more syntax configuration
  • b75205f9d @putout/engine-parser: @putout/recast -> recast
  • 50cbb8224 @putout/plugin-putout: remove-empty-array-from-process: add
  • 767c517e9 @putout/plugin-remove-unused-variables: @putout/test v10.0.0
  • 20d14b9e6 @putout/test: process: fail when input === output
  • 9317170a8 @putout/test: transform: fail test when input and output the same
  • 53d9e6ab6 @putout/plugin-nodejs: convert-esm-to-commonjs: add support of generators
  • 198ee7d96 @putout/compare: add support of ClassBody
  • 9c590c406 @putout/plugin-nodejs: convert-esm-to-commonjs: ClassDeclaration
  • 7a0a8943d @putout/plugin-putout: check-replace-code: __body inside ClassDeclaration
  • 08aa6c5b2 @putout/plugin-remove-useless-variables: duplicate: report

2024.05.28, v35.32.0

feature:

  • d35f46d6b putout: @putout/plugin-remove-useless-variables v11.0.0
  • 4d26f83f8 @putout/plugin-remove-useless-variables: duplicate: add
  • 959bf46e2 @putout/plugin-remove-useless-variables: drop support of 🐊 < 35
  • 03bbad848 @putout/compare: __body: add support of FunctionDeclaration

2024.05.28, v35.31.0

feature:

  • 02f76db91 @putout/plugin-split-assignment-expressions: add

2024.05.27, v35.30.1

feature:

  • 4dcdfefbc putout: samadhi v2.0.0
  • e43f4e406 @putout/plugin-conditions: apply-consistent-blocks: add any count of blocks support
  • b7f7420ad @putout/plugin-conditions: apply-consistent-blocks: couple
  • 3ecb697c4 @putout/plugin-putout: simplify-replace-template: add
  • bc711bd18 @putout/cli-cache: file-entry-cache v9.0.0

2024.05.27, v35.30.0

fix:

  • 2f5c9cac7 @putout/operate: getPathAfterRequires: rm additional checks

feature:

  • eb49ccbcf putout: @putout/plugin-logical-expressions v6.0.0
  • a6e3bb03a @putout/plugin-logical-expressions: drop support of 🐊 < 35
  • 819f9bccc @putout/plugin-logical-expressions: simplify: add support of JSXExpressionContainer
  • d39a3f18a @putout/plugin-typescript: remove-setter-return-type: add
  • 67cd1671e @putout/plugin-typescript: remove-getter-arguments: add

2024.05.25, v35.29.0

feature:

  • 10f1f8d39 package: @putout/plugin-declare-before-reference v4.0.0
  • a29e8de29 @putout/plugin-declare-before-reference: use getPathAfterRequires
  • c9bfe433b @putout/plugin-declare-before-reference: drop support of 🐊 < 35
  • ac311c393 @putout/plugin-putout: convert-get-rule-to-require: use getPathAfterRequires
  • 8dc811a53 @putout/plugin-putout: declare: operator: getPathAfterRequires
  • 19f7b5351 @putout/operate: getPathAfterRequires: add
  • 8ecff1259 @putout/plugin-for-of: add-missing-declaration: add

2024.05.23, v35.28.0

feature:

  • f5c9caf71 putout: add samadhi

2024.05.22, v35.27.0

fix:

  • ec18bbbb5 @putout/plugin-eslint: convert-export-match-to-declaration: false positive

feature:

  • e82121cc7 putout: add ability to fix broken strings

2024.05.21, v35.26.0

feature:

  • 725e2dd6e putout: @putout/plugin-remove-useless-escape v6.0.0
  • 1791f0979 @putout/plugin-remove-useless-escape: drop support of 🐊 < 35
  • 9a7d278d9 @putout/plugin-remove-useless-escape: add h
  • b4a93b98c @putout/operator-match-files: use path.parse
  • 73e2b5f2d @putout/plugin-eslint: convert-rc-to-flat: commonjs/esm hybrid -> esm
  • 6956a1d3a @putout/operator-declare: type
  • d0a48a209 @putout/operator-match-files: add ability to pass options
  • 93cc5a871 @putout/operator-declare: first things first

2024.05.21, v35.25.1

fix:

  • aa613221b putout: show error when syntax errors in config file

2024.05.20, v35.25.0

feature:

  • 79ca8de10 putout: @putout/plugin-putout v20.0.0
  • fafba2dfe @putout/plugin-putout: add-traverse-args
  • 067414ae0 @putout/plugin-putout: add-args -> add-test-args

2024.05.19, v35.24.1

feature:

  • 1478a7d24 @putout/plugin-types: remove-useles-conversion: ternary
  • 26b0471b3 putout: get back fast-glob, linting directories

2024.05.17, v35.24.0

fix:

  • 5e3b2a920 @putout/plugin-eslint: typo
  • 9a682de33 @putout/plugin-eslint: convert-export-match-to-decleration
  • d66f8fe3e @putout/plugin-putout: add-path-store: overlap

feature:

  • 2fe7a1464 putout: get rid of vulnerable not maintained fast-glob, use glob instead
  • 551bf9d88 root: husky v9.0.11
  • 67068c248 eslint-plugin-putout: @putout/eslint-config v9.0.0
  • 812260c73 @putout/eslint-config: drop support of node < 18
  • 9f90a4eea @putout/eslint-config: no-constant-binary-expression: disable due to overlap with 🐊 logical-expressions
  • 44963cd84 @putout/processor-markdown: remark-preset-lint-consistent v6.0.0
  • 00450ceeb @putout/processor-markdown: unified-lint-rule v3.0.0
  • e2d409cab @putotu/eslint-config: no-unused-private-class-members: disable, overlap with 🐊 remove-unused-private-fields
  • f3f9959f3 @putout/engine-parser: hermes-parser v0.21.1
  • 359fb22fe eslint-plugin-putout: eslint-plugin-eslint-plugin v6.1.0
  • 0bb3d9cd2 eslint-plugin-putout: @stylistic/eslint-plugin-ts v2.1.0
  • b0a1a5cb4 eslint-plugin-putout: @stylistic/eslint-plugin-jsx v2.1.0
  • 53b84fcdd @putout/eslint-config: @stylistic/eslint-plugin-js v2.1.0
  • a1aeb136e @putout/eslint-config: @eslint/js v9.2.0
  • 244300f3f @putout/plugin-eslint: convert-export-match-to-declaration: add
  • 4ffeea87d @putout/plugin-putout: add-path-store: add
  • 04d61a915 @putout/plugin-filesystem: convert-simple-filesystem-to-filesystem: add support of TemplateLiteral
  • 388899296 @putout/plugin-filesystem: convert-simple-filesystem-to-filesystem: MemberExpression

2024.05.10, v35.23.0

fix:

  • fa79b359c @putout/plugin-eslint: apply-dir-to-flat: report

feature:

  • 60f3215aa putout: @putout/plugin-for-of v6.0.0
  • 360f0cc9d @putout/plugin-generators: add
  • e674127aa @putout/plugin-for-of: add-missing-star: move out to generators
  • 06937ee22 @putout/plugin-filesystem: convert-simple-filesystem-to-filesystem: improve check of parent directory
  • 358fa9655 @putout/plugin-putout: convert-node-to-path-in-get-template-values: exclude parentPath
  • c0f246225 @putout/plugin-apply-overrides: exclude nested
  • 6d61ac19a @putout/plugin-eslint: apply-dir-to-flat
  • 195ed1a66 root: @putout/eslint-flat v2.0.0
  • 2787a7c5a @putout/eslint: ignore await/yield
  • aef0bfe36 @putout/eslint-flat: add __dirname/import.meta.url

2024.05.09, v35.22.4

fix:

  • d376eb082 putout: always show ESLint parser error, even when 🐊Putout can parse

2024.05.09, v35.22.3

feature:

  • 6cb49e0b4 putout: cli: syntax lint: improve support of fn

2024.05.08, v35.22.2

feature:

  • 1e3ca1f22 putout: run 🐊 after fixing syntax errors
  • 807430337 eslint-plugin-putout: align-spaces: report
  • 08e77aec0 @putout/plugin-putout: convert-replace-with: report
  • 19908112b @putout/plugin-for-of: add-missing-star: delegate
  • 3f41dd7de @putout/plugin-react: apply-create-root: add
  • eb138c934 @putout/plugin-for-of: add-missing-star

2024.05.07, v35.22.1

feature:

  • 947c377ef putout: eslint.config.js: disable putout/convert-match-to-flat

2024.05.07, v35.22.0

feature:

  • 300976b97 putout: @putout/plugin-promises v15.0.0
  • 84f082b24 @putout/plugin-promises: drop support of 🐊 < 35
  • 6cb1598b8 putout: process-file: do not show ESLint parser errors when 🐊Putout can parse
  • 2b8b8be6c @putout/engine-parser: add ability to parse await without async
  • ca781d676 @putout/plugin-promises: add-missing-async: add

2024.05.07, v35.21.1

feature:

  • 9f6278963 putout: process-file: syntax

2024.05.06, v35.21.0

fix:

  • 8b22f546d @putout/processor-yaml: lineWidth: 80 -> Infinity

feature:

  • 68404b101 putout: add ability to autofix syntax
  • 7367fd174 @putout/plugin-react: remove-useless-forward-ref: add
  • 522b92c5a @putout/plugin-apply-overrides: improve support of one-two arguments
  • d86f10109 @putout/plugin-react: remove-implicit-ref-return: add
  • 6064290d3 eslint-plugin-putout: long-properties-destructuring: exclude ImportDefaultSpecifier
  • 2d6890984 @putout/plugin-react: add

2024.05.06, v35.20.1

fix:

  • 44635b9f3 putout: config: eslint/apply-match-to-flat: disable for .eslintrc.js

feature:

  • 4d75b9c9f putout: @putout/plugin-for-of v5.0.0
  • b1b9aa23b @putout/plugin-for-of: drop support of 🐊 < 35
  • dd29a5a0b @putout/plugin-for-of: for-each: exclude ConditionalExpression (coderaiser/minify#122)

2024.05.05, v35.20.0

feature:

  • 5581321ec putout: @putout/plugin-for-of v5.0.0
  • 45b0a13ce @putout/plugin-for-of: drop support of 🐊 < 35
  • 5057d632f @putout/plugin-for-of: for-each: exclude ConditionalExpression
  • 0d40f13b2 @putout/plugin-putout: add-store: add
  • 9d8e3c3cc @putout/plugin-apply-overrides: rm unused code
  • 6b8afd4c2 @putout/plugin-eslint-plugin: drop support of 🐊 < 35
  • 3a2ec5b50 @putout/eslint-plugin: update-ecma-version: add
  • 86c829a97 @putout/engine-loader: rules: overlap

2024.05.03, v35.19.0

fix:

  • b47fc0082 eslint-plugin-putout: long-properties-destructuring: ImportDeclaration: no imported

feature:

  • 06c23903c putout: @putout/plugin-apply-overrides v1.0.0
  • 78a37907a eslint-plugin-putout: long-properties-destructuring: add support of ImportDeclaration (align with @putout/printer maxPropertiesLengthInOneLine)

2024.04.29, v35.18.0

feature:

  • 94b8e8908 putout: parse-options: rulesdir: exclude *.md
  • 2a817e8a5 @putout/operate: insertAfter: wrap ExpressionStatement when current path is Statement and node not

2024.04.28, v35.17.0

fix:

  • a87e7e06c @putout/plugin-nodejs: add-node-predynamic: Identifier
  • ca542fb12 @putout/eslint: no config found: Flat Config error -> RC error

feature:

  • 9f76b2a51 putout: @putout/quick-lint v1.0.0
  • 8ad6cd673 @putout/eslint: add ability to hande no FlatConfig found error
  • 949e898c9 @putout/plugin-nodejs: add-node-prefix: simplify
  • 1551e9f04 @putout/plugin-nodejs: add-node-prefix: dynamic import
  • 08acf9555 @putout/plugin-nodejs: add-node-prefix: add require
  • 6744c616f @putout/plugin-nodejs: add-node-prefix: report

2024.04.26, v35.16.2

feature:

  • 7a30d7c7f @putout/plugin-github: set-node-version: drop node v21 EOL
  • 2079a3481 @putout/plugin-eslint: apply-match-to-flat: exclude not two properties
  • 924f9b1fc @putout/plugin-eslint: apply-match-to-files: exclude objects whith no rules or files

2024.04.25, v35.16.1

fix:

  • ec9c33c76 @putout/plugin-eslint: apply-match-to-flat: match declared
  • 5daeef38d @putout/eslint-flat: match-to-flat-dir: ignores: fn

feature:

  • d0daabdb9 @putout/plugin-github: set-node-version: node v22 (https://nodejs.org/en/blog/announcements/v22-release-announce)
  • 90b33aee6 @putout/eslint-flat: match-to-flat-dir: ignores
  • c68f66b2f @putout/plugin-eslint: apply-match-to-flat: export match
  • 79c3afc15 @putout/plugin-eslint: apply-match-to-flat: add
  • ab03dc406 @putout/remove-unused-get-properties-argument: exclude not ObjectPattern
  • d7c28b381 @putout/plugin-eslint: declare: add support of @putout/eslint-flat
  • 6bef4fcdd @putout/eslint-flat: add
  • bbef3c8d2 eslint-flat: mergeESLintConfigs: add

2024.04.21, v35.16.0

fix:

  • c4ad97e8b @putout/operator-match-files: rename
  • e5dbaca94 @putout/operator-match-files: dot
  • 0c02ccf22 eslint: cwd

feature:

  • 463d2646f putout: @putout/plugin-types v4.0.0
  • 7f971e8ba putout: @putout/plugin-declare v4.0.0
  • 3b043c38f @putout/plugin-declare: isArray: move out to @putout/plugin-types
  • 844e20dbb @putout/plugin-types: drop support of node < 18
  • bd2e91935 @putout/plugin-types: declare: isArray, isEmptyArray: add
  • 5fa1a1cd5 @putout/eslint-flat: move out matchToFlat
  • 8c8705b95 @putout/eslint-flat: add support of FlatConfig
  • baf9706c6 @putout/eslint-flat: add
  • 1ba8ae649 @putout/operator-match-files: improve rename
  • ed0d47673 @putout/eslint: get-eslint: Flat Config
  • 65aaa5a93 @putout/eslint: improve support of FlatConfig
  • d4b426a3c @putout/operator-match-file: find existing
  • 405300d88 @putout/operator-filesystem: maybeRemoveFile: search in current directory only
  • f561bfd03 @putout/operator-match-files: copy -> rename
  • 812886108 @putout/operator-ignore: __json: no property found

2024.04.13, v35.15.0

fix:

  • 9e5cc8f10 @putout/operator-ignore: __json: property
  • 0b32f4415 @putout/plugin-putout: remove-unused-get-properties-argument: exclude not StringLiteral
  • 0855fa787 @putout/plugin-npmignore: message

feature:

  • 09ae16147 putout: add @putout/plugin-coverage
  • 228414483 @putout/plugin-coverage: add
  • a961d86ce putout: @putout/plugin-gitignore v6.0.0
  • fea9d47f9 putout: @putout/plugin-npmignore v5.0.0
  • 95af1575f @putout/plugin-gitignore: use ignore
  • 59361fac9 @putout/plugin-putout: declare: ignore: add
  • 0e78b78b3 @putout/operator-ignore: add
  • 3eb9a5b45 @putout/operator-json: fromJS: no newline

2024.04.12, v35.14.1

feature:

  • d9c1cf78f putout: @putout/plugin-gitignore v6.0.0
  • 8f360cfd3 putout: @putout/plugin-npmignore v5.0.0
  • 314190495 @putout/plugin-gitignore: use ignore
  • 577a53f79 @putout/plugin-putout: declare: ignore: add

2024.04.12, v35.14.0

fix:

  • fee14bbd2 @putout/plugin-npmignore: message

feature:

  • 7311d3b1b @putout/operator-ignore: add
  • 383404e74 @putout/operator-json: fromJS: no newline
  • 8ad2a38a9 @putout/plugin-putout: remove-unused-get-properties-argument: add
  • efc02772d @putout/plugin-eslint: convert-rc-to-flat: safeAlign always first
  • 088a4b2fd @putout/operate: traverseProperties: path.parentPath -> path.isCallExpression
  • 77230e28c @putout/plugin-eslint: convert-rc-to-flat: improve support of safeAlign
  • 43a051b58 @putout/plugin-eslint: declare: add
  • 16fdfe713 @putout/plugin-eslint: convert-rc-to-flat: improve
  • 3fed45ab7 @putout/plugin-eslint: convert-files-to-array: report: improve message for FlatConfig

2024.04.10, v35.13.0

fix:

  • e79864d67 eslint-plugin-putout: ts: plugins

feature:

  • eb0e9cb9c putout: match: add support of ESLint FlatConfig
  • 4ff66674b @putout/plugin-eslint: convert-files-to-array: add support of FlatConfig
  • 809df0ec7 @putout/plugin-eslint: convert-files-to-array: add
  • 83c56c805 putout: migrate to ESLint FlatConfig
  • e61697166 @putout/plugin-eslint: remove-useless-slice: add
  • 8114b3429 @putout/plugin-npmignore: add ".config."

2024.04.09, v35.12.0

feature:

  • 6a0c0b3ba @putout/engine-runner: @putout/plugin-filesystem v5.0.0
  • 415104d73 putout: @putout/plugin-filesystem v5.0.0
  • b12b3e2f5 @putout/plugin-filesystem: bundle-css -> bundle

2024.04.08, v35.11.0

feature:

  • 3f5724549 putout: filesystem: rename-file-cts-to-ts, rename-file-mts-to-ts: add
  • d90272d96 @putout/plugin-typescript: rename-file-mts-to-ts: add
  • 542ac08d5 root: eslint-plugin-n v17.0.0
  • 1eb14539f @putout/engine-runner: scanner: use _filesystemname
  • 3bccecf7a putout: @putout/plugin-putout v19.0.0
  • 9d4e34f5c putout: @putout/operator-rename-files: add

2024.04.07, v35.10.0

feature:

  • d144bdf3b putout: @putout/plugin-putout v19.0.0
  • 632c648ac putout: @putout/operator-rename-files: add
  • 11cf7700e @putout/plugin-putout: drop support of 🐊 < 35
  • 77a895c9f @putout/plugin-putout: declare: renameFiles: add
  • cec3a34f3 @putout/operator-rename-files: add

2024.04.07, v35.9.2

fix:

  • 7793e40ea putout: config: typescript: cjs, mjs -> cts, mts

feature:

  • a0219dc13 @putout/plugin-nodejs: move out renameFiles

2024.04.07, v35.9.1

feature:

  • 7bb17b143 putout: config: *.mts, *.cts: add support

2024.04.07, v35.9.0

feature:

  • 5b9814c1f putout: filesystem: typescript: cts-file + mts-file
  • 5759cd4d6 @putout/plugin-typescript: mts-file: add
  • 900c655bf @putout/plugin-typescript: cts-file: add

2024.04.06, v35.8.1

feature:

  • bcaec6bcb putout: @putout/plugin-convert-template-to-string v2.0.0
  • 199832c0a @putout/operate: setLiteralValue: improve generate of raw
  • 99fe7082a @putout/plugin-convert-template-to-string: drop support of node < 18
  • 189245f9d @putout/plugin-convert-template-to-string: exclude: TaggedTemplateExpression
  • 028f7c93c @putout/engine-parser: template: extractExpression: add support of TSExternalModuleReference
  • d84c40b94 @putout/plugin-typescript: convert-esm-to-commonjs: add

2024.04.06, v35.8.0

feature:

  • eb897c63c putout: @putout/plugin-typescript v7.0.0
  • 015a0635b root: eslint v9.0.0
  • c50ec7743 @putout/compare: @putout/engine-parser v10.3.0
  • 23390f25e @putout/compare: use extractExpression from @putout/engine-runner
  • b83ffa8ad @putout/engine-parser: template: add extractExpression
  • a757b015c @putout/plugin-typescript: convert-commonjs-to-esm: add
  • d355c4bdc @putout/plugin-typescript: drop support of 🐊 < 35
  • 4f43d943a @putout/engine-parser: template: add support of TSExportAssignment
  • 705238354 @putout/plugin-nodejs: convert-commonjs-to-esm: exports: exclude import/export

2024.03.29, v35.7.6

fix:

  • 72a79038e @putout/plugin-eslint: get back CommonJS
  • ca2115fd9 @putout/plugin-github: get back to CommonJS

feature:

  • cc22a484d putout: @putout/plugin-apply-dot-notation v2.0.0
  • 26168a480 putout: @putout/plugin-remove-useless-spread v11.0.0
  • 63a3dab48 @putout/plugin-apply-dot-notation: drop support of node < 18
  • 45d46b07d @putout/plugin-apply-dot-notation: report
  • 636dd8ed0 @putout/plugin-remove-useless-spread: drop support of 🐊 < 35
  • 261aa7573 @putout/plugin-remove-useless-spread: object: add support of ReturnStatement
  • 67865af08 @putout/plugin-nodejs: convert-commonjs-to-esm: exports: ImportSpecifier
  • 8ec8b0ba1 @putout/plugin-nodejs: convert-commonjs-to-esm: exports: not declared
  • 6a095026a @putout/plugin-declare: add @iocmd/wait
  • b451c12da @putout/plugin-nodejs: convert-commonjs-to-esm: exports: overlap
  • 866c4e176 @putout/plugin-tape: convert-ok-to-called-with: merge apply-stub-operator
  • 948aefb62 eslint-plugin-putout: add-newline-before-function-call: multiple
  • 6fd415890 @putout/plugin-nodejs: convert-commonjs-to-esm: require: mjs
  • c053e80a5 @putout/plugin-nodejs: remove-useless-promisify: add
  • b52b03f32 @putout/plugin-github: update-actions: docker/build-push-action: v5
  • 2f73bdec7 @putout/plugin-github: update-actions: docker/login-action: v3
  • f1de0c82b @putout/plugin-github: update-actions: docker/setup-buildx-action: v3
  • 18c79ef91 @putout/plugin-github: update-actions: docker/setup-qemu-action: v3
  • 30b43ad1d @putout/plugin-tape: convert-ok-to-called-with: add support of: spread, message

2024.03.16, v35.7.5

feature:

  • c7ce13419 putout: @putout/plugin-tape v14.0.0
  • 5df37530b @putout/plugin-tape: drop support of 🐊 < 35
  • 75d801c03 @putout/plugin-tape: convert-equals-to-equal: add
  • 4d562936d @putout/processor-yaml: indent
  • b8b38bf18 @putout/test: processor: UPDATE: create/remove output fixture file

2024.03.15, v35.7.4

feature:

  • 7b1733e28 putout: @putout/plugin-gitignore v5.0.0
  • a2ff4823e putout: @putout/plugin-npmignore v4.0.0
  • 45f4c4de3 @putout/plugin-npmignore: drop support of 🐊 < 35
  • a0c5408d5 @putout/plugin-gitignore: drop support of 🐊 < 35

2024.03.12, v35.7.3

fix:

  • 0d2d08e1e @putout/plugin-github: convert to ESM

feature:

  • 6d01fd68b putout: @putout/plugin-eslint v8.0.0
  • a88fc7c00 @putout/plugin-eslint: drop support of 🐊 < 35
  • 2cc0587ec @putout/plugin-eslint: convert to ESM
  • fcf32dee7 @putout/plugin-github: fast-deep-equal -> isDeepStrictEqual

2024.03.11, v35.7.2

feature:

  • 08537160e putout: @putout/plugin-github v12.0.0
  • 85a304409 @putout/plugin-github: update-actions: actions/cache: 3 -> 4
  • 5fb9aff95 @putout/plugin-github: drop support of 🐊 < 35
  • abcaee206 @putout/processor-typescript: drop support of 🐊 < 35
  • bf5745894 @putout/processor-typescript: ts-morph v22.0.0
  • 90acc7820 @putout/plugin-remove-empty: argument: AssignmentPattern: ArrayExpression

2024.03.07, v35.7.1

feature:

  • fdcf08f49 putout: @putout/plugin-remove-empty v12.0.0
  • e993d6246 @putout/plugin-remove-empty: drop support of node < 18
  • 8525c285a @putout/plugin-remove-empty: argument: add support of AssignmentPattern

2024.03.06, v35.7.0

fix:

  • 4b7638a38 eslint-plugin-putout: multiple-properties-destructuring: imports

feature:

  • 77414beb9 putout: @putout/plugin-remove-unused-variables v9.0.0
  • 17b708c7e @putout/plugin-remove-unused-variables: drop support of 🐊 < 35
  • b2e4f1d43 @putout/plugin-remove-unused-variables: improve support of fn args with last AssignmentPattern
  • b7301719d @putout/plugin-sort-imports-by-specifiers: imporove specifiers count
  • ddcbf60ed @putout/eslint: use loadESLint (https://eslint.org/docs/latest/integrate/nodejs-api#loadeslint)

2024.03.04, v35.6.0

feature:

  • 89738f07d putout: @putout/plugin-remove-debugger v7.0.0
  • e3d899c79 @putout/plugin-remove-debugger: drop support of 🐊 < 35
  • dd637a029 @putout/plugin-sort-imports-by-specifiers: add
  • 45afe444f @putout/engine-parser: hermes-parser v0.20.0
  • 6327667f2 @putout/engine-reporter: @putout/formatter-progress v5.0.0

2024.02.29, v35.5.2

feature:

  • 7b3906815 putout: @putout/formatter-frame v6.0.0
  • 442062870 @putout/formatter-frame: @putout/formatter-codeframe v7.0.0
  • 41b929826 @putout/formatter-frame: drop support of 🐊 < 35
  • 1334e3f65 putout: @putout/formatter-progress v5.0.0
  • 178206c56 @putout/formatter-progress: @putout/formatter-dump v5.0.0
  • 762708001 @putout/formatter-progress: drop support of node < 18
  • b7f644f14 @putout/formatter-progress-bar: @putout/formatter-dump v5.0.0
  • f5988d418 @putout/formatter-memory: @putout/formatter-dump v5.0.0
  • 9790242ff @putout/plugin-minify: merge-variables: exclude template literals (coderaiser/minify#120)

2024.02.21, v35.5.1

feature:

  • 1a8f96edc putout: @putout/formatter-progress-bar v4.0.0
  • 596ade5f7 @putout/formatter-progress-bar: drop support of node < 18
  • a82b81f16 @putout/formatter-progress-bar: chalk v5.3.0

2024.02.21, v35.5.0

feature:

  • c75701cca putout: @putout/formatter-codeframe v7.0.0
  • 318018548 putout: @putout/formatter-dump v5.0.0
  • 4f6c156fd putout: @putout/formatter-memory v4.0.0
  • 6b427376a putout: @putout/formatter-stream v5.0.0
  • 0ead84c00 putout: @putout/formatter-time v3.0.0
  • d39f23d7a @putout/formatter-time: drop support of 🐊 < 35
  • 6a5542799 @putout/formatter-stream: drop support of node < 18
  • fdb412909 @putout/formatter-memory: drop support of node < 18
  • 82e5dfb0a @putout/formatter-dump: drup support of node < 18
  • 3aa3cfd1c @putout/formatter-codeframe: drop support of 🐊 < 35
  • 6b9e79acd putout: chalk v5.3.0
  • c21198c9d @putout/processor-html: drop support of 🐊 < 35
  • 2a16b8d0b @putout/processor-html: @putout/processor-css v9.0.0

2024.02.17, v35.4.2

fix:

  • ef84e4a85 @putout/plugin-nodejs: strict-mode

feature:

  • 001606b26 putout: @putout/plugin-nodejs v11.0.0
  • 66877eb41 @putout/plugin-nodejs: drop support of 🐊 < 35

2024.02.16, v35.4.1

fix:

  • 50c100fb5 @putout/cli-choose: vim: drop h, l

feature:

  • d823a41e3 putout: @putout/cli-choose-formatter v4.0.0
  • e0c1a85ce @putout/engine-reporter: @putout/cli-choose-formatter v4.0.0
  • f0d7e599e @putout/cli-choose-formatter: @putout/cli-choose v2.0.0
  • 04022b1ae @putout/cli-choose-formatter: drop support of 🐊 < 35
  • 9a1d41da7 @putout/cli-choose: drop support of node < 18
  • 03c48befd @putotu/plugin-filesystem: convert-simple-filesystem-to-filesystem: add ability to handle absense of directory
  • bea56d25c @putout/plugin-filesystem: read-all-files: add mask
  • cb0501571 @putout/plugin-minify: merge-variables: exclude SwitchCase (coderaiser/minify#119)
  • 7d902eb50 @putout/plugin-minify: merge-variables: exclude NewExpression (coderaiser/minify#119)
  • 9290bef1d @putout/plugin-remove-useless-array: Traverser -> Replacer

2024.02.14, v35.4.0

feature:

  • bbe15dd4f @putout/plugin-remove-useless-array: add
  • d4bd0385f @putout/plugin-remove-duplicate-keys: add support of ArrayExpression
  • ca6331e6d @putout/operate: extract: add support of ArrayExpression

2024.02.14, v35.3.0

feature:

  • 196d7fa02 putout: @putout/plugin-remove-duplicate-keys v5.0.0
  • 3603637f7 @putout/operate: extract: add support of MemberExpression
  • 74b14c076 @putout/plugin-remove-duplicate-keys: drop support of 🐊 < 35
  • 92be466f1 @putout/plugin-remove-duplicate-keys: add support of MemberExpression

2024.02.13, v35.2.0

feature:

  • 1d543f69f putout: config: .*ignore: convert-quotes-to-backticks: disable

2024.02.13, v35.1.0

fix:

  • 3d78bb266 @putout/test: report: empty string
  • 7d7c567a8 @putout/operator-filesystem: move out basename from inner loop

feature:

  • 3d8068b9f eslint-plugin-putout: ts: enable disabled rules
  • a00ff011f @putout/engine-processor: picomatch v4.0.1
  • 9599034cd putout: picomatch v4.0.1
  • 572aae69f @putout/processor-markdown: madcut v2.0.0
  • afcb7b442 @putout/engine-parser: hermes-parser v0.19.1
  • 56f4224a8 eslint-plugin-putout: @typescript-eslint/parser v7.0.1
  • 1fb00d669 eslint-plugin-putout: @typescript-eslint/eslint-plugin v7.0.1
  • 7ac1f2d39 @putout/engine-runner: @putout/plugin-filesystem v4.0.1
  • 94c618383 root: @putout/test v9.0.0
  • 795e24b36 @putout/operator-match-files: name of a plugin
  • a4e368945 @putout/operator-json: fromJS: add ability to cut strict mode

2024.02.02, v35.0.7

feature:

  • 2565b6a40 putout: @putout/operator-match-files v3.0.0
  • 40baccf79 @putout/operator-match-files: @putout/operator-filesystem v4.0.0
  • 86345a7b4 @putout/operator-match-files: drop support of 🐊 < 35
  • 55d5963b0 @putout/plugin-filesystem: @putout/operator-filesystem v4.0.0
  • 3cbdbcaf5 putout: @putout/processor-filesystem v4.0.0
  • 8c657206c @putout/processor-filesystem: @putout/operator-filesystem v4.0.0
  • 106278280 putout: @putout/engine-runner v21.0.0
  • 88cd865f6 @putout/engine-runner: @putout/operator-filesystem v4.0.0
  • 2c8f7cfc9 putout: @putout/operator-filesystem v4.0.0
  • 12f700527 @putout/operator-filesystem: drop support of 🐊 < 35
  • 83c1aca7a @putout/operator-filesystem: findFile: find by basename, not part of name
  • b45b892ac putout: @putout/plugin-filesystem v4.0.0
  • 2b20e5613 @putout/plugin-filesystem: drop support of 🐊 < 35
  • edb7342be @putout/plugin-filesystem: convert-js-to-json: add support of CommonJS

2024.02.02, v35.0.6

feature:

  • fafc822f6 putout: @putout/operator-filesystem v4.0.0
  • 09ce52553 @putout/operator-filesystem: drop support of 🐊 < 35
  • 704a96906 @putout/operator-filesystem: findFile: find by basename, not part of name
  • 2436c523f putout: @putout/plugin-filesystem v4.0.0
  • 8df7d8408 @putout/plugin-filesystem: drop support of 🐊 < 35
  • a4b20e59a @putout/plugin-filesystem: convert-js-to-json: add support of CommonJS
  • 240bbc111 putout: @putout/plugin-declare v3.0.0
  • 659d60224 @putout/plugin-declare: drop support of node < 18
  • 486364e15 putout: @putout/processor-css v9.0.0
  • baa8a7ba4 @putout/processor-css: drop support of 🐊 < 35
  • fb9a25b7d @putout/processor-css: do not emit align warnings

2024.02.02, v35.0.5

feature:

  • 63b5807f5 putout: @putout/plugin-filesystem v4.0.0
  • d511e220e @putout/plugin-filesystem: drop support of 🐊 < 35
  • de574f7a4 @putout/plugin-convert-js-to-json: add support of CommonJS

2024.02.01, v35.0.4

feature:

  • 4c522446e putout: @putout/plugin-declare v3.0.0
  • 4792e1a9b @putout/plugin-declare: drop support of node < 18

2024.02.01, v35.0.3

feature:

  • 2dce8613e putout: @putout/processor-css v9.0.0
  • 073af93ba @putout/processor-css: drop support of 🐊 < 35
  • 0da8506b9 @putout/processor-css: do not emit align warnings

2024.02.01, v35.0.2

feature:

  • 08e9ef8c5 putout: @putout/plugin-apply-template-literals v3.0.0
  • 9d5175d22 @putout/plugin-apply-template-literals: drop support of node < 18
  • 792400820 @putout/plugin-apply-template-literals: exclude newline
  • a0a54c369 @putout/plugin-remove-useless-escape: add support of "./"
  • e1d50e619 @putout/engine-parser: espree v10.0.0

2024.01.29, v35.0.1

fix:

  • d60069e1c eslint-plugin-putout: @typescript-eslint/no-un: disabled while ESLint v9 supported

feature:

  • 54413dae8 @putout/test: strip-ansi v7.1.0
  • e97fb0e7d putout: @putout/processor-json v9.0.0
  • 49ca01f7c root: supertape v10.0.0
  • 52a060979 @putout/plugin-minify: drop support of 🐊 < 35
  • c4438f7fd @putout/plugin-minify: convert-if-to-logical: ConditionalExpression inside IfStatement (coderaiser/minify#118)

2024.01.19, v35.0.0

feature:

  • 29ca0a9f0 @putout/engine-reporter: move out write
  • 33c960d65 @putout/engine-reporter: add
  • 7538de2df putout: move out reporter
  • f93ae10d3 putout: bin: move out subscribe
  • db8be311d putout: add ability to disable worker with --no-worker
  • 8337d1f5f do not use web worker when --raw used
  • 61d704b52 putout: web worker: graceful shutdown

2024.01.17, v34.11.0

feature:

  • 27b2f7bda putout: add trace support
  • 286e90e7b @putout/plugin-promise: convert-new-promise-to-async: exclude resolve inside event listener'

2024.01.16, v34.10.0

fix:

  • 689e986ac @putout/operator-filesystem: readFileContent: emoji
  • d5bef6440 @putout/operator-filesystem: convert to base64 afte read

feature:

  • 8c36c77e3 putout: @putout/processor-yaml v8.0.0
  • 779e85997 @putout/processor-yaml: drop support of node < 18
  • 4198df596 @putout/processor-yaml: @putout/operator-json v2.0.0
  • 4bdcd9494 putout: @putout/processor-markdown v12.0.0
  • f65d5538e @putout/processor-markdown: @putout/operator-json v2.0.0
  • b3d4a195e @putout/processor-markdown: drop support of node < 18
  • 71ebf7b17 putout: @putout/processor-json v8.0.1
  • 2c70a57a2 @putout/processor-json: drop support of node < 18
  • 5e464f57b @putout/processor-json: @putout/operator-json v2.0.0
  • 84268609b @putout/plugin-filesystem: @putout/operator-json v2.0.0
  • c0de3441e @putout/operator-match-files: @putout/operator-json v2.0.0
  • fec0e73f4 @putout/operator-filesystem: @putout/operator-json v2.0.0
  • b0bbe2d63 @putout/engine-runner: @putout/operator-json v2.0.0
  • de728d73c @putout/processor-ignore: @putout/operator-json v2.0.0
  • 24cb464df putout: @putout/processor-ignore v6.0.0
  • fe125757c @putout/processor-ignore: drop suppoort of node < 18
  • 535400cef putout: @putout/operator-json v2.0.0
  • 700d3fae6 @putout/processor-filesystem: @putout/operator-json v2.0.0
  • 52579a7f5 @putout/operator-json: drop support of node < 18
  • e40275667 @putout/processor-filesystem: rm duplicate name declaration

2024.01.09, v34.9.1

fix:

  • aaa62dc27 putout: esm: simplify

feature:

  • 7bf62e83d putout: @putout/plugin-merge-duplicate-imports v11.0.0
  • 2e3683246 @putout/plugin-merge-duplicate-imports: drop support of node < 18
  • b3f9373b4 @putout/plugin-merge-duplicate-imports: rename: add

2024.01.09, v34.9.0

feature:

  • f690349f2 putout: ESM: add ability to use methods
  • bb24a0751 @putout/engine-parser: @putout/printer v8.0.0

2024.01.09, v34.8.1

feature:

  • 1404d5292 putout: @putout/plugin-remove-unused-expressions v8.0.0
  • 08200f1f2 @putout/plugin-remove-unused-expressions: drop support of node < 18
  • cfe2ade11 @putout/plugin-remove-unused-expressions: exclude IIFE (#198)
  • 4eea6575a root: eslint-plugin-n v17.0.0-0
  • f2f7fe931 @putout/plugin-for-of: for-each: exclude VariableDeclarator (#196)

2024.01.09, v34.8.0

fix:

  • 2f66f5f35 @putout/plugin-minify: merge-loops: add
  • fd73cb65c @putout/plugin-remove-debugger: description

feature:

  • e7b749180 @putout/plugin-minify: merge-loops: add
  • 3d618625b @putout/plugin-convert-label-to-object: exclude empty BlockStatements
  • ef61a3b8e putout: @putout/plugin-convert-label-to-object v1.0.0
  • 4a63f5f2e @putout/plugin-convert-label-to-object: exlude functions without LabeledStatement
  • d57c488c2 @putout/plugin-convert-label-to-object: add
  • b68b9dba6 putout: @putout/plugin-remove-debugger v6.0.0
  • 660c8d55d @putout/plugin-remove-debugger: drop support of node < 18

2024.01.08, v34.7.3

fix:

  • 5218db9ec @putout/plugin-remove-useless-spread: exclude CallExpression

feature:

  • 3b3bb29f1 putout: @putout/plugin-remove-useless-spread v10.0.0
  • b608016bc @putout/plugin-remove-useless-spread: drop suport of node < 18
  • f5524559b @putout/plugin-remove-useless-spread: nested: add

2024.01.08, v34.7.2

feature:

  • 9ee71ef05 putout: @putout/plugin-simplify-ternary v7.0.0
  • 925775466 @putout/plugin-simplify-ternary: drop support of node < 18
  • 068f8acd5 @putout/plugin-minify: drop support of node < 18
  • d7a80bcc6 @putout/plugin-minify: inlinde: exlucde UpdateExpression (putoutjs/minify#8)

2024.01.08, v34.7.1

feature:

  • d7f98af0f putout: @putout/plugin-for-of v4.0.0
  • f1bfc6fe7 @putout/plugin-for-of: drop support of node < 18
  • 7f6663f46 @putout/plugin-for-of: for-each: exclude SequenceExpressions (#196)
  • 5e29fba1b @putout/plugin-putout: check-replace-code: VariableDeclarator
  • ab01a71c3 @putout/plugin-filesystem: convert-js-to-json: add
  • ae9418107 @putout/plugin-putout: check-replace-code: __json on the left
  • 610a2ddcf @putout/plugin-putout: check-replace-code: add support of __json
  • 8ada02c25 @putout/test: report: add check for message
  • cd144553a @putout/plugin-filesystem: convert-json-to-js: add
  • b3a580827 @putout/operator-match-files: matchers
  • a182931cc root: c8 v9.0.0
  • de6095769 eslint-plugin-putout: synckit v0.9.0
  • 12c3b439e @putout/plugin-eslint: convert-rc-to-flat: add support of rules, parser

2024.01.03, v34.7.0

feature:

  • 9d1a9829d putout: @putout/plugin-eslint v7.0.0
  • 05c4ea635 @putout/plugin-eslint: drop support of node < 18
  • f6b256120 @putout/plugin-eslint: convert-rc-to-flat: add
  • c6a6c525e @putout/operator-match-files: add ability to save to other file
  • 76ba68031 @putout/plugin-filesystem: convert-simple-filesystem-to-filesystem: add aditional check of filename
  • c97fdd009 @putout/eslint: createPlugin: add support of ESLint v9
  • 9f18cc9f4 @putout/plugin-eslint-plugin: drop support of node < 18
  • d81fe5444 @putout/plugin-eslint-plugin: turn-off-schema: add
  • f5f7b1375 eslint-plugin-putout: add support of ESLint v9
  • 22b13700a @putout/plugin-eslint-plugin: convert-require-resolve-to-require: add
  • a0e5c520b @putout/plugin-eslint-plugin: apply-flat-config-to-rule-tester: add
  • d9608d60d eslint-plugin-putout: typescript: disable redeclere: ESLint v9 (typescript-eslint/typescript-eslint#8171)
  • d2783df9f root: eslint v9.0.0-alpha.0

2023.12.29, v34.6.0

feature:

  • dbc793d3f putout: @putout/plugin-typescript v6.0.0
  • dd1994388 @putout/plugin-typescript: find-file: ignore
  • 519967dd5 @putout/operator-match-files: add ignore
  • c33b54fd7 @putout/operator-filesystem: parse-simple-filesystem: handle case when directory has no slash at the end
  • 219b52fd4 @putout/plugin-typescript: drop support of node < 18
  • 5b1b22682 @putout/plugin-typescript: find-file: add
  • 3ab3da846 @putout/operator-match-files: add TS support
  • 8d7674458 @putout/plugin-filesystem: remove-vim-swap-file: add progress
  • fe1ff24a0 @putout/plugin-putout: apply-for-of-to-track-file: add
  • dbab77a47 @putout/plugin-filesystem: remove-files: add progress
  • 3e5df8d56 @putout/test: progress: handle the case when no expected passed
  • 87302a420 @putout/plugin-putout: add-await-to-progress: exclude other then tests useages
  • 98c863783 @putout/plugin-nodejs: rename-file-cjs-to-js, rename-file-mjs-to-js: add progress
  • be9586eac @putout/plugin-putout: add-await-to-progress: tape
  • 12ccbf3ad @putout/plugin-tape: add putout test
  • 1ae10e0dc @putout/plugin-tape: add-t-end: do not add when there is async operator
  • aa245567d @putout/plugin-putout: add-await-to-progress: add
  • f4aa0f96e @putout/plugin-putout: add-args: add progress()

2023.12.28, v34.5.1

fix:

  • 659aa492a @putout/plugin-nodejs: convert-esm-to-commonjs: multiple exports

feature:

  • 9ea716c95 @putout/engine-processor: picomatch v3.0.1
  • a7117084e putout: @putout/formatter-frame v5.0.0
  • ee268e84b eslint-plugin-putout: @eslint/eslintrc v3.0.0
  • c3855a1e7 @putout/formatter-frame: drop suport of node < 18
  • 436183cc3 @putout/formatter-frame: @putout/formatter-codeframe v6.0.0
  • 32a51b3d2 @putout/test: @putout/eslint v3.0.0
  • 0b21b5713 @putout/cli-cache: file-entry-cache v8.0.0
  • b87b93a50 @putout/processor-css: stylelint-config-standard v36.0.0
  • fddbfb959 @putout/plugin-nodejs/convert-esm-to-commonjs: export multiple
  • f6d820a76 @putout/compare: __exports: add
  • a1ceaca1d @putout/plugin-package-json: find-file: use matchFiles instead
  • 54711e9d0 @putout/operator-match-file: Traverser -> Scanner
  • 9a506bc00 @putout/plugin-putout: convert-progress-to-track-file: couple for-of statements
  • 1e99f872b @putout/plugin-putout: convert-progress-to-track: add
  • d375819c1 @putout/plugin-putout: add-track-file: add
  • ab291e0fd @putout/engine-runner: scanner: trackFile

2023.12.26, v34.5.0

feature:

  • 6cfd715c6 putout: package-json/find-file: enable for .filesystem.json
  • 0c27b18a4 putout: @putout/plugin-package-json v7.0.0
  • 8524b913b @putout/plugin-package-json: convert to ESM
  • 1b29127ab @putout/plugin-package-json: add find-file
  • b5ee6504f @putout/processor-filesystem: @putout/cli-filesystem v2.0.1
  • 1d0057e6e @putout/cli-filesystem: drop support of node < 18
  • 9bec49801 @putout/cli-filesystem: writeFileContent: create directory

2023.12.22, v34.4.0

feature:

  • 9ad60e41c putout: -i: improve
  • 658e59103 @putout/plugin-filesystem: convert-simple-filesystem-to-filesystem: simplify
  • bac19321a @putout/operator-filesystem: createFile
  • 991448520 @putout/operator-filesystem: createFile with no content
  • 5bdb9288f @putout/operator-filesystem: getFileContent: add
  • 3dc73e9b6 @putout/operator-filesystem: writeFileContent: emoji
  • b7d9c9028 @putout/plugin-filesystem: replace-cwd: from is root
  • c6ddc7fc9 @putout/pluginf-filesystem: export replace-cwd
  • c325ed4e9 @putout/plugin-react-hooks: drop support of node < 18
  • 4f8af0c0b @putout/plugin-react-hooks: declare: useMemo
  • eaa9871c6 @putout/plugin-remove-useless-escape: double quotes inside template
  • 9ab30399d @putout/plugin-filesystem: write-all-files: progress: add
  • f07474267 @putout/plugin-filesystem: replace-cwd: from root
  • 49fa0ab73 @putout/plugin-filesystem: replace-cwd: add progress
  • 313803316 @putout/test: progressWithOptions

2023.12.21, v34.3.0

feature:

  • 343bf7d8b putout: @putout/cli-choose-formatter v3.0.0
  • 12f580372 @putout/cli-choose-formatter: drop support of node < 18
  • a0e6215fe putout: @putout/cli-cache v3.0.0
  • 026ecf2bd @putout/cli-cache: drop support of node < 18
  • 845dba5b0 putout: @putout/eslint v3.0.0
  • 4a4f269b2 eslint-plugin-putout: @putout/eslint v3.0.0
  • 15c333e64 @putout/test: @putout/eslint v2.4.0
  • 89d1b752c @putout/eslint: drop support of node < 18
  • bd0884317 @putout/processor-css: stylelint-prettier v5.0.0
  • d9467ffe0 @putout/eslint: find-up v7.0.0
  • 215816655 @putout/cli-choose-formatter: find-up v7.0.0
  • 9b0eb42c0 @putout/cli-cache: find-up v7.0.0
  • b2dee82e0 putout: find-up v7.0.0
  • 433114dc0 @putout/engine-runner: scanner: progress: add percent
  • 12908419f @putout/processor-css: align spaces on empty lines
  • 3117a145e @putout/test: progress
  • ef4908d1f @putout/plugin-filesystem: exports: read-all-files
  • 849f1cfcd @putout/plugin-filesystem: read-all-files: progress
  • e916cdf6c @putout/engine-runner: Scanner: progress: file
  • 0f992b4da @putout/plugin-remove-unused-variables: first argument should be always declared and used when arguments count > 1
  • f09f4e316 @putout/plugin-filesystem: wriate-all-files: add
  • 9c2c1fd78 @putout/operator-filesystem: writeFileContent: directory

2023.12.19, v34.2.1

feature:

  • 3c57c56ee putout: cli: report: handle case when no places passed
  • fffa6857e root: redlint v3.1.2
  • d36abc4e5 putout: @putout/plugin-putout-config v5.0.0
  • 131463cba @putout/plugin-filesystem: read-all-files: add
  • 125690c2d @putout/plugin-putout-config: drop support of node < 18
  • 264d4b3e2 @putout/plugin-putout-config: convert-boolean-to-string: exclude arrays
  • 2cfb08ca7 @putout/plugin-filesystem: convert-filesystem-to-simple-filesystem: empty content
  • 95beb62a9 @putout/operator-filesystem: readFileContent: directory
  • d8f1799ff @putout/plugin-filesystem: report: improve

2023.12.18, v34.2.0

fix:

  • 679e5055c @putout/plugin-remove-duplicate-keys: exclude ObjectPattern

feature:

  • 6fe121997 putout: @putout/plugin-remove-useless-escape v5.0.0
  • 2d104e9cc @putout/plugin-remove-useless-escape: drop support of node < 18
  • eee4e215e @putout/plugin-remove-useless-escape: \" -> "
  • 33b8a39aa @putout/operator-filesystem: findFile: handle case when no file passed
  • cfa7c3f90 @putout/plugin-filesystem: replace-cwd: add
  • afaf038a9 @putout/plugin-nextjs: drop support of node < 18
  • 79ebcd60e @putout/plugin-next: Traverser -> Scanner
  • d7c811abc @putout/plugin-putout: convert-traverse-to-scan: add support of FS

2023.12.15, v34.1.1

fix:

  • 33880ca44 ignores: rm unused export

2023.12.15, v34.1.0

fix:

  • 33a899efb @putout/plugin-nodejs: disable convert-mjs-to-js

feature:

  • 071e46a10 putout: @putout/plugin-remove-duplicate-keys v4.0.0
  • 71c7f5296 putout: add progress
  • d1dbf802c @putout/plugin-remove-duplicate-keys: drop support of node < 18
  • 447da2448 @putout/plugin-remove-duplicate-keys: improve support
  • 2205df2da @putout/operate: traverseProperties: extract
  • 09f3035d6 @putout/operate: traverseProperties: exclude SpreadElement
  • 18ad54613 @putout/operate: traverseProperties: firstLevel
  • 1f31aca61 @putout/operate: getProperties: SpreadElement
  • c24c98f0b @putout/engine-runner: progress

2023.12.13, v34.0.10

feature:

  • 20debfa7a putout: @putout/plugin-putout v18.0.0
  • f6508a0dc @putout/plugin-putout: drop support of 🐊 < 34
  • ea81da134 @putout/plugin-putout: apply-short-processors: number used as ObjectProperty value

2023.12.12, v34.0.9

fix:

  • fe888d8b0 putout: merge: nested

2023.12.12, v34.0.8

fix:

  • 55153c19d putout: merge: rules options

feature:

  • 7c645f911 eslint-plugin-putout: markdown: disable config override

2023.12.11, v34.0.7

fix:

  • 4f577843a @putout/plugin-nodejs: ImportExpression

feature:

  • c104af997 putout: @putout/plugin-remove-unused-variables v8.0.0
  • 23615c14d @putout/plugin-remove-unused-variables: drop support of node < 18
  • e064b4056 @putout/plugin-remove-unused-variables: ImportExpression
  • 55af3c51e @putout/plugin-nodejs: remove-strict-mode: top-level-await
  • 60dc7090a putout: @putout/plugin-promises v14.0.0
  • 70feedd63 @putout/plugin-promises: drop support of node < 18
  • 4cf3feef6 @putout/plugin-promises: remove-useless-await: ImportExpressions
  • 8fb758559 @putout/plugin-convert-assert-to-with: drop support of 🐊 < 34
  • a8b89d3c8 @putout/plugin-nodejs: ImportExpression
  • 549cc81da @putout/engine-parser: estree-to-babel v9.0.0

2023.12.11, v34.0.6

feature:

  • bb643d679 @putout/engine-runner: @putout/operate v12.0.0
  • c2178f703 @putout/compare: @putout/operate v12.0.0
  • 3928fadf3 @putout/operator-declare: @putout/operate v12.0.0
  • c10e380ba @putout/plugin-filesystem: @putout/operate v12.0.0
  • 6cfaefbe7 @putout/operator-filesystem: @putout/operate v12.0.0
  • 592612232 putout: @putout/operate v12.0.0
  • 38b607c05 @putout/operate: drop support of node < 18
  • 67b676130 putout: @putout/formatter-codeframe v6.0.0
  • 860e1075c @putout/codeframe: drop support of node < 18
  • 0f7cebf5a putout: @putout/babel v2

2023.12.11, v34.0.5

feature:

  • e2d6f36b0 putout: @putout/formatter-time v2.0.0
  • 527548a88 @putout/formatter-time: drop support of node < 18

2023.12.11, v34.0.4

feature:

  • 8b2470a8d putout: runner: worker: report: rm useless arg: report
  • 9b87f575c @putout/engine-processor: rm useless rawSource

2023.12.11, v34.0.3

fix:

  • 6538c3840 putout: loader: convert Buffer to string before transfrom

2023.12.11, v34.0.2

feature:

  • 8dc1419e7 putout: @putout/plugin-tape v13.0.0
  • 08a6d22ed putout: loader: node v18 support
  • 649f93cab @putout/plugin-tape: drop support of node < 18
  • a9c79f088 @putout/plugin-tape: convert-equal-to-deep-equal: add support of Buffer.from

2023.12.10, v34.0.1

feature:

  • f7e47b98c @putout/plugin-filesystem: convert-simple-filesystem-to-filesystem: no root
  • db826f521 root: supertape v9.0.0
  • 5d701db17 @putout/engine-runner: @putout/plugin-filesystem v3.0.0
  • c2565294b @putout/operator-match-files: @putout/operator-filesystem v3.0.0
  • cb0f7c440 putout: @putout/processor-filesystem v3.0.0
  • 7dce3aca7 @putout/processor-filesystem: drop support of node < 18
  • ba8151007 @putout/processor-filesystem: @putout/operator-filesystem v3.0.0
  • 18de89088 putout: @putout/plugin-filesystem v3.0.0
  • 4000aefb7 @putout/plugin-filesystem: drop support of node < 18
  • 503ddaa8e root: redlint v2.0.0
  • 855e32271 putout: @putout/engine-processor v11.0.0
  • c7cda4be7 @putout/engine-processor: @putout/engine-loader v13.0.0
  • 4e59d193b @putout/engine-runner: @putout/operator-filesystem v3.0.0
  • 2427fbc6c @putout/engine-runner: @putout/operator-declare v9.0.0
  • 7a4b94335 @putout/processor-typescript: drop support of node < 18
  • 452aab285 @putout/test v9
  • 4974fa08f supertape v9
  • 6ed9a72c7 @putout/processor-typescript: ts-morph v21.0.1
  • 1bc93231f putout: @putout/traverse v10.0.0
  • a53f71372 @putout/traverse: @putout/compare v14.0.0
  • fada9498c putout: @putout/operator-add-args v8.0.0
  • a3bc047c0 @putout/operator-add-args: @putout/engine-parser v10.0.2
  • 79bd83024 @putout/operator-add-args: @putout/compare v14.0.0
  • 119e1aea4 putout: @putout/operator-declare v9.0.0
  • aae106ce5 @putout/operator-declare: @putout/compare v14.0.0
  • 531cd0ee0 @putout/operator-declare: @putout/engine-parser v10.0.2
  • 895195844 putout: @putout/operator-filesystem v3.0.0
  • 749eccec5 @putout/operator-filesystem: drop supprot of node < 18
  • a44a2b2e7 @putout/operator-filesystem: @putout/engine-parser v10.0.2
  • d2a858a81 putout: @putout/operator-match-files v2.0.0
  • d228ab9f6 @putout/operator-match-files: drop support of node < 18
  • 01c9f1bb0 @putout/operator-match-files: @putout/engine-parser v10.0.2
  • 690d79b59 root: eslint-plugin-putout v22.0.0
  • f6e174fa8 @putout/engine-parser: @putout/printer v7.0.0
  • b7dc22537 eslint-plugin-putout: @putout/engine-parser v10.0.0
  • 7e5e6484f eslint-plugin-putout: drop support of node < 18
  • 289484295 putout: @putout/engine-runner v20.0.1
  • b07ce3330 @putout/engine-runner: @putout/compare v14.0.0
  • 8fc516c98 @putout/engine-runner: drop support of node < 18
  • 70c64d288 @putout/engine-runner: @putout/engine-parser v10.0.0
  • db59abcee putout: @putout/engine-loader v13.0.0
  • 250d4065f @putout/engine-loader: @putout/engine-parser v10.0.0
  • 6cc48341a @putout/engine-loader: drop support of node < 18
  • 0b137fc45 putout: @putout/compare v14.0.0
  • bf7c384be putout: @putout/engine-parser v10.0.0
  • a660029ee @putout/compare: @putout/engine-parser v10.0.0
  • dc4e2e959 @putout/compare: drop support of node < 18
  • 9b9eb15e9 @putout/engine-parser: drop support of node < 18
  • 1a8c94d7f @putout/engine-parser: @putout/printer v6.17.0
  • 01159751b root: madrun v10.0.0

2023.12.09, v34.0.0

fix:

  • a022aac56 @putout/operate: traverseProperties: no parentPath
  • b582686dd @putout/plugin-filesystem: bundle-css: nested
  • d2330890f @putout/plugin-filesystem: bundle-css: no 1:1

feature:

  • 949aebe7f putout: @putout/plugin-github v11.0.0
  • 141513a35 @putout/plugin-github: drop support of node < 18
  • 39b09238b putout: drop support of node < 18
  • e4cba8ca2 putout: @putout/plugin-nodejs v10.0.0
  • 398a7705d @putout/plugin-nodejs: drop support of node < 18
  • 90bce30f5 @putout/processor-css: return empty code when errors
  • 607373140 @putout/plugin-nodejs: merge strict-mode
  • 1de36b776 putout: @putout/processor-css v8.0.0
  • d990d9f9f @putout/processor: config:
  • d93b07a63 @putout/processor-css: drop support of node < 18
  • 835847d6f @putout/engine-parser: hermes-parser v0.18.0
  • 5976bcafb @putout/processor-css: cosmiconfig v9.0.0
  • ab83bf20f @putout/processor-css: stylelint-config-standard v35.0.0
  • 4efe55568 @putout/processor-css: stylelint v16.0.1
  • 72b0b1b7b @putout/processor-yaml: remove useless @putout/processor-json
  • f2ceb7f58 eslint-plugin-putout: safe: disable remove-useless-variables: declaration
  • af37d387f eslint-plugin-putout: remove-empty-newline-after-import: is-ubuiltin
  • b5a80dddf @putout/plugin-filesystem: bundle-css: errors
  • 76f7f80fa @putout/cli-filesystem: createDirectory: recursive

2023.12.07, v33.13.4

fix:

  • 24080a56c @putout/plugin-strict-mode: add-missing: await
  • e481fa3d3 @putout/operator-filesystem: writeFileContent: content
  • 2186a8e32 @putout/plugin-filesystem: bundle-css: minify -> t

feature:

  • 2d2545386 putout: @putout/plugin-strict-mode v10.0.0
  • 4aa6a89f8 @putout/plugin-strict-mode: drop support of 🐊 < 33
  • 75bb838a1 @putout/plugin-strict-mode: add-missing: improve support of CommonJS
  • 6de5d62ba @putout/plugin-filesystem: bundle-css: concreate-files: add
  • 92b5d048d @putout/plugin-filesystem: bundle-css: add
  • 46e2ad15d @putout/test: transformWithOptions: UPDATE
  • 48eead652 @putout/plugin-putout: declare: operator-filesystem: createFile
  • ee78d2dd7 @putout/plugin-minify: mangle-names: undeclared (putoutjs/minify#6)
  • 392cd022d @putout/plugin-minify: mange-names: speed up
  • 01f597f6e @putout/plugin-minify: mangle-names: simplify
  • 8a4c54910 @putout/plugin-minify: mangle-names: couple args overlap (putoutjs/minify#6)
  • 3e3fdf42c @putout/plugin-tape: apply-stub-operator: called with no args
  • 0dc5b75ee @putout/plugin-conditions: add-return: add
  • 61a7a3501 @putout/plugin-minify: drop support of 🐊 < 33
  • bdfbeb9cb @putout/plugin-minify: mangle-names: closure (putoutjs/minify#6)
  • 134b67a77 @putout/plugin-conditions: apply-consistent-blocks: add comments support

2023.11.30, v33.13.3

feature:

  • e7cce35ad putout: @putout/plugin-madrun v18.0.0
  • 7fad0bf2e @putout/plugin-madrun: drop support of 🐊 < 33
  • da236e291 @putout/plugin-madrun: remove-useless-string-conversion

2023.11.30, v33.13.2

fix:

  • 0bf206ec4 putout: parse-options: apply-module-type-rules: tape

2023.11.30, v33.13.1

fix:

  • 9ca8632f4 putout: config: drop useless: tape/convert-mock-require-to-mock-import: already disabled
  • 56ed4c7da @putout/plugin-filesystem: convert-filesystem-to-simple-filesystem: trailing slash

feature:

  • 0411f1fbc @putout/plugin-putout: declare: get-rule: simplify
  • 204f7f249 @putout/plugin-putout: declare: getFileType: add
  • 7b5875357 @putout/operator-filesystem: getFileType: add
  • 154a21204 @putout/engine-runner: Scanner: Simple Filesystem
  • dfad2a2ae @putout/operator-filesystem: pause/start
  • 27c932d6a @putout/operator-filesystem: putout -> babel
  • b40e5e9fc @putout/plugin-filesystem: simple-filesystem: simplify
  • 1f4bb7b18 putout: @putout/plugin-filesystem v2.0.0
  • 6731eda00 @putout/plugin-filesystem: drop support of 🐊 < 33
  • 5776b3819 @putout/plugin-filesystem: toSimple, fromSimple: add

2023.11.28, v33.13.0

fix:

  • da125278b @putout/operator-filesystem: parse-simple-filesystem: trailing shash
  • 8cbedc657 @putout/operator-filesystem: moveFile: same
  • 585bb59b3 @putout/operator-filesystem: createFile: join
  • e87464158 @putout/operator-filesystem: createFile: join

feature:

  • 676a2687e putout: @putout/plugin-putout v17.0.0
  • 68fae6973 @putout/plugin-putout: declare: getRule: change signature
  • 4a910e608 @putout/plugin-putout: convert-get-rule-to-require: add off
  • b79b2bf8b @putout/plugin-filesystem: convert-filesystem-to-simple-filesystem
  • 86e1d810d @putout/plugin-filesystem: convert-simple-filesystem-to-filesystem
  • 9fcd8f295 @putout/plugin-putout: convert-traverse-to-scan: add
  • 8f34dc802 @putout/test: add support of Scanner
  • 0c8bf2340 @putout/engine-loader: Scanner
  • 2fa621c7d @putout/engine-runner: Scanner
  • b361e7483 @putout/operator-filesystem: createFile: improve
  • 9e0da1f5f @putout/operator-file-system: getFile -> findFile
  • 8d18ffc52 @putout/operator-filesystem: createFile: add
  • e0e96aae5 @putout/operator-filesystem: simplify testing drastically
  • e5e08eea5 @putout/operator-filesystem: parseSimpleFilesystem

2023.11.24, v33.12.0

feature:

  • 135e39656 putout: add ability to ignore missing files
  • f23f62af6 @putout/operator-filesystem: readFileContent/writeFileContent: emoji support
  • b3202c486 @putout/plugin-nodejs: rename-file-mjs-to-js: add

2023.11.24, v33.11.0

fix:

  • cd7b4035d @putout/plugin-filesystem: move-referenced-file: report

feature:

  • ea0761c0f @putout/operator-filesystem: readFileContent/writeFileContent: emoji support
  • a5004685f @putout/plugin-nodejs: rename-file-mjs-to-js: add
  • a3653b742 @putout/plugin-nodejs: rename-file-cjs-to-js: add
  • f957fe6a8 @putout/test: noReportAfterTransformWithOptions: add
  • fe6cdf4c5 @putout/operator-filesystem: copyFile/moveFile: overwrite
  • b59b533f2 @putout/plugin-putout: declare: copyFile: add
  • 4712fb82e @putout/cli-filesystem: copyFile: add
  • 528b36c9b @putout/operator-filesystem: copyFile/moveFile: overwrite
  • 95d2fe901 @putout/operator-filesystem: copyFile: add

2023.11.22, v33.10.0

fix:

  • 86be2a3bb @putout/plugin-filesystem: options

feature:

  • 8a4ddc626 @putout/cli-filesystem: removeFile: recursive
  • 4a83bb83f putout: ignore: add ability to merge negated (kaelzhang/node-ignore#107)
  • 340736186 @putout/plugin-filesystem: remove-files: add
  • 725f8517e @putout/plugin-filesystem: move-referenced-file: add
  • fb3cd2399 @putout/plugin-putout: replace-test-message: improve report/noTransform handling
  • 1d5a722ab @putout/plugin-filesystem: rename-referenced-file: move renameFile to fix
  • a322f2582 @putout/plugin-filesystem: rename-referenced-file: add

2023.11.21, v33.9.2

feature:

  • 3421c4a80 putout: @putout/plugin-remove-useless-escape v4.0.0
  • 6ac8df500 @putout/plugin-remove-useless-escape: drop support of 🐊 < 33
  • 975b22a09 @putout/plugin-remove-useless-escape: $, {

2023.11.21, v33.9.1

feature:

  • a9bd7f13b putout: @putout/plugin-convert-quotes-to-backticks v3.0.0
  • a66edf428 @putout/plugin-convert-quotes-to-backtics: drop support of 🐊 < 33
  • 1ea125b4c @putout/plugin-convert-quotes-to-backticks: exclude template variables
  • 290d901fc @putout/operator-filesystem: findFile: couple masks
  • d56d88fe1 @putout/plugin-filesystem: move out renameFileByMask
  • 5ec1f7a73 @putout/plugin-filesystem: rename-file: add mask
  • 60ac0ac18 @putout/operator-filesystem: renameFile: handle slashes

2023.11.20, v33.9.0

fix:

  • fc9f6ca66 @putout/plugin-filesystem: rename-test-to-spec: report
  • 3c62be182 @putout/operator-match-files: rm useless @putout/printer

feature:

  • 9eff5bae8 @putout/plugin-filesystem: rename-test-to-spec: add
  • 4a3638d02 putout: filesystem: enable only for '.filesystem.json'
  • 7f1805247 @putout/plugin-filesystem: rename-spec-to-test: add
  • 55e5a2740 @putout/plugin-putout: declare: getFilename: add
  • 18a153ff1 @putout/plugin-putout: add-push: referenced
  • 1d9f638b2 @putout/plugin-putout: replace-test-message: transform: add support of no replace

2023.11.18, v33.8.1

feature:

  • 970b3b33b putout: supported-files: fullstore

2023.11.18, v33.8.0

fix:

  • d79f6a49e putout: loader: use putoutAsync

feature:

  • be92475be putout: enable nodejs filesystem rules
  • a8e501db1 @putout/plugin-nodejs: mjs-file: add
  • f85820fca @putout/plugin-nodejs: cjs-file: add
  • 4e80a6f73 @putout/operator-match-files: add additional check of provided files
  • be49cc530 @putout/operator-match-files: autodetect json/js

2023.11.17, v33.7.0

fix:

  • 0650c3c03 @putout/plugin-nextjs: update-tsconfig: disabled by default

feature:

  • cd981e88c @putout/plugin-putout: declare: matchFiles: add
  • 3b577c59d @putout/operator-match-files: add
  • 2dff879d0 putout: exports: transform, findPlaces
  • c8be4d2d0 @putout/plugin-nextjs: update-tsconfig-file: reuse update-tsconfig-file
  • 80cd0b2a7 @putout/plugin-nextjs: update-tsconfig: add
  • f48b53485 @putout/plugin-nextjs: update-tsconfig-file: add

2023.11.16, v33.6.2

fix:

  • eae45513d @putout/operator-filesystem: writeFileContent: base64

feature:

  • 70959a20b putout: @putout/plugin-eslint v6.0.0
  • 9841829ab @putout/plugin-eslint: drop support of 🐊 < 33
  • 6b06a327e @putout/operate: setLiteralValue: empty double quotes in raw
  • 7a5dfa11b @putout/operator-filesystem: use base64 inside readFileContent/writeFileContent
  • ad1a02449 @putotu/operator-filesystem: writeFileContent: field exists

2023.11.15, v33.6.1

feature:

  • efeb16707 putout: @putout/plugin-package-json v6.0.0
  • 0830df2ef @putout/plugin-package-json: drop support of 🐊 < 33
  • a5822f182 @putout/plugin-putout: apply-short-processors: add

2023.11.15, v33.6.0

fix:

  • 6333cf383 @putout/operator-json: drop peer dependency
  • f8ca7ae14 @putout/processor-filesystem: drop export isJSON

feature:

  • 13a176492 putout: @putout/plugin-browserlist v2.0.0
  • e0d08155d @putout/plugin-browserlist: drop support of node < 16
  • 2f1caac15 putout: disable browserlist for all files except .browserlistrc
  • 73575facd putout: @putout/plugin-npmignore v3.0.0
  • 2652f7c12 @putout/plugin-npmignore: drop support of node < 16
  • 2489f243f @putotu/plugin-npmignore: use __array
  • 32402a01e @putout/plugin-travis: drop support of 🐊 < 33
  • 82d76f506 @putout/plugin-travis: use __yaml
  • 6f3ac9782 putout: @putout/processor-yaml v7.0.0
  • 36121ad89 putout: @putout/plugin-github v10.0.0
  • 31bdcb37f @putout/plugin-github: use __yaml
  • ecf96039c @putout/plugin-github: drop support of a🐊 < 33
  • 7fcd972d5 @putout/processor-yaml: json -> yaml
  • 51d293601 @putout/plugin-gitub: json -> yaml
  • 8179fd083 @putout/processor-json: is-json
  • 3bb33ecdf @putout/operator-json: export names
  • bf21d1bea @putout/operator-json: add isJSON
  • 3335cb91e putout: @putout/processor-ignore v5.0.0
  • 6c7cf6091 @putout/processor-ignore: use @putout/operator-json
  • e44e0e92c @putout/operator-json: __yaml, __ignore
  • 1d176923a putout: @putout/plugin-gitignore v4.0.0
  • 58b913421 @putout/plugin-gitignore: drop support of node < 16
  • 718439571 @putout/plugin-gitignore: use __ignore
  • c83b663a1 @putout/plugin-putout: declare: __ignore
  • bfcf68252 @putout/plugin-putout: declare: __yaml

2023.11.14, v33.5.0

feature:

  • 17555f4cd @putout/declare: operator-json: toJS, fromJS, __json, __filesystem
  • d0e7670bf putout: @putout/processor-filesystem v2.0.0
  • 616286ce9 @putout/processor-filesystem: @putout/operator-filesystem v2.0.0
  • a9a39c1b5 putout: @putout/processor-json v8.0.0
  • 39cc05358 putout: @putout/processor-markdown v11.0.0
  • 4f9483162 putout: @putout/operator-filesystem v2.0.0
  • ed4b5db53 @putout/operator-filesystem: drop support of 🐊 < 33
  • d88b24cd6 @putout/operator-json: add
  • 77a0c1bd4 @putout/processor-ignore: simplify
  • 95143f13a @putout/procesor-filesystem: simplify
  • 438fefa7d @putout/processor-json: simplify

2023.11.14, v33.4.1

feature:

  • 7fc18d0d1 putout: @putout/plugin-putout v16.0.0
  • 3d4b1c229 @putout/plugin-putout: drop support of 🐊 < 33
  • 1126d0be3 @putout/plugin-putout: declare: readFileContent, writeFileContent

2023.11.14, v33.4.0

fix:

  • e73bed76f @putout/plugin-nodejs: add-node-preget back native module
  • aad6a94dc @putout/plugin-nodejs: add-node-preadd is-builtin-module to get esm.sh working
  • d97ebfc58 @putout/plugin-nodejs: add-node-preprefix
  • f3a4f5e5b @putout/plugin-conditions: repository url

feature:

  • 6cfce4c4c putout: @putout/plugin-remove-useless-return v6.0.0
  • 59c459244 @putout/plugin-remove-useless-return: drop support of 🐊 < 33
  • 984982c23 @putout/plugin-remove-useless-return: exclude complex params
  • 09f3abf4f @putout/cli-filesystem: readFileContent, writeFileContent
  • 17a34ada8 @putout/operator-filesystem: readFileContent, writeFileContent

2023.11.13, v33.3.0

feature:

  • 2e5080fd2 putout: @putout/plugin-conditions v4.0.0
  • 5e4c149d8 @putout/plugin-conditions: drop support of 🐊 < 33
  • afda2e338 @putout/plugin-conditions: merge apply-consistent-blocks
  • 78b127500 @putout/plugin-apply-consistent-blocks: exclude if inside else
  • e286615e3 @putout/plugin-apply-consistent-blocks: add one more levels of nesting
  • b36ba4b97 @putout/plugin-apply-consistent-blocks: add

2023.11.13, v33.2.0

feature:

  • 5a7a26ff5 @putout/plugin-apply-consistent-blocks: add
  • afd7ab908 @putout/compare: __body: improve: no node check

2023.11.12, v33.1.1

fix:

  • 4b4cfb639 @putout/plugin-remove-empty: drop support of 🐊 < 33
  • e62f498b7 @putout/plugin-nextjs: create-app-directory: report

feature:

  • b3c8f32e2 putout: @putout/plugin-remove-empty v11.0.0
  • 845380f3c putout: @putout/plugin-new v3.0.1
  • 35f362c51 @putout/plugin-new: drop suport of 🐊 < 33

2023.11.12, v33.1.0

fix:

  • 885441dce feature: @putout/plugin-nodejs: add-node-prefix: module
  • f191e04f3 @putout/processor-filesystem: merge: a couple sources in list
  • 7bea61cd5 @putout/plugin-filesystem: findFile

feature:

  • bb557e59e putout: @putout/cli-choose-formatter v2.0.0
  • c58ad0323 @putout/cli-choose-formatter: drop support of 🐊 < 33
  • 2f1b58124 @putout/cli-choose-formatter: keep options
  • 561d3745e @putout/plugin-nextjs: create-app-directory: add
  • 8bb263dc2 @putout/plugin-putout: declare: createDirectory, getParentDirectory
  • a2699b836 @putout/operator-filesystem: getParentDirectory: add
  • 79802be86 @putout/cli-filesystem: createDirectory: add
  • e2cf800c9 @putout/operator-filesystem: createDirectory: add
  • c7241c036 @putout/operator-filesystem: moveFile: improve
  • 80f20ab2e @putout/plugin-nextjs: drop support of 🐊 < 33
  • 8b4d71b3e @putout/plugin-nextjs: move-404-to-not-found: add
  • d88cd8dd3 @putout/plugin-putout: declare: operator: moveFile
  • 4fa2201fc @putout/operator-filesystem: moveFile: add
  • a07f64a6c @putout/processor-filesystem: merge: filter "_putoutprocessor_filesystem" first
  • 40f296267 @putout/plugin-filesystem: remove-vim-swap-file: add
  • 3b27bd74d @putout/operator-filesystem: findFile: add support of glob
  • ddc15035d @putout/cli-filesystem: removeFile
  • 8db4748ea @putout/plugin-putout: declare: removeFile
  • c35802c66 @putout/operator-filesystem: removeFile: add

2023.11.09, v33.0.0

feature:

  • d28219c92 @putout/engine-loader: rm unused isExluded
  • 6b2721dc1 putout: add ability to provide disabled plugins
  • dea784378 @putout/processor-filesystem: is-filesystem
  • 5cfd75e0f putout: @putout/plugin-nodejs v9.0.0
  • 729e93cc8 putout: @putout/plugin-tape v12.0.0
  • 29c77ff0f @putout/plugin-tape: drop support of 🐊 < 33
  • 54f56992e putout: @putout/plugin-nodejs v8.1.0
  • 71a3e482a putout: @putout/plugin-merge-duplicate-imports v10.0.0
  • 67b22c688 @putout/plugin-nodejs: drop support of 🐊 < 33
  • 67f1dde3a @putout/plugin-merge-duplicate-imports: drop support of 🐊 < 33
  • fa96049c3 @putout/plugin-merge-duplicate-imports: improve support of tape/declare, nodejs/convert-esm-to-commonjs
  • 4befa6ead @putout/plugin-nodejs: merge convert-esm-to-commonjs
  • fbae70329 @putout/plugin-nodejs: merge convert-commonjs-to-esm
  • d36d198f8 @putout/plugin-nodejs: convert-exports-to-module-exports: add (#191)

2023.11.07, v32.16.0

fix:

  • 47a7dea06 @putout/processor-filesystem: init
  • 52274ed96 @putout/operate: traverseProperties: path
  • 0e1855807 @putout/cli-choose-formatter: no .putout.json

feature:

  • 8eb0ac092 @putout/plugin-putout: declare: findFiles, renameFile
  • 127c173f0 putout: @putout/operator-filesystem v1.0.1
  • e87678d74 putout: @putout/plugin-filesystem: add
  • e33a6cf10 @putout/processor-filesystem: @putout/cli-filesystem v1.0.0
  • e2f6e8075 putout: @putout/processor-filesystem v1.0.0
  • bfec7f7c1 putout: @putout/plugin-filesystem v1.0.0
  • 32456ff4d @putout/processor-filesystem: init
  • 2e0098939 putout: @putout/operator-filesystem: add
  • 4e45f05e5 @putout/plugin-filesystem: add
  • c020b1077 eslint-plugin-putout: @stylistic/eslint-plugin-ts v1.0.0
  • aa5808cb2 eslint-plugin-putout: @stylistic/eslint-plugin-jsx v1.0.0
  • e22c2d267 @putout/eslint-config: @stylistic/eslint-plugin-js v1.0.0
  • a21c7e8ad @putout/cli-filesystem: add
  • c6e5581cf @putout/processor-filesystem: add
  • 0f9ba929b @putout/operator-filesystem: add
  • 3eca2e295 @putout/test: preTest: 1 -> name of a plugin
  • 9d9a53a35 @putout/operate: traverseProperties: improve
  • 88b5e0899 @putout/plugin-github: update-actions: actions/checkout, actions/setup-node v4
  • 48c2fde76 @putout/cli-choose-formatter: preserve formatter options

2023.11.03, v32.15.1

feature:

  • d28e4a8eb putout: printer: yaml
  • 6c262ec18 putout: printer: use deep merge

2023.11.03, v32.15.0

fix:

  • bdb3d1344 @putout/plugin-config: move-formatter-up: processor

feature:

  • 6e4c6d1d1 @putout/plugin-putout-config: move-formatter-up: printer
  • e5e75a070 @putout/cli-choose-formatter: lint putout config
  • 36b4dccbe @putout/plugin-putout-config: move-formatter-up: newline
  • 80227e2d4 putout: lintJSON: add
  • 6c8baa9ca @putout/plugin-putout-config: move-formatter-up
  • 6a7940d8a @putout/plugin-putout-config: move-formatter-up: add
  • 661011ec7 @putout/plugin-conditions: remove-same-values-condition: add reverse
  • 0644445d7 @putout/plugin-conditions: remove-same-values-condition: exclude conditions without ContinueStatment

2023.11.02, v32.14.0

feature:

  • eb74291af putout: drop useless remove-useless-break
  • c39b419ee putout: @putout/plugin-remove-useless-break v1.0.0
  • 6b1390e81 @putout/plugin-remove-useless-break: add
  • fdd0f2b1d @putout/plugin-conditions: remove-same-values-condition
  • 2d0b63e01 @putout/cli-choose-formatter: move out
  • 2e7faf952 putout: choose-formatter: simplify
  • a068bd18f choose-formatter: split
  • 9690f9a47 putout: cli: choose-formatter: add ability to edit formatter in .putout.json

2023.11.01, v32.13.0

feature:

  • 83768c43b @putout/cli-choose: autofocus
  • 7acbdc575 putout: cli: read userland config to search currently used formatter
  • 60f5f2a0f putout: @putout/plugin-maybe v2.0.0
  • 3d45543a5 @putout/plugin-maybe: drop support of 🐊 < 32
  • 1ff35031d @putout/plugin-maybe: maybeFirst

2023.11.01, v32.12.0

fix:

  • 2a2fe438c putout: chooseFormatter: drop erro handling

feature:

  • 9637661a8 putout: exit codes: INTERACTIVE_CANCELED: add

2023.10.31, v32.11.0

feature:

  • 2b1600e6b putout: -i: add support of interactive configuration of linting

2023.10.30, v32.10.1

feature:

  • 8768be856 putout: @putout/plugin-putout-config v4.0.0
  • f94be2d97 @putout/plugin-putout-config: convert-boolean-to-string: report
  • 73877cca7 @putout/plugin-putout-config: drop support of 🐊 < 32

2023.10.30, v32.10.0

fix:

  • 38cdac940 @putout/formatter-time: color: more clear

feature:

  • b5ae16bcd package: @putout/cli-keypress v2.0.0
  • 69050e756 package: ci-info v4.0.0
  • 68ad000eb @putout/cli-keypress: drop support of node < 16
  • cb59e6428 package: ci-info v4.0.0
  • 2f88af0a2 package: picomatch v3.0.1
  • 6ef1bc387 @putout/plugin-madrun: remove-useless-array-in-run: not string
  • 18ab7efbf @putout/plugin-madrun: add remove-useless-array-in-run

2023.10.29, v32.9.0

feature:

  • ac81b0d52 package: @putout/formatter-time v1.0.1

2023.10.28, v32.8.0

feature:

  • f23dbbe95 putout: printer: improve support of JSON
  • 61e6bedef putout: printer: improve support of JSON and JSON in Markdown without ESLint

2023.10.28, v32.7.0

feature:

  • ca284d35c package: @putout/plugin-logical-expressions v5.0.0
  • ad44b4283 @putout/plugin-logical-expressions: drop support of 🐊 < 32
  • ecd39020e putout: printer: add ability to handle endOfFile in markdown listings without ESLint
  • 7587c2c4c package: @putout/plugin-regexp v8.0.0
  • a4110ac0c @putout/plugin-regexp: drop support of 🐊 < 32
  • 798576371 package: @putout/printer v6.0.0

2023.10.28, v32.6.0

fix:

  • 87b010708 @putou/eslint-config: drop @stylistic
  • fa74ea3af @putout/eslint-config: @stylistic
  • 6683113da @putout/test: format with UPDATE: wrong options

feature:

  • 1d4d5a7a0 package: @putout/plugin-regexp v8.0.0
  • 715060684 @putout/plugin-regexp: drop support of 🐊 < 32
  • f804763dc package: @putout/printer v6.0.0
  • e8a190841 package: @stylistic/eslint-plugin-jsx v0.1.1
  • 295e2b0b0 package: eslint-plugin-putout v21.0.0
  • 52f114390 eslint-plugin-putout: @putout/eslint-config v8
  • fc0e9d6cf @putout/eslint-config: use @stylistic (https://eslint.org/blog/2023/10/deprecating-formatting-rules/)
  • 0ed5144c1 package: hermes-parser v0.17.0
  • 15a88dfaf package: hermes-parser v0.17.0
  • 160b5341e @putout/plugin-printer: remove-args: maybe.write.breakline()

2023.10.23, v32.5.0

feature:

  • fb1dc3bd1 @putout/plugin-apply-dot-notation: check for valid identifier
  • 6bd28ffe5 @putout/plugin-apply-dot-notation: add
  • f85c08671 @putout/plugin-promises: remove-useless-await: exclude MemberExpression
  • a2fa4a265 @putout/plugin-madrun: set-lint-dot: report
  • f49a2cc40 @putout/plugin-madrun: convert-to-async: report
  • d87133ddf @putout/plugin-madrun: convert-nyc-to-c8: report
  • 85069c288 @putout/plugin-minify: mangle: nested-overlap (putoutjs/minify#5)
  • 693246921 @putout/plugin-madrun: convert-args-to-scripts: false positive

2023.10.18, v32.4.0

feature:

  • 1d7370062 package: @putout/plugin-madrun v17.0.0
  • c992e627d @putout/plugin-madrun: convert-args-to-scripts: add
  • c6051f5c6 @putout/plugin-madrun: drop support of 🐊 < 32

2023.10.18, v32.3.0

feature:

  • 3ea09d3e4 package: @putout/plugin-github v9.0.0
  • e3f59eb58 @putout/plugin-github: add support of node v21 (https://nodejs.org/en/blog/release/v21.0.0)
  • b42197212 @putout/plugin-github: drop support of 🐊 < 27
  • b72e8bb06 package: estree-to-babel v8.0.0
  • ef3a2da61 @putout/engine-loader: parse-ruels: tuple of two elements: boolean (coderaiser/minify#114)

2023.10.12, v32.2.2

feature:

  • 0a7bc5a6d package: @putout/plugin-nodejs v8.0.0
  • 0cbd7db34 @putout/plugin-nodejs: drop support of 🐊 < 32
  • 641dbb2af @putout/plugin-nodejs: convert-buffer-to-buffer-alloc: encoding

2023.10.11, v32.2.1

fix:

  • 25ee3c992 @putout/engine-runner: get rid of dynamic load of template, improve compatibility with Bun preload
  • 7f07ce346 @putout/plugin-apply-optional-chaining: report

feature:

  • 0e321a667 package: @putout/plugin-remove-useless-spread v9.0.0
  • 45a79362c @putout/plugin-remove-useless-spread: drop support of 🐊 < 32
  • a0caa167a @putout/plugin-putout: declare: getBinding, getBindingPath
  • f4a10e133 @putout/plugin-minify: drop support of 🐊 < 32
  • 88f210f37 @putout/plugin-minify: types: no transform when not declared (coderaiser/minify#114)
  • 0e09eaf01 @putout/compare: phase: ignore
  • 4278dd829 @putout/printer: drop support of 🐊 < 32
  • cb44dab3b @putout/operator-add-args: avoid adding arg when params more then 3
  • 70a7a7058 @putout/eslint: create-plugin: source -> sourceCode
  • 4bdedf52e @putout/plugin-eslint-plugin: drop support of 🐊 < 32
  • 16e1f108c @putout/plugin-eslint-plugin: convert-context-to-source: get more methods
  • ee940f43a package: ts-morph v20.0.0
  • 9a5c045cf package: hermes-parser v0.16.0
  • 6ea289705 @putout/plugin-convert-to-logical: assign: improve

2023.09.27, v32.2.0

feature:

  • f70a45c2c package: @putout/plugin-apply-optional-chaining v5.0.0
  • 14aa701aa @putout/plugin-apply-optional-chaining: use, assign
  • 5f60e306b @putout/plugin-apply-optional-chaining: drop support of 🐊 < 32
  • 609c785de putout: bundle @putout/plugin-convert-optional-to-logical: assign
  • aa2ec40c4 @putout/plugin: convert-optional-to-logical: assign

2023.09.27, v32.1.0

feature:

  • 7c50a12e7 putout: bundle @putout/plugin-convert-optional-to-logical: assign
  • f2eb83bec @putout/plugin: convert-optional-to-logical: assign
  • 03b8e3201 @putout/plugin-convert-optional-to-logical: drop support of 🐊 < 32
  • 9a5b4e40d @putout/engine-parser: optionalChainingAssign
  • f11f520f7 @putout/engine-parser: deferredImportEvaluation
  • eb74bf5a4 @putout/engine-parser: enable sourcePhaseImports

2023.09.26, v32.0.7

fix:

  • ce4cb9011 @putout/plugin-conditions: report: convert-equal-to-strict-equal
  • 3405fe5fc @putout/processor-markdown: cache

feature:

  • 071d77f61 package: @putout/plugin-strict-mode v9.0.0
  • 9250e82ff @putout/plugin-strict-mode: drop support of 🐊 < 32
  • 832ad34dd @putout/plugin-strict-mode: add-missing: report
  • cac1fde26 @putout/engine-parser: babel: decoratorAutoAccessors
  • db48ec61f @putout/processor-html: drop support of 🐊 < 32
  • c50eb7d95 @putout/processor-typescript: drop support of 🐊 < 32
  • 4706a33d0 @putout/processor-wasm: drop support of 🐊 < 32
  • e8dc8a70c package: ts-morph v19.0.0
  • 77ef88fe7 package: svelte v4.2.0
  • e8e5f732a package: remark-stringify v11.0.0
  • f1c2ea5d4 package: remark-parse v11.0.0

2023.09.18, v32.0.6

feature:

  • 23d26e71c package: @putout/engine-processor v10.0.0
  • 9426d0f7a package: @putout/engine-loader v12.0.0

2023.09.18, v32.0.5

fix:

  • d2188e54e @putout/plugin-apply-shorthand-properties: drop comment

feature:

  • 0974239b3 package: eslint-plugin-putout v20.0.0
  • f348498a0 package: @putout/engine-parser v9.0.0
  • 0f39e458f package: @putout/engine-parser v9.0.0
  • 1d7afb1a7 eslint-plugin-putout: drop support of 🐊 < 32
  • b12c792fc package: @putout/engine-parser v9.0.0
  • 2c5993c15 package: @putout/engine-loader v12.0.0
  • 7f705bf74 package: @putout/engine-parser v9.0.0
  • 5716fbefa package: @putout/engine-parser v9.0.0
  • 4a7f21174 package: @putout/engine-parser v9.0.0
  • 93d93e00f package: @putout/compare v13.0.0
  • 01aafde71 package: @putout/engine-parser v9.0.0
  • 6ab072f47 package: @putout/operate v11.0.0
  • 5ed32438f package: @putout/printer v5.0.0

2023.09.15, v32.0.4

feature:

  • 60ed9d26c package: @putout/plugin-remove-useless-variables v10.0.0
  • e1a5f9d31 @putout/plugin-remove-useless-variables: drop support of 🐊 < 32
  • 9b49fe4ef @putout/plugin-react-hook-form: drop support of 🐊 < 32
  • 1d40a8c74 package: @putout/plugin-promises v13.0.0
  • a1d600b20 @putout/plugin-promises: drop support of 🐊 < 32
  • e155bc9cf package: @putout/plugin-merge-duplicate-functions v2.0.0
  • 9e9bab0af @putout/plugin-merge-duplicate-functions: drop support of 🐊 < 32
  • 63115c382 package: @putout/traverse v9.0.0
  • 134c6e76e package: @putout/compare v13.0.0
  • 119fe1192 package: @putout/operator-add-args v7.0.0
  • 0c8d1f23f @putout/opererator-add-args: drop support of 🐊 < 32
  • 0a8e9e198 package: @putout/compare v13.0.0
  • 88c653aad package: @putout/engine-runner v19.0.0
  • aea74cfea package: @putout/compare v13.0.0
  • 7bf022d1c package: @putout/operator-declare v8.0.0
  • f52740400 package: @putout/operator-declare v8.0.0
  • 104e2e5aa @putout/operator-declare: drop support of 🐊 < 32
  • 2ab58b8ad package: @putout/operate v11.0.0
  • f15f3492b package: @putout/compare v13.0.0
  • 3a7e4ccf1 package: @putout/operate v11.0.0
  • 48b3fd609 package: @putout/operate v11.0.0
  • ed8dc9f9b @putout/operate: rename: handle assignment
  • 7f72c8b12 @putout/plugin-appy-shorthand-properties: handle assignment
  • 18b0b2af3 @putout/plugin-apply-shorthand-properties: drop support of 🐊 < 32
  • ab6e4e017 @putout/plugin-apply-shorthand-properties: report
  • 48e1872fe package: @putout/plugin-putout v15.0.0
  • 8cba00c2e @putout/plugin-putout: drop support of 🐊 < 32

2023.09.15, v32.0.3

feature:

  • 70aba9f6c package: @putout/traverse v9.0.0
  • 763614b4d package: @putout/compare v13.0.0
  • ee6433864 package: @putout/operator-add-args v7.0.0
  • 16e1c8403 @putout/opererator-add-args: drop support of 🐊 < 32
  • 761b509c1 package: @putout/compare v13.0.0
  • f84e4c65c package: @putout/engine-runner v19.0.0
  • d784a789a package: @putout/compare v13.0.0
  • 26578f39f package: @putout/operator-declare v8.0.0
  • 5bba76385 package: @putout/operator-declare v8.0.0
  • b33d04e20 @putout/operator-declare: drop support of 🐊 < 32
  • 134b32ac4 package: @putout/operate v11.0.0
  • 547f07e54 package: @putout/compare v13.0.0
  • f2e102531 package: @putout/operate v11.0.0
  • a9e1fc5a4 package: @putout/operate v11.0.0
  • 730917a6d @putout/operate: rename: handle assignment
  • ac66238b2 @putout/plugin-appy-shorthand-properties: handle assignment
  • 195862df1 @putout/plugin-apply-shorthand-properties: drop support of 🐊 < 32
  • de059bb4a @putout/plugin-apply-shorthand-properties: report

2023.09.15, v32.0.2

feature:

  • 5f2dd1b08 package: @putout/plugin-putout v15.0.0
  • 5b9a872e6 @putout/plugin-putout: drop support of ☘🐊 < 32
  • a7ec11eda @putout/plugin-putout: apply-rename: add

2023.09.14, v32.0.1

feature:

  • e63e3ed5c package: @putout/plugin-remove-unused-variables v7.0.0
  • a5d4eb3e7 @putout/plugin-remove-unused-variables: drop support of 🐊 < 32

2023.09.14, v32.0.0

feature:

  • 78a406e89 package: @putout/plugin-apply-at v2.0.0
  • 4cd4cae9c package: @putout/plugin-conditions v3.0.0
  • 820f4c04d @putout/plugin-apply-at: drop support of 🐊 < 32
  • 7e47a25a5 @putout/plugin-appy-at: improve support
  • 8cf8b8ce7 @putout/plugin-conditions: remove-useless-else: add support of BreakStatement, ContinueStatement
  • 72b01c702 @putout/plugin-conditions: drop support of 🐊 < 32
  • 24aef49ec @putout/plugin-conditions: merge remove-useless-else
  • 4de6c9253 @putout/plugin-conditions: merge merge-if-statements
  • b3b9bdb6e package: estree-to-babel v7.0.0
  • 189571edb @putout/plugin-github: install-bun: exist with different version
  • 42db11d3b @putout/plugin-minify: merge-variables: exclude AwaitExpression (coderaiser/minify#111)
  • 8f51638a0 @putout/plugin-github: install-bun: improve support of named step
  • f9e00ca31 eslint-plugin-putout: config: autodetect ESM/CommonJS (eslint-community/eslint-plugin-n#105)
  • f639ebeec @putout/plugin-eslint-plugin: convert-context-to-source: getNodeByRangeIndex
  • d997bfe7f package: unified v11.0.3
  • d96fc2828 package: file-entry-cache v7.0.0
  • 61566995b package: find-cache-dir v5.0.0
  • d6f4b7c3e eslint-plugin-putout: putout: sync: ESM (#182)
  • d265df273 @putout/test: eslint: putout (#182)
  • 23d296d26 @putout/engine-loader: loadPlugins: sync: ESM: add more descriptive error message (#182)

2023.09.07, v31.8.5

fix:

  • 8251b3118 @putout/plugin-github: set-versions -> update-actions
  • ef5c19f45 @putout/plugin-github: set-versions
  • f7abaf567 @putout/plugin-github: quemu -> qemu

feature:

  • ecfa5ebe1 package: @putout/plugin-strict-mode v8.0.0
  • a63e7236c @putout/plugin-strict-mode: drop support of 🐊 < 31
  • 10a79aa15 @putout/plugin-strict-mode: remove-useless: exclude "use client" (#182)
  • a035efbf4 @putout/plugin-github: update-actions: docker/login-action: add

2023.09.05, v31.8.4

feature:

  • 991d24bae package: @putout/plugin-github v8.0.0
  • b11b9077b @putout/plugin-github: set-versions: add
  • d1240765e @putout/plugin-github: set-docker-setup-buildx-version: add
  • 188ef5123 @putout/plugin-github: set-setup-quemu-action-version: add
  • c1ec32298 @putout/plugin-github: set-docker-build-push-version: add
  • fc194a55c @putout/eslint-plugin: drop useless rules
  • 3586e7a13 @putout/plugin-eslint-plugin: drop support of 🐊 < 31
  • db7f163c2 @putout/plugin-eslint-plugin: convert-context-to-source
  • 73f628e0d package: @putout/processor-json v7.0.1
  • 384d8e9ef package: @putout/processor-yaml v6.0.0
  • caa6783db package: @putout/processor-json v7.0.1
  • 9c40e9da0 package: @putout/printer v4.1.0

2023.09.04, v31.8.3

fix:

  • cbbfda598 @putout/processor-json: prefix -> name

feature:

  • 95130e258 package: @putout/processor-json v7.0.1
  • 5deaf9283 package: @putout/processor-yaml v6.0.0
  • 95183baac package: @putout/processor-json v7.0.1
  • 759ca9f15 package: @putout/printer v4.1.0

2023.09.03, v31.8.2

feature:

  • 0fabbcfa0 package: @putout/processor-json v7.0.0
  • 8ecdff05c @putout/processor-json: rm peerDependencies
  • 8c83f79f1 @putout/processor-json: add is-json
  • 4e6f75057 @putout/plugin-printer: remove-args: print.breakline()
  • e20da190d @putout/plugin-printer: drop support of 🐊 < 31
  • c4da43a67 @putout/plugin-printer: remove-args: print.linebreak()

2023.08.31, v31.8.1

feature:

  • c8319fbc9 package: @putout/plugin-for-of v3.0.0
  • 969cd067f @putout/plugin-for-of: for-each: report
  • 83fa6b0de @putout/plugin-nodejs: declare: process: improve Deno support

2023.08.29, v31.8.0

feature:

  • 182b6aaf7 @putout/engine-loader: re-structure
  • 3ded6f846 putout: putoutAsync: simplify
  • 06c131ab6 @putout/engine-loader: import: shorten
  • d79e746e8 scripts: generate-schema: add
  • 57d3261e4 @putout/plugin-minify: convert to ESM

2023.08.28, v31.7.0

feature:

  • 2a375c896 putout: parseOptions: require -> add prefix "import:"
  • e7693f971 @putout/engine-loader: loadPlugins: add support of 'import:'
  • 40bbe3a6a @putout/plugin-putout: apply-namespace-specifiers: improve support of couple imports in Nested Plugin
  • ed61c1b25 @putout/engine-loader: add support of 'import:'
  • b4d482c56 @putout/plugin-convert-optional-to-logical: squire brace
  • 6ba8e145d @putout/plugin-convert-optional-to-logical: convert to ESM

2023.08.27, v31.6.0

fix:

  • f252148df @putout/traverse: contains
  • e762ba09e feature: @putout/plugin-nodejs: add-node-preadd

feature:

  • b259bf667 @putout/traverse: reuse path.traverse when possible
  • e762ba09e @putout/plugin-nodejs: add-node-prefix: add
  • 0930cf863 @putout/operate: setLiteralValue: improve support of template
  • a6f8c7d3f @putout/plugin-apply-nullish-coalescing: drop support of 🐊 < 31
  • d7ab0933a @putout/plugin-apply-shorthand-properties: drop support of 🐊 < 31

2023.08.25, v31.5.0

feature:

  • 2958ef1d7 eslint-plugin-putout: putout: esm
  • cf5712aea eslint-plugin-putout: esm: use async
  • 58a165199 putout: export findPlacesAsync, transformAsync
  • e0ebe4ff0 @putout/plugin-putout: add-index-to-import: add

2023.08.24, v31.4.0

fix:

  • 343c7448c @putout/engine-loader: loadPluginsAsync: disabled rule

feature:

  • d239cf375 package: @putout/plugin-remove-useless-arguments v8.0.0
  • d9d55fab2 @putout/plugin-remove-useless-arguments: drop support of 🐊 < 31
  • bf4dd6331 @putout/plugin-remove-useless-arguments: destructuring: params length
  • c186080fa @putout/plugin-travis: convert to ESM
  • 3423767ec putout: add support of ESM plugins
  • c91c3d2a1 @putout/engine-loader: loadPluginsAsync: speed up with memoize
  • 5b67c34a1 @putout/plugin-putout: apply-namespace-speicifier: exclude alot imports

2023.08.23, v31.3.0

feature:

  • 783861f83 package: @putout/plugin-apply-entries v2.0.0
  • 137145031 putout: add putoutAsync
  • 347e572ad @putout/plugin-apply-entries: ESM
  • 66aecbf55 @putout/plugin-apply-namespace-specifier: create-test
  • e0be94d96 @putout/plugin-putout: apply-namespace-specifier: rules
  • 66434fb93 @putout/engine-loader: add loadPluginsAsync
  • 890558e38 eslint-plugin-putout: putout: esm

2023.08.22, v31.2.4

feature:

  • 13590f22b package: @putout/plugin-types v3.0.0
  • 3954b47cc @putout/plugin-types: drop support of 🐊 < 31

2023.08.22, v31.2.3

feature:

  • 43deeffeb package: @putout/plugin-promises v12.0.0
  • e1e32b16c @putout/plugin-promises: drop support of 🐊 < 31
  • dff6c8a99 @putout/plugin-minify: expand-bindings: arrow
  • ac4ecf335 @putout/plugin-minify: drop support of 🐊 < 31
  • 697e41646 @putout/plugin-putotu: declare: getRules
  • 6c99c86e2 @putout/plugin-putout: convert-get-rule-to-require: add
  • 6dafc7f91 @putout/operator-declare: declare under require

2023.08.21, v31.2.2

feature:

  • d6b8d6706 package: @putout/plugin-declare-before-reference v3.0.0
  • 64ddc72fe @putout/plugin-declare-before-reference: drop support of 🐊 < 31
  • 443182ca9 @putout/plugin-declare-before-reference: improve order

2023.08.17, v31.2.1

fix:

  • 4e7221606 putout: validate-options: pass printer options (#180)
  • 331446897 @putout/plugin-putout: apply-namespace-specifier: no specifier
  • 47de2534a @putout/plugin-putout: apply-namaspace-specifier: report: exists
  • f9a5a9eb8 @putout/plugin-putout: add-push: couple usages

feature:

  • 3cc868239 @putout/plugin-github: install-rust: add
  • 1bb5dd527 @putout/plugin-putout: apply-namaspace-specifier: add
  • b734569f3 @putout/plugin-github: install-bun: check if exists
  • 42772336a @putout/plugin-github: convert-npm-to-bun: add
  • 8520afe54 @putout/plugin-github: install-bun
  • 59614627a @putout/plugin: convert-object-entries-to-array-entries: get back old behavior

2023.08.14, v31.2.0

feature:

  • a19eac4b1 @putout/plugin-declare: get back Object.entries()
  • 609e959ff package: @putout/plugin-convert-object-entries-to-array-entries v3.0.0
  • 99609d78b @putout/plugin-convert-object-entries-to-array-entries: drop support of 🐊 < 31
  • 523c9d105 @putout/plugin-entries: exclude part of declaration
  • 0cd04a1c1 package: @putout/plugin-declare v2.0.0
  • 26130877e package: @putout/plugin-apply-entries v1.0.0
  • da810e278 @putout/plugin-declare: drop support of 🐊 < 31
  • 11f68e09d @putout/plugin-declare: entries: auto check passed type
  • 940f0660d @putout/plugin-apply-entries: add
  • a6cd9361d eslint-plugin-putout: array-element-newline: null
  • ae84b1d59 @putout/engine-parser: printer: recast: options
  • 88c3a2f76 @putout/plugin-github: install-bun: add

2023.08.13, v31.1.0

feature:

  • 42ee1f5f5 package: @putout/plugin-github v7.0.0
  • e6f68b0ef @putout/plugin-github: drop support of 🐊 < 31
  • 78a4419b6 @putout/plugin-github: use traverseProperties from @putout/operate
  • 49e299be6 package: @putout/plugin-putout v14.0.0
  • 6fd1c6232 @putout/plugin-putout: drop support of 🐊 < 31
  • 90135988c @putout/plugin-putout: declare: add traverseProperties
  • 41df7e405 @putout/operate: traverseProperties: add
  • f1365ddef @putout/plugin-madrun: set-lint-dot: report: using -> with
  • 691bf3b61 @putout/plugin-madrun: set-lint-dot: report

2023.08.12, v31.0.8

feature:

  • dd3ef8f23 package: @putout/processor-markdown v10.0.0
  • 5bfc98892 @putout/processor-markdown: drop support of 🐊 < 31

2023.08.12, v31.0.7

feature:

  • a7ea9ceed package: @putout/plugin-logical-expressions v4.0.0
  • 509b65d60 @putout/plugin-logical-expressions: drop support of 🐊

2023.08.11, v31.0.6

fix:

  • 89e0ac21f eslint-plugin-putout: babel deps

feature:

2023.08.09, v31.0.5

feature:

  • f3c0b3970 package: @putout/plugin-madrun v16.0.0
  • b6e1f7dc3 @putout/plugin-madrun: drop support of 🐊 < 31
  • fdd5b38d3 @putout/plugin-madrun: set-lint-dot: raw

2023.08.08, v31.0.4

fix:

  • fca64a926 @putout/compare: ignore: drop pattern

feature:

  • cad218775 package: @putout/plugin-nodejs v7.0.0
  • df60b2b40 @putout/plugin-nodejs: drop support of 🐊 < 31
  • bb252688d @putout/operate: insertAfter: comments
  • 7973ea898 @putout/compare: top-level-comparators: simplify
  • c7cde3a5e @putout/compare: top-level-comparators
  • be73a28ac @putout/compare: add support of top level regexp (#179)
  • 86e565165 @putout/plugin-typescript: convert-generic-to-shorthand: parens
  • c5103a1d9 package: @putout/printer v3.0.0
  • b5b396a47 package: @putout/operator-declare v7.0.4
  • 61e5a2d62 package: @putout/operate v10.0.2
  • 0ce6200c8 package: @putout/operate v10.0.2

2023.08.04, v31.0.3

fix:

  • d1371e365 @putout/compare: link

feature:

  • dd2974013 package: @putout/formatter-frame v4.0.0
  • 2b74fc46f package: @putout/formatter-codeframe v5.0.2
  • 23101f026 @putout/formatter-frame: drop support of 🐊 < 31
  • f8547c45a package: @putout/operate v10.0.2

2023.08.04, v31.0.2

feature:

  • 1e81ca569 package: @putout/engine-processor v9.0.0
  • 62f10be89 package: @putout/engine-loader v11.0.1
  • ff0690655 package: @putout/engine-parser v8.0.1
  • 655ae835d package: @putout/engine-parser v8.0.1
  • 0e1c1beac package: @putout/engine-parser v8.0.1
  • 120d402dc package: @putout/engine-parser v8.0.1
  • edef2ceab package: @putout/engine-parser v8.0.1
  • 832b9d9db @putout/engine-loader: drop support of Babel Plugins (babel/babel#15835)

2023.08.04, v31.0.0

fix:

  • 7c5637f68 @putout/plugin-typescript: apply-type-guards (#176)

feature:

  • 9a46f39bb package: @putout/compare v12.0.0
  • b55031eff package: @putout/compare v12.0.0
  • 368552cc2 package: @putout/compare v12.0.0
  • 586366234 package: @putout/compare v12.0.0
  • fd1d1fa97 package: @putout/compare v12.0.0
  • 1328d7774 package: @putout/engine-loader v11.0.0
  • 50a9c7af5 package: @putout/engine-parser v8.0.0
  • 33fb3f9aa package: @putout/engine-runner v18.0.0
  • ddea821fc package: eslint-plugin-putout v19.0.0
  • c6febe13e package: @putout/formatter-codeframe v5.0.0
  • 7c54502ac @putout/formatter-codeframe: drop support of 🐊 < 31
  • 6cec945bc package: @putout/operate v10.0.0
  • 41c1152a5 package: @putout/operator-add-args v6.0.0
  • 19a814bd4 @putout/operator-add-args: drop support of 🐊 < 31
  • 0ad3167c2 package: @putout/operator-declare v7.0.0
  • c2476b02a @putout/operator-declare: drop support of 🐊 < 31
  • ffb42e0bd package: @putout/plugin-remove-unused-variables v6.0.0
  • d5918ab4f @putout/plugin-remove-unused-variables: drop support of 🐊 < 31
  • c3300375e package: @putout/plugin-typescript v5.0.0
  • 5168bc391 package: @putout/traverse v8.0.0
  • a114f95f3 putout: migrate to Babel 8 (https://babeljs.io/docs/v8-migration-api)
  • 53bb6f244 @putout/plugin-minify: merge-variables: exclude let (coderaiser/minify#111)
  • e48d236b5 @putout/plugin-typescript: remove-useless-parens: exclude types overlap
  • ab589d31f @putout/plugin-putout: add-push: esm
  • f206c507b @putout/plugin-putout: declare: setLiteralValue: add
  • 655cea260 @putout/operate: setLiteralValue: add
  • 4cdf9b013 @putout/plugin-remove-unreferenced-variables: add support of "return __a"
  • fce2b8c0d @putout/plugin-remove-useless-variables: declaration: no init
  • 542cd4559 @putout/plugin-types: converty-typeof-to-is-type: declaration (#166)
  • 20a015fbc @putout/plugin-minify: apply-template-literal (#174)
  • c9f22f9ee @putout/plugin-minify: simplify-floor (#174)
  • 5ffcf9cf4 @putout/plugin-putout: apply-insert-before
  • 012f3c81b @putout/plugin-putout: declare: insertBefore
  • 0cd83c6cf @putout/operate: insertBefore
  • a7399c1c1 @putout/plugin-remove-useless-resolve: await
  • c00b03260 @putout/plugin-promises: improve support of @putout/minify
  • 9889996b3 @putout/plugin-putout: apply-insert-after: add (#164)
  • a6c3878ff @putout/plugin-putout: apply-remove: path.remove() -> __a.remove()
  • b4e845ec7 @putout/plugin-minify: types: Array.from (#160)
  • e6d48f022 @putout/plugin-types: convert-typeof-to-is-type: not equal: not declared
  • 6c2c477c6 @putout/plugin-typescript: convert-generic-to-shorthand: types overlap (#173)
  • 0e2a983dc @putout/plugin-typescript: remove-useless-promise: add (#155)

2023.07.26, v30.7.0

fix:

  • 81aabefc9 engine-*: Add missing peerDependencies (#168)
  • dadb3aaaa @putout/plugin-minify: remove-var-undefined: drop empty index.
  • 3f0719cca @putout/plugin-minify: inline: Expression -> UpdateExpression

feature:

  • 53ccc3894 package: @putout/plugin-remove-useless-variables v9.0.0
  • 86c816d2d @putout/plugin-remove-useless-variables: declaration: add
  • 7b5a075d7 @putout/plugin-promises: remove-unused-variables: add from @putout/plugin-remove-unused-variables
  • ada2c87c5 @putout/plugin-remove-useless-variables: drop support of 🐊 < 30
  • 66098ee4d @putout/operate: extract: TSTypeReference
  • 890c72be1 @putout/compare: __a: TSTypeReference
  • 749666168 @putout/plugin-promises: remove-useless-async: report
  • f7b49b276 @putout/operate: getBinding: simplify (#154)
  • b6e5d6b3c @putout/plugin-types: convert-typeof-to-is-type: declared (#154)
  • 34218b06a @putout/plugin-logical-expressions: simplify: !(__a === __b) -> __a !== __b (#162)
  • e987ddcc7 @putout/plugin-types: convert-typeof-to-is-type: not (#162)
  • 5af3e3033 @putout/plugin-typescript: convert-generic-to-shorthand: TSFunctionType (#170)
  • 05f1d25f1 @putout/plugin-minify: drop support of 🐊 < 30
  • f79bc8e16 @putout/plugin-minify: inline (#161)
  • 864436d68 @putout/plugin-typescript: apply-type-guards: add (#165)

2023.07.25, v30.6.0

feature:

  • 2e6d87400 package: @putout/operate v9.0.0
  • 71a38af4c package: @putout/operate v9.0.0
  • 77652d3ef package: @putout/operate v9.0.0
  • d3119103f @putout/operator-declare: imporve support of comments (#164)
  • e834e40b2 @putout/operate: insertAfter: improve (#164)
  • 3461301ea @putout/plugin-putout: declare: operator: insertAfter (#164)
  • b00f54ae9 @putout/engine-runner: replace: Statement in place of Expression: improve message (#156)
  • 7b7e4c38f @putout/plugin-simplify-ternary: value: when converting to IfStatement filter out by parentPath.type === ExpressionStatement (#156)
  • dfc595439 @putout/plugin-types: declare: isBigInt (#158)
  • c23fa1ea9 @putout/plugin-types: convert-typeof-to-is-type (#158)
  • 4fa8f58bb @putout/plugin-conditions: remove-zero: improve support of parens (#157)
  • 8644df78a @putout/plugin-apply-starts-with: add case with where no binding found

2023.07.19, v30.5.0

feature:

  • 7195bf2f9 @putout/plugin-apply-starts-with: add

2023.07.19, v30.4.6

feature:

  • 6ba242083 package: @putout/plugin-simplify-ternary v6.0.0
  • 39f0b56e3 @putout/plugin-simplify-ternary: drop support of 🐊 < 30
  • c4f2ca269 @putout/plugin-simplify-ternary: value: __a ? __b : false -> __a && __b
  • 63e22719c @putout/plugin-conditions: remove-zero: equal: jsx

2023.07.19, v30.4.5

feature:

  • d9758f507 package: @putout/plugin-conditions v2.0.0
  • b34acc1ad @putout/plugin-conditions: drop support of 🐊 < 30
  • af1d63c5b @putout/plugin-conditions: remove-zero: exclude jsx
  • d7a9bf6b0 @putout/plugin-remove-useless-spread: array: include "Object.values()"

2023.07.18, v30.4.4

feature:

  • cf3753919 package: @putout/plugin-remove-useless-spread v8.0.0
  • a7bf33d1e @putout/plugin-remove-useless-spread: array
  • faec6bbc6 @putout/plugin-remove-useless-spread: array: exclude "__.values()" (#148)
  • d7bcb7406 @putout/plugin-logical-expressions: simplify: constructor: or
  • a7c72715d @putout/plugin-logical-expressions: simplify: constructor

2023.07.15, v30.4.3

feature:

  • f54ce7750 package: @putout/plugin-logical-expressions v3.0.0
  • 381d2055b @putout/plugin-logical-expressions: drop support of 🐊 < 30
  • 5a266af6b @putout/plugin-logical-expressions: simplify: Boolean constructor
  • 2bb7b219a @putout/plugin-promises: convert-new-promise-to-async: passed resolve

2023.07.15, v30.4.2

fix:

  • 7a0dbcb07 @putout/plugin-github: add-continue-on-error: push -> splice

feature:

  • 7649469b4 package: @putout/plugin-try-catch v3.0.0
  • fd83b0085 @putout/plugin-try-catch: drop support of 🐊 < 30
  • f0828b475 @putout/plugin-try-catch: sync: improve support of no error

2023.07.13, v30.4.1

feature:

  • 5f1993c4f package: @putout/plugin-github v6.0.0
  • e083d0791 @putout/plugin-github: createUsesFixer -> setVersion
  • d3c2517b9 @putout/plugin-github: drop support of 🐊 < 30
  • 6bfe1c4ce @putout/plugin-github: add-continue-on-error: coveralls, add-and-commit
  • b3e64ff7e eslint-plugin-putout: single-property-destructuring: exclude computed

2023.07.12, v30.4.0

feature:

  • d3579eedf package: @putout/plugin-remove-useless-array-constructor v2.0.0
  • ecfe465a6 @putout/plugin-remove-useless-array-constructor: drop support of 🐊 < 30
  • 98170e84f @putout/plugin-remove-useless-array-constructor: report
  • 701e0aabf package: @putout/plugin-remove-duplicate-case v3.0.0
  • e792f8309 @putout/plugin-remove-duplicate-case: drop support of 🐊 < 30
  • f14120595 @putout/plugin-remove-duplicate-case: report
  • 168d5308c package: @putout/plugin-typescript v4.0.0
  • 3f0a3e034 @putout/plugin-typescript: drop support of 🐊 < 30
  • c9772e64a @putout/plugin-typescript: remove-duplicate-interface-keys: report
  • 8d341536d package: @putout/plugin-types v2.0.0
  • 9758ef3fe @putout/plugin-types: drop support of 🐊 < 30
  • 0027cacd5 @putout/plugin-types: remove-useless-typeof: report
  • 983ed74fe package: unist-util-visit v5.0.0

2023.07.11, v30.3.1

feature:

  • 2b2674bdd package: @putout/engine-processor v8.0.0
  • ba1061c7e package: @putout/engine-loader v10.0.0
  • 10f632bd4 package: nodemon v3.0.1

2023.07.11, v30.3.0

feature:

2023.07.10, v30.2.3

feature:

  • 830e1b0d4 package: @putout/plugin-remove-unreferenced-variables v3.0.0
  • 699b8f2c7 package: @putout/plugin-for-of v2.0.0
  • 3fc4a114c @putout/plugin-for-of: drop support of 🐊 < 30
  • 58b201cd1 @putout/plugin-for-of: improve support of @putout/plugin-remove-unreferenced-variables
  • b1e7d140c @putout/plugin-remove-unreferenced-variables: drop support of 🐊 < 30
  • 54bbefbf3 @putout/plugin-remove-unreferenced-variables: improve support of @putout/plugin-for-of
  • fb9b9df38 @putout/plugin-promises: add-missing-await: react: exclude useEffect
  • 80bf66dc5 @putout/plugin-promises: convert-new-promise-to-async: exclude names other then resolve, reject

2023.07.10, v30.2.2

fix:

  • b12de56b3 putout: --soft: has no sense, since after fix places.length always none

2023.07.10, v30.2.1

feature:

  • e5edb5389 package: @putout/plugin-remove-useless-functions v3.0.0
  • f1c7edb07 @putout/plugin-remove-useless-functions: report
  • 9f4667994 @putout/plugin-promises: convert-new-promise-to-async: different scopes
  • a1ea8101b package: estree-to-babel v6.0.0
  • 6f1f0a97a @putout/operator-add-args: improve support of more then two params

2023.07.08, v30.2.0

feature:

  • 2989df2d6 package: @putout/plugin-strict-mode v7.0.0
  • 1fa43e078 package: @putout/plugin-putout v13.0.0
  • ca3aac450 package: @putout/plugin-remove-unused-expressions v7.0.0
  • f5fbabe8c @putout/plugin-remove-unused-expressions: drop support of 🐊 < 30
  • d28a985ce @putout/engine-parser: use directives for @putout/printer
  • 3e98931c4 @putout/plugin-putout: drop support of 🐊 < 30
  • 3b6348134 @putout/plugin-strict-mode: drop support of 🐊 < 30
  • 6ae6ec300 @putout/plugin-strict-mode: add support of directives

2023.07.07, v30.1.1

fix:

  • a85468f84 putout: --no-force -> --soft
  • 349b3f37d @putout/test: UPDATE

feature:

  • d2a54529b @putout/test: drop formatSave, formatManySave

2023.07.06, v30.1.0

feature:

  • 91a14b37d putout: --no-force: add
  • d2ac969c3 @putout/plugin-promise: convert-new-promise-to-async: arrow function without body
  • 7c281c4f6 package: stylelint-config-standard v34.0.0

2023.07.06, v30.0.3

feature:

  • f0e9054b0 package: @putout/engine-loader v10.0.0
  • daf5b7fd9 package: @putout/engine-parser v7.1.0
  • 1fc9ff504 @putout/engine-parser: add support of Explicit Resource Management (https://github.com/tc39/proposal-explicit-resource-management)
  • 42b95219c package: eslint-plugin-putout v18.0.0
  • 6ba4a3b38 eslint-plugin-putout: drop support of 🐊 < 30

2023.07.05, v30.0.2

feature:

  • df1157183 package: @putout/traverse v7.0.0
  • a2c5dd3b4 package: @putout/operator-declare v6.0.1
  • 216ac14b1 package: @putout/operator-declare v6.0.1
  • b00932964 @putout/operator-declare: drop support of 🐊 < 30
  • dca08be14 package: @putout/engine-parser v7.0.0
  • 92f16e9d5 package: @putout/operator-add-args v5.0.0
  • bc413cbab package: @putout/engine-parser v7.0.0
  • d041537e1 @putout/operator-add-args: drop support of 🐊 < 30
  • dc709ddc9 package: @putout/engine-runner v17.0.0
  • 0b9150e9b package: @putout/compare v11.0.0
  • 932bdd0f5 package: @putout/compare v11.0.0
  • eac3c05e3 package: @putout/compare v11.0.0
  • 4ea8a0616 package: @putout/compare v11.0.0
  • 1506b30d6 package: @putout/compare v11.0.0
  • d854492cc package: @putout/engine-parser v7.0.0
  • b36c50245 package: @putout/engine-parser v7.0.0
  • f7111df33 package: @putout/engine-parser v7.0.0
  • 059bc4f7c package: @putout/engine-parser v7.0.0
  • 642d38cb5 package: @putout/engine-parser v7.0.0
  • 5f5056621 package: hermes-parser v0.14.0
  • 3f47af6fa @putout/engine-parser: use @putout/printer by default

2023.07.05, v30.0.1

feature:

  • 193b30bd3 package: @putout/plugin-promises v11.0.0
  • c77ac8e69 @putout/plugin-promises: drop support of 🐊 < 30

2023.07.05, v30.0.0

feature:

  • 57c5aef40 @putout/test: processor: add ability to pass printer
  • 40fa46cc0 @putout/plugin-promises: enable convert-new-promise-to-async
  • 7875b0233 putout: use @putout/printer by default
  • 8fc9dd688 package: cosmiconfig v8.2.0
  • 9f1749ad3 package: hermes-parser v0.12.1
  • 0ff502529 package: c8 v8.0.0
  • 44f032f72 package: find-cache-dir v4.0.0
  • 9038588c6 @putout/plugin-declare-before-reference: use @putout/printer
  • 6d3f961dd @putout/plugin-npmignore: use @putout/printer
  • 74726fa72 @putout/plugin-declare: use @putout/printer
  • 652ffb21c @putout/test: noTransformWithOptions: UPDATE
  • 23858f1b7 @putout/plugin-minify: convert-array-from-to-spread: add (coderaiser/minify#107)
  • d576f572a @putout/plugin-minify: convert-if-to-logical: improve support of generators (coderaiser/minify#108)
  • a21a45e2a scripts: printer: remove drop
  • bbae438d0 @putout/plugin-remove-empty: pattern: FunctionExpression: async: add
  • e84a46600 @putout/cli-staged: add support of renamed files

2023.06.15, v29.15.0

feature:

  • 69bee138c @putout/cli-staged: move out from putout

2023.06.15, v29.14.0

feature:

  • 5d0accb16 putout: use @putout/git-status-porcelain for --staged

2023.06.14, v29.13.5

feature:

  • b40f60d93 package: @putout/plugin-convert-commonjs-to-esm v10.0.0
  • d7fec8229 @putout/plugin-convert-commonjs-to-esm: drop support of 🐊
  • c6b1ed02b @putout/plugin-convert-commonjs-to-esm
  • 76dd62b5c @putout/plugin-nodejs: declare-after-require: get back comments support when recast used

2023.06.14, v29.13.4

feature:

  • cf40b4a52 package: @putout/plugin-remove-useless-spread v7.0.0
  • 116f948ef @putout/plugin-remove-useless-spread: drop support of 🐊 < 29
  • a64051bb7 @putout/plugin-remove-useless-spread: use @putout/printer

2023.06.14, v29.13.3

feature:

  • c004b1746 package: @putout/plugin-remove-useless-template-expressions v2.0.0
  • 9aa82b10f @putout/plugin-remove-useless-template-expressions: drop support of 🐊 < 29
  • bbd78527e @putout/plugin-remove-useless-template-expressions: comments support using @putout/printer
  • 8f73dcaca @putout/plugin-types: remove-double-negations: add support of startsWith
  • 7d333d735 @putout/plugin-simplify-boolean-return: add support of UnaryExpression: !

2023.06.14, v29.13.2

feature:

  • d1d31b4cb package: @putout/plugin-reuse-duplicate-init v5.0.0
  • 711024a22 @putout/plugin-reuse-duplicate-init: drop support of 🐊 < 29

2023.06.13, v29.13.1

feature:

  • 7eb70588a package: @putout/plugin-convert-assignment-to-comparison v2.0.0
  • f77a5eaf7 @putout/plugin-convert-assignment-to-comparison: drop support of 🐊 < 29

2023.06.13, v29.13.0

feature:

  • fa0df1d32 @putout/plugin-simplify-boolean-return: add
  • 2bccf0897 @putout/compare: add support of __bool
  • 520a68081 @putout/compare: vars: add support of extra parenthesized

2023.06.13, v29.12.12

feature:

  • e028f142f package: @putout/plugin-split-nested-destructuring v3.0.0
  • d5fcd28e1 @putout/plugin-split-nested-destructuring: drop support of 🐊 < 29

2023.06.12, v29.12.11

fix:

  • 4ce5182fb @putout/plugin-printer: remove-args: no report

feature:

  • c93a6b29c package: @putout/plugin-split-variable-declarations v3.0.0
  • 836c270f3 @putout/printer: split-variable-declarations: drop support of 🐊 < 29
  • efbcc26c7 @putout/plugin-split-variable-declarations: use @putout/printer
  • 8e409ea10 @putout/plugin-printer: remove-args: write.space
  • 49ed8cf0c package: @putout/printer v2.0.0
  • e84d4834c @putout/plugin-printer: remove-args: add support of write.breakline

2023.06.12, v29.12.10

feature:

  • 542966eff package: @putout/plugin-strict-mode v6.0.0
  • 0f738821e @putout/plugin-strict-mode: drop support of 🐊 < 29
  • d1d5b4ad9 @putout/plugin-strict-mode: use @putout/printer
  • 9bd1c651d @putout/plugin-travis: drop support of 🐊 < 29

2023.06.12, v29.12.9

feature:

  • cb79135b4 package: @putout/processor-javascript v5.0.0
  • 2cdca8684 @putout/processor-javascript: drop support of 🐊 < 29
  • 9b39e5f81 @putout/plugin-madrun: use @putout/printer
  • 42d67623a babel-plugin-putout: drop support of node < 16
  • 9e1963c97 @babel-plugin-putout: use @putout/printer

2023.06.12, v29.12.8

feature:

  • 43e643207 package: @putout/plugin-webpack v3.0.0

2023.06.09, v29.12.7

feature:

  • 9a6c6e77f package: @putout/plugin-putout-config v3.0.0
  • 210289bf1 @putout/plugin-config: drop support of node < 16
  • cc12ea0cd @putout/processor-wasm: drop support of 🐊 < 29

2023.06.08, v29.12.6

feature:

  • 7278b3551 package: @putout/cli-ruler v3.0.0
  • 9d838b92d @putout/cli-ruler: drop support of node < 16
  • 57e02838f @putout/cli-ruler: change args

2023.06.08, v29.12.5

feature:

  • 7f14546b5 package: @putout/plugin-apply-early-return v3.0.0
  • ce901bbe8 @putout/printer: filter out Identifiers
  • 8637da9d4 @putout/plugin-apply-early-return: drop support of 🐊 < 29
  • 0ecf64c9b @putout/plugin-apply-eary-return: use @putout/printer
  • 1ee397bac @putout/plugin-react-hook-form: v6-convert-as-to-render: fieldset -> field

2023.06.08, v29.12.4

feature:

  • bc8b5dfbb @putout/plugin-convert-typeof-to-is-type: GENERAL
  • 06e1b7ed6 @putout/plugin-putout: check-match: add
  • 30a84b007 @putout/plugin-simplify-assignment: var support
  • 2046af850 package: @putout/plugin-convert-object-entries-to-array-entries v2.0.0
  • 8c9700b4e @putout/plugin-convert-object-entries-to-array-entries: use @putout/printer
  • 8c3a8ecb6 @putout/plugin-convert-object-entries-to-array-entries: drop support of 🐊 < 29
  • cd10d2f1f @putout/plugin-convert-object-entries-to-array-entries: templates
  • a51fc987f @putout/plugin-putout: check-match: add
  • b79256872 @putout/engine-parser: template: add ability to parse expression
  • 2b26b974b @putout/plugin-react-hook-form: v6-convert-as-to-render: add support of name, onChange
  • cf35764c6 @putout/plugin-appy-destructuring: falsy: add
  • eaa6c501c @putout/plugin-react-hook-form: v7-apply-form-state: false positives
  • fb36bf49d @putout/plugin-cloudcmd: convert-load-dir-to-change-dir: simplify
  • d4d7bf1c3 @putout/opreate: rename: add support of no bindings
  • 5823233ab @putout/plugin-react-hook: v6-convert-trigger-validation-to-trigger: improve
  • 8dbdeafd9 @putout/operate: rename: improve support of deep rename
  • b6fb17155 @putout/plugin-react-hook-form: improve support of v6-convert-trigger-validation-to-trigger
  • c0b21210f eslint-plugin-putout: multiple-properties-destructuring: do not count ImportDefaultSpecifier
  • d8aa5f4bc @putout/eslint: create-plugin: add ability to pass 'options' to 'filter()'

2023.06.06, v29.12.3

feature:

  • cbbdbb1fc package: @putout/plugin-merge-destructuring-properties v8.0.0
  • 092a973e4 @putout/plugin-merge-destructuring-properties: drop support of 🐊 < 29

2023.06.06, v29.12.2

feature:

  • 2fa1f0396 package: @putout/plugin-convert-esm-to-commonjs v6.0.0
  • 445b85b77 @putout/plugin-convert-esm-to-commonjs: drop support of 🐊 < 29
  • f1776923a @putout/plugin-putout: check-replace-code: add support of argsa
  • 3102231e5 @putout/compare: isLinkedId: improve support

2023.06.05, v29.12.1

feature:

  • a70c3d9eb package: @putout/plugin-convert-array-copy-to-slice v3.0.0
  • f22597d5d @putout/plugin-convert-array-copy-to-slice: drop support of node < 16
  • 8c84d5a91 @putout/plugin-convert-array-copy-to-slice: use @putout/printer
  • d3e57f1b0 @putout/plugin-minify: mangle-names: add ability to configure with mangleClassNames

2023.06.05, v29.12.0

fix:

  • 522a8e577 @putout/pminify: mangle-names

feature:

  • f74bf5401 package: @putout/plugin-remove-useless-arguments v7.0.0
  • 47fff1790 @putout/plugin-remove-useless-arguments: drop support of 🐊 < 29
  • e5ab8cc0d @putout/plugin-remove-useless-arguments: report: Remove -> Avoid
  • 0b8a342c1 @putout/plugin-remove-useless-arguments: destructuring: add support of second ObjectPattern
  • f7f65c68b package: nano-memoize v3.0.11
  • 1a23372f1 @putout/plugin-minify: remove-var-undefined
  • dcbed5aa3 @putout/plugin-minify: mangle-names: imporve compute-name
  • 2088a816a @putout/plugin-minify: mangle-names: shorteer
  • 36384a789 @putout/plugin-minify: mangle-names: improve overlap handling
  • 1c0d2868a @putout/plugin-mangle-names: filter: add

2023.06.03, v29.11.1

feature:

  • b66a2572f package: @putout/plugin-convert-apply-to-spread v4.0.0
  • 05bae2435 @putout/plugin-convert-apply-to-spread: drop support of node < 16
  • 4047516f3 @putout/plugin-convert-assert-to-with

2023.06.03, v29.11.0

feature:

  • dea4b68d1 putout: exit-codes: --staged: add CANNOT_LINT_STAGED
  • 31c597a47 @putout/engine-parser: babel plugins: add back support of assert in ImportDeclartations
  • a2e019aab @putout/plugin-minify: mangle-names: get back old behaviour since it is more optimal
  • fd7535350 @putout/plugin-minify: mangle-names: use index of scope instead of global counter
  • 885caad0f @putout/engine-parser: add support of import attributes (https://babeljs.io/blog/2023/05/26/7.22.0#import-attributes-15536-15620)
  • 8b3492fb8 @putout/engine-parser: babel: plugins: remove enabled by default
  • 825f6919a @putout/plugin-new: remove-useless: add TypeError
  • be9c83b11 @putout/plugin-minify: expand-bindings: keep only Identifiers
  • 3b3f6f9c4 @putout/plugin-minify: expand-variables: add
  • 550493d90 @putout/plugin-minify: convert-strict-equal-to-equal: add
  • 9150cce3e @putout/plugin-types: use @putout/printer
  • d29eb0bd7 @putout/plugin-types: convert-typeof-to-is-type: improve support of node var binding
  • 47af1a29a @putout/plugin-minify: shorten-names: improve support of freeze, defineProperty
  • cc6f5f577 @putout/engine-runner: store: uplist: check node
  • 806d1a483 @putout/plugin-minify: shorten-name
  • 41dccd651 @putout/plugin-minify: shorten-names: improve support
  • 72990c057 @putout/plugin-minify: merge-variables: add
  • 0195c179d @putout/plugin-minify: convert-const-to-var: add
  • 9edb1d2c8 @putout/plugin-minify: shorten: add ability to check printed
  • ada9b57a2 @putout/plugin-minify: shorten-names: declared
  • b1ff89935 @putout/plugin-minify: shorten names: add

2023.05.30, v29.10.1

feature:

  • 6ba50e15b package: @putout/plugin-convert-arguments-to-rest v2.0.0
  • 7b802861c @putout/plugin-convert-arguments-to-reste: use @putout/printer
  • db0627645 @putout/plugin-convert-arguments-to-reste: report
  • f9155a5de @putout/plugin-convert-arguments-to-rest: drop support of 🐊 < 29
  • 280ed412c @putout/plugin-minify: mangle-names: simplify
  • 7ad0230ec @putout/plugin-cloudcmd: use @putout/printer
  • de569a19d @putout/plugin-cloudcmd: drop support of 🐊 < 29
  • bdf015905 @putout/plugin: use operator.rename
  • eba4bf6de @putout/plugin-react-router: convert-switch-to-routes: simplify
  • e25d371ca @putout/operate: rename: apply shorthand
  • 046f4400a @putout/plugin-react-hook-form: drop support of 🐊 < 29
  • c81a3c229 @putout/plugin-react-hook-form: use operator.rename
  • a668addfc @putout/plugin-putout: use rename from operator
  • 2a59b6d64 @putout/plugin-putout: declare: add rename, renameProperty
  • 2cdcd0bb0 @putout/operate: rename: add
  • 4827d77af @putout/operate: renameProperty: add

2023.05.29, v29.10.0

fix:

  • 6312e790e putout: hang --staged (isomorphic-git/isomorphic-git#1768)

feature:

  • 664e07e20 @putout/plugin-react-router: v2
  • 4c686c97c @putout/plugin-react-router: drop support of 🐊29
  • 118293767 @putout/plugin-react-router: applies changes according to printer
  • e64aa4e0b package: @putout/compare v10.0.0
  • d8ef6f389 package: @putout/traverse v6.0.0
  • 2e0968f95 package: @putout/compare v10.0.0
  • 1b2e2cfb6 package: @putout/compare v10.0.0
  • d753a5a65 package: @putout/compare v10.0.0
  • b939822fa package: @putout/compare v10.0.0
  • c1a8a9eb2 package: @putout/engine-loader v9.2.0
  • 0bdbd751f package: @putout/engine-parser v6.2.0
  • 9da482947 package: @putout/engine-parser v6.2.0
  • 7411ef928 @putout/compare: setValues: improve support of TemplateElement
  • 80a313afb @putout/plugin-minify: mangle-names: add support of a very big count of variables
  • bbf78df1b @putout/plugin-minify: extract-body: improve support of ObjectMethod
  • 2741d1149 @putout/plugin-github: set-coveralls-version: add (coverallsapp/github-action#2)
  • ffdef0444 @putout/plugin-minify: mangle-names: process scope once
  • 516c1e427 @putout/minify: mangle-names: add ability to check upper scope
  • f2e01f9ec @putout/plugin-minify: mangle-names: Identifier inside ObjectProperty (babel/babel#15648)
  • a5c8892d3 @putout/plugin-minify: extract-body: exclude try-catch
  • c3f8b2392 package: eslint-plugin-n v16.0.0

2023.05.24, v29.9.0

fix:

  • fca416aac @putout/plugin-printer: remove-args
  • 76ac50697 @putout/plugin-=minify: convert-if-to-logical: AssignmentExpression support

feature:

  • e1857c88c package: @putout/plugin-remove-useless-else v2.0.0
  • d01c45590 @putout/plugin-remove-useless-else: drop support of 🐊 < 19
  • e77a9fa4e @putout/plugin-remove-useless-else: use @putout/printer
  • 217576d50 @putout/plugin-minify: convert-if-to-logical: add support of ternary expression
  • 69fce3014 @putout/plugin-minify: apply-ternary: add
  • e8858e4a8 @putout/plugin-printer: remove-args: add support of maybe.print.space
  • a19fb2ff1 @putout/plugin-minify: extract-body: add
  • e7e7e2fb7 @putout/plugin-minify: add support of ForOfStatement
  • 7f767ef0a @putout/plugin-minify: convert-if-to-logical: exclude AssignmentExpression (coderaiser/minify#100)
  • a20679740 @putout/plugin-conditions: remove-zero: add

2023.05.18, v29.8.3

feature:

  • ad66fa1d8 package: @putout/plugin-convert-to-arrow-function v4.0.0
  • 64a31d1d7 @putout/plugin-convert-to-arrow-function: add support of FunctionExpression used as argument of CallExpression
  • db759c2c1 @putout/plugin-convert-to-arrow-function: use @putout/printer
  • 654ce7a18 @putout/plugin-convert-to-arrow-function: drop support of node < 16
  • b98a62bb7 @putout/plugin-convert-to-arrow-function: report
  • 33064b8c1 @putout/plugin-minify: types: typeof not equal

2023.05.18, v29.8.2

feature:

  • 3059b0b13 package: @putout/plugin-regexp v7.0.0
  • a07d4df9a @putout/plugin-regexp: use @putout/printer
  • 32dfe8339 @putout/plugin-regexp: drop support of 🐊 < 29
  • cbfaa37b4 @putout/plugin-regexp: use @putout/printer

2023.05.18, v29.8.1

feature:

  • 484a810f6 package: @putout/plugin-new v2.0.0
  • 5797255bb @putout/plugin-new: use @putout/printer
  • 637645d4f @putout/plugin-new: new -> index
  • 0c6220887 @putout/plugin-new: drop support of 🐊 < 29
  • 02b24e6dc @putout/plugin-minify: types: add support of constructors
  • a20d1514e @putout/plugin-minify: types: boolean: exclude BinaryExpressions

2023.05.17, v29.8.0

feature:

  • d8b4dea6f @putout/plugin-remove-unused-expressions: use isSimple from operate
  • 08ba21783 @putout/plugin-putout: declare: operate: isSimple: add
  • 78dc29851 @putout/opreate: isSimple: add
  • a88378217 @putout/plugin-logical-expressions: simplify: add support of ExpressionStatement
  • f349bb539 package: @putout/plugin-remove-unused-expressions v6.0.0
  • e8323e469 @putout/plugin-remove-unused-expressions: drop support of 🐊 < 29
  • 9d483a403 @putout/plugin-remove-unused-expressions: add support of LogicalExpressions
  • 9819c33e0 @putout/plugin-minify: add support of couple ExpressionStatements inside IfStatement consequence BlockStatement body
  • da3ba7d76 @putout/plugin-simplify-ternary: value: add support of OptionalChaining
  • ef66d505c @putout/plugin-minify: convert-if-to-logical: add
  • fcc8f3fd2 @putout/compare: vars: improve replacing ExpressionStatement to Expression
  • bd37e8326 @putout/plugin-minify: types: add
  • 315a20b29 @putout/plugin-minify: mangle-names: add
  • 06548d6bf @putout/plugin-apply-template-literals: exclude TemplateLiteral in the middle of BinaryExpression
  • bc067dc3e @putout/engine-parser: flow: autodetect: only on the beginning
  • a7e67d496 @putout/engine-loader: add ability to pass babel plugin implemintation
  • 6acb3e199 @putout/plugin-apply-template-literals: exclude 3 string literals binary expression
  • fc9271ae6 @putout/plugin-conditions: remove-boolean: simplify

2023.05.12, v29.7.1

feature:

  • 55956b4f3 package: @putout/plugin-remove-useless-return v5.0.0
  • 1cbf50a95 @putout/plugin-remove-useless-return: drop support of 🐊 < 29
  • ed064bcb5 @putout/plugin-remove-useless-return: drop support of node < 16
  • b8c4473bb @putout/plugin-remove-useless-return: report

2023.05.12, v29.7.0

feature:

  • cf3b7a3dc package: @putout/engine-loader v9.0.0
  • 3362cacf8 @putout/engine-loader: add support of globally installed modules (coderaiser/minify#96)
  • 9947bd2f8 package: @putout/engine-parser v6.1.0
  • e71b5a9d4 @putout/plugin-remove-unused-variables: add support of computed ObjectProperty inside Function params ObjectPattern

2023.05.11, v29.6.0

fix:

  • 7ea68535e @putout/printer: remove-args: exclude print

feature:

  • 6789b29a2 package: @putout/plugin-promises v10.0.0
  • 02d91f215 @putout/plugin-promises: drop support of 🐊 < 29
  • 73efe5c19 @putout/plugin-promises: use @putout/printer
  • fbd92cdfb @putout/plugin-promises: remove-useless-await: exclude optional chaining
  • ae56b259a package: @putout/plugin-apply-destructuring v7.0.0
  • cf0fee1c3 @putout/plugin-apply-destructuring: drop support of 🐊 < 29
  • 086565a20 @putout/plugin-apply-destructuring: use @putout/printer
  • f3de3bdac @putout/plugin-apply-destructuring: array: exclude first element assignment
  • 0799f46ac @putout/plugin-remove-unused-variables: mark as used all properties before RestElement
  • 4103880ba @putout/plugin-remove-unused-variables: improve support of destructuring assignment
  • b0dbeb0f2 @putout/plugin-minify: add
  • 0600ed687 @putout/engine-parser: add ability to pass options to @putout/printer (#144)
  • 26539236e @putout/plugin-printer: remove-args: improve args check
  • 1eb0b3d9b @putout/plugin-printer: enable remove-args
  • 00b577829 @putout/plugin-remove-empty: pattern: add support of var
  • ca9ddf1ff @putout/plugin-printer: remove-args: add support of maybe

2023.05.08, v29.5.1

feature:

2023.05.07, v29.5.0

fix:

  • 1757c6ae1 @putout/plugin-convert-optional-to-logical: rm comment

feature:

  • f60550be7 package: escover v3.2.2
  • 37d740eaa putout: improve support of @putout/printer: shebang
  • 20f19c8ed @putout/operate: compute: exclude reassigned ObjectExpressions (#140)
  • acf836d68 @putout/plugin-convert-optional-to-logical: simplify
  • 7ee4cc264 @putout/plugin-convert-optional-to-logical: add
  • cc80a96c9 @putout/plugin-putout: create-test: add support of ESM

2023.05.03, v29.4.1

feature:

  • 28d0f1b4e package: @putout/plugin-apply-template-literals v2.0.0
  • 17b92de5f @putout/plugin-apply-termplate-literlas: drop support of 🐊 < 29
  • 88bb5cac1 @putout/plugin-apply-template-literals: add support of CallExpression inside TemplateLiteral

2023.04.28, v29.4.0

fix:

  • 3b614c780 @putout/engine-runner: do not recreate missing 'node' in 'path' because it used to determine existense of path in AST

feature:

  • 092c82fb3 package: @putout/engine-runner v16.0.0
  • 8a82eec71 package: @putout/engine-parser v6.0.0
  • 47cb1135d @putout/printer: apply-linebreak: add support of 'indent()', 'write.indent()'
  • 57f285618 @putout/printer: apply-breakline: add support of 'indent()', 'write.indent()'
  • cfb86c9f6 @putout/plugin-react-hooks: remove-react: add
  • 398d0a694 @putout/plugin-putout: improve support of replace-test-message: value -> value, raw
  • 06d07106f @putout/processor-html: use @putout/printer
  • 01888d82d @putout/processor-html: drop support of 🐊 < 29
  • faa704f38 package: @putout/processor-css v7.0.0
  • be7d5da48 @putout/plugin-remove-unused-variables: use @putout/printer
  • a9864ff23 @putout/plugin-remove-unused-variables: improve support of RestElement in ObjectPattern of AssignmentPattern

2023.04.25, v29.3.0

feature:

  • b2af4c19b package: @putout/plugin-merge-duplicate-imports v9.0.0
  • 380d7a771 @putout/plugin-merge-duplicate-imports: drop support of 🐊 < 29
  • 8ab240af7 @putout/plugin-merge-duplicate-imports: use @putout/printer
  • 0397f2768 package: @eslint/eslintrc v2.0.2
  • 6371b6c1d package: typescript v5.0.4
  • 4f12e8014 package: @putout/engine-parser v6.0.0
  • 82b651f6a package: @putout/engine-processor v7.0.0
  • a20a5fc94 package: @putout/engine-loader v8.1.0
  • 8506675e8 package: @putout/processor-css v7.0.0
  • ef9019178 @putout/processor-css: drop support of 🐊 < 29
  • ddda321f6 package: stylelint-config-standard v33.0.0
  • 712736d07 package: stylelint v15.6.0
  • a09971b90 @putout/processor-css: use @putout/printer
  • ef4ea8d86 package: yaml v2.2.2 (https://security.snyk.io/vuln/SNYK-JS-YAML-5458867)
  • 2821594aa @putout/plugin-printer: add
  • 1096958c5 @putout/plugin-remove-iife: simplify
  • f78c2dd3b @putout/engine-runner: add ability to handle case where Statement put in place of Expression

2023.04.21, v29.2.5

fix:

  • 903adc958 @putout/eslint: create-plugin: createGetSpaceBeforeNode -> createGetSpacesBeforeNode

feature:

  • b5f7edc97 package: @putout/plugin-github v5.0.0
  • 64492ce4b @putout/plugin-github: use @putout/printer
  • 2194abd6f @putout/plugin-github: drop support of 🐊 < 29
  • 94a047988 @putout/plugin-github: set-node-versions: add support of node v20
  • 115d87438 eslint-plugin-putout: safe: disable maybe/noop
  • 2a8fcf237 @putout/plugin-maybe: apply @putout/printer
  • d21b72024 @putout/processor-markdown: use @putout/printer
  • 8cfba34d8 @putout/plugin-typescript: use @putout/printer
  • 06e5c18fd @putout/operator-add-args: improve declare of arguments
  • c5b045452 eslint-plugin-putout: jsx: disable no-extra-parens
  • 45d2212c0 @putout/plugin-react-hook-form: use @putout/printer
  • e3370c1be package: @putout/engine-parser v6.0.0
  • c3e4e7a33 @putout/test: eslint: noProcess: add ability to override
  • 25351d404 @putout/engine-loaders: improve validation message: ☝️ Looks like plugin name type is not 'string', but: 'function'
  • df76013a0 @putout/plugin-putout: create-test: add support of shorthand property

2023.04.09, v29.2.4

fix:

  • 0b24d68f2 @putout/processor-markdown: drop newline at eof of JSON

feature:

  • e8d1ada1f package: @putout/processor-markdown v9.0.0
  • ef1a5a8ca @putout/processor-markdown: drop support of 🐊 < 29
  • f732db953 package: @putout/processor-json v6.0.1
  • 9a40166c7 @putout/processor-json: add newline at eof when missing

2023.04.07, v29.2.3

feature:

  • c771cd99a package: @putout/processor-yaml v5.0.0
  • 575f41e09 @putout/processor-yaml: drop support of 🐊 < 29

2023.04.07, v29.2.2

fix:

  • d5cb1718d @putout/plugin-putout: create-test: add: array of tuples
  • 85b44a414 @putout/test: noTransform: update source fixtures

feature:

  • 69324e88f package: @putout/processor-ignore v4.0.0
  • ad4ef3be2 package: @putout/processor-json v6.0.0
  • a4abdc2ac eslint-plugin-putout: json: \n eof, markdown: never \n eof
  • e9b093570 @putout/processor-json: drop support of 🐊 < 29
  • 74889c2a7 @putout/processor-ignore: add \n at eof
  • 892fb2a66 @putout/processor-json: add \n at eof
  • 4f4042b31 @putout/printer: create-test: add
  • df545f3dc @putout/operator-add-args: report quotes

2023.04.06, v29.2.1

fix:

  • 57300440e putout: printer

feature:

  • ffbc87d77 @putout/test: add ability to pass options
  • ad3d99815 @putout/test: add ability to pass options
  • 339f9e4a5 @putout/plugin-remove-empty: import: report
  • e076e3d45 @putout/test: add support of PUTOUT_PRINTER

2023.04.04, v29.2.0

feature:

  • 94717fe16 package: @putout/engine-parser v6.0.0
  • 875c96303 @putout/egine-parser: add ability to override printer and use: babel or putout instead of recast

2023.04.03, v29.1.14

feature:

  • 7338e39e3 package: @putout/plugin-simplify-ternary v5.0.1
  • 0cb227d0a @putout/plugin-simplify-ternary: exclude fixture
  • 36d691997 @putout/plugin-simplify-ternary: drop support of 🐊 < 29
  • d87230d33 @putout/plugin-simplify-ternary: value: exclude jsx

2023.04.01, v29.1.13

feature:

  • 959aa22e0 package: @putout/plugin-logical-expressions v2.0.0
  • 6a608aaf3 @putout/plugin-logical-expressions: drop support of 🐊 < 29
  • 4bc538c94 @putout/plugin-logical-expressions: simplify: add suport of not equal negation

2023.04.01, v29.1.12

fix:

  • 5dfaf00cc @putout/test: write source fixture

feature:

  • 332aac4ae putout: @putout/plugin-extract-object-properties v9.0.0
  • c25364a05 2putout/plugin-extract-object-properties: report
  • 993f8d41e @putout/plugin-extract-object-property: drop support of 🐊 < 29
  • b60725045 @putout/plugin-extract-object-properties: not-equal-deep: replace with Identifier -> ObjectProperty
  • caa806cde @putout/test: add ability to update source fixtures
  • 217d34d10 @putout/operator-add-args: improve support of FunctionDeclaration pattern
  • d7492eda8 @putout/plugin-remove-empty: argument: add support of ObjectMethod

2023.03.30, v29.1.11

feature:

  • a1f3ef403 @putout/plugin-convert-object-entries-to-array-entries: exclude index with different name
  • 3cb0b1a42 @putout/plugin-convert-object-entries-to-array-entries: exclude '=='
  • 1ece7961b @putout/plugin-convert-object-entries-to-array-entries: add
  • 17d9a6968 @putout/plugin-math: declare: add
  • d2e27da98 eslint-plugin-putout: json: eol-last: off -> never

2023.03.29, v29.1.10

fix:

  • b48f75885 @putout/plugin-convert-index-of-to-includes: drop if case because of false positives

feature:

  • acf0e05b5 package: @putout/plugin-convert-index-of-to-includes v2.0.0
  • c844f599f @putout/plugin-convert-index-of-to-includes: drop suppor of node < 16
  • d51507434 @putout/plugin-convert-index-of-to-includes: drop suppor of 🐊 < 29
  • 2c07c964d @putout/plugin-convert-index-of-to-includes: add support of IfStatement

2023.03.29, v29.1.9

feature:

  • c6688e2cd package: @putout/plugin-eslint v5.0.0
  • 79cccc6e6 @putout/plugin-eslint: report
  • 890555573 @putout/plugin-eslint: drop supprot of 🐊 < 29
  • 05f8d86a2 @putout/plugin-eslint: improve support of @putout/printer
  • ac59d191f eslint-plugin-putout: markdown: eol-last: off -> never

2023.03.29, v29.1.8

feature:

  • 933b6e140 package: @putout/plugin-apply-optional-chaining v3.0.0
  • 2c0c05716 @putout/plugin-apply-optional-chaining: improve support of OptionalCallExpression
  • 9e32bcb26 @putout/plugin-apply-optional-chaining: drop support of node < 16
  • 59c9e093c @putout/plugin-apply-optional-chaining: drop support of 🐊 < 29
  • d00e74d0e @putout/plugin-apply-optional-chaining: report
  • e29d8acf6 @putout/plugin-types: add isEmptyString
  • 9242889dc @putout/plugin-for-of: map: print() -> path.toString()

2023.03.27, v29.1.7

feature:

  • 4b322453b package: @putout/plugin-remove-console v6.0.0
  • d002ee9b5 @putout/plugin-remove-console: report
  • 44a79ead7 @putout/plugin-remove-console: drop support of 🐊 < 29

2023.03.26, v29.1.6

fix:

  • f426420c3 @putout/plugin-declare: is-type moved out to @putout/types

feature:

  • f91242abc package: @putout/plugin-remove-unused-variables v5.0.0
  • 3e3c3cda5 @putout/plugin-remove-unused-variables: drop support of 🐊 < 29
  • 0f1e5dd41 @putout/plugin-remove-unused-variables: simplify
  • 167cde6a3 package: @putout/plugin-remove-empty v10.0.0
  • 0f1b3c5df @putout/plugin-remove-empty: drop support of 🐊 < 29
  • 6c548ab8f @putout/plugin-remove-empty: improve support of nullable ArrayPatterns
  • 4e7233145 @putout/for-of: remove-unused-variaables: improve support of ArrayPattern
  • abb7a2675 @putout/operate: improve support of second argument of ArrayPattern
  • 68920b983 @putout/plugin-for-of: remove-unused-variables: improve support of ArrayPattern
  • 9c0cf5f64 @putout/operate: improve support of removing element from ArrayPattern
  • 66181e20d @putout/operator-add-args: exclude UnaryExpression
  • 090efa26e @putout/operator-add-args: exclude AssignmentExpression
  • 496e0b85d @putout/operator-add-args: exclude VariableDeclarator
  • e15c01803 @putout/operator-add-args: add support of MemberExpression

2023.03.18, v29.1.5

feature:

  • 6adc077ac package: @putout/operator-add-args v4.0.0
  • 352439951 @putout/operator-add-args: drop support of 🐊 < 29
  • 1d1d4a847 @putout/operator-add-args: add support of nested blocks
  • 23367b9d7 @putout/operator-add-args: add support of not first ObjectPattern argument
  • ce0207674 eslint-plugin-putout: safe: disable apply-template-literals, no-implicit-coercion

2023.03.12, v29.1.4

feature:

  • cfccc2c43 package: @putout/eslint v2.0.0
  • e9da39690 package: @putout/eslint v2.0.0
  • 026d81cb3 package: @putout/eslint v2.0.0
  • 037295077 @putout/eslint: getSpacesAfterNode: args
  • cb6e8628b @putout/eslint: getSpacesAfterNode: revert args
  • 11e9d33dd @putout/eslint: getSpacesAfterNode: args
  • 9dfae727d eslint: create-plugin: getSpacesAfterNode: add check for last node in body

2023.03.12, v29.1.3

feature:

  • 448e94467 package: @putout/plugin-remove-useless-variables v8.0.0
  • 979cee8b6 @putout/plugin-remove-useless-variables: drop support of 🐊 < 29
  • 9f0b4d201 @putout/for-of: add for-of from remove-useless-variables
  • 2590ee03b @putout/plugin-for-of: merge remove-useless-array-from
  • 1c3adfff5 eslint-plugin-putout: drop support of 🐊 < 29
  • 650683278 package: eslint-plugin-putout v17.0.0
  • 8a5b6b67a @putout/plugin-for-of: add

2023.03.11, v29.1.2

feature:

  • a660083be @putout/plugin-for-of: add

2023.03.11, v29.1.1

fix:

  • f261f1541 @putout/plugin-maybe: package: link

feature:

  • 94706eee5 @putout/plugin-conditions: add

2023.03.11, v29.1.0

feature:

  • 90981cc37 @putout/plugin-merge-duplicate-imports: add

2023.03.10, v29.0.15

feature:

  • 447110c82 @putout/plugin-types: merge apply-is-array

2023.03.10, v29.0.14

feature:

  • 091532bbf @putout/plugin-types: merge @putout/plugin-remove-useless-typeof

2023.03.10, v29.0.13

feature:

  • 33d82db22 @putout/plugin-types: merge remove-useless-type-conversion

2023.03.10, v29.0.12

feature:

  • dabe27086 package: @putout/plugin-types v1.1.0
  • 98a95d13b @putout/plugin-types: merged convert-typeof-to-is-type

2023.03.10, v29.0.11

fix:

  • 398618f5a @putout/plugin-simplify-assignment: exclude ReturnStatement (#133)

feature:

  • c231ad883 package: @putout/plugin-simplify-assignment v3.0.0
  • fa88a5277 @putout/plugin-simplify-assignment: drop support of 🐊 < 29

2023.03.10, v29.0.10

fix:

  • 794a3ab73 @putout/plugin-putout: apply-declare: report

feature:

  • ea0a34ad7 package: @putout/plugin-madrun v15.0.0
  • e822a27e1 @putout/plugin-madrun: declare: convert to Declarator
  • 2d8a38028 package: @putout/plugin-nodejs v6.0.0
  • 71eea872c @putout/plugin-nodejs: declare: convert to Declarator
  • abb03a4c7 package: @putout/plugin-montag v2.0.0
  • fad51cfc9 @putout/plugin-montag: declare: convert to Declarator
  • 4a43a3bda package: @putout/plugin-try-catch v2.0.0
  • 47bf644ef @putout/plugin-try-catch: declare: convert to Declarator
  • 8be28e430 @putout/plugin-react-hooks: declare: convert to Declarator
  • d2893125a @putout/plugin-putout: apply-declare: add

2023.03.10, v29.0.9

fix:

  • 0d74ddb9d @putout/operator-declare: report

feature:

  • 6b6570a25 package: @putout/plugin-tape v11.0.0
  • 99d951d6d @putout/plugin-tape: declare: migrate to Declaration
  • 4b1fcaae3 package: @putout/plugin-remove-iife v4.0.0
  • 83abe018d @putout/plugin-remove-iife: exclude VariableDeclarator (#133)

2023.03.10, v29.0.8

fix:

  • 919290247 @putout/operator-declare: report

feature:

  • 16db04f0b package: @putout/plugin-remove-iife v4.0.0
  • e0b3f0e61 @putout/plugin-remove-iife: exclude VariableDeclarator (#133)

2023.03.10, v29.0.7

fix:

  • 39a973e5c @putout/plugin-declare-before-reference: exclude ExportNamedDeclaration (#134)

feature:

  • 9eca8816c package: @putout/plugin-declare-before-reference v2.0.0
  • aff993608 @putout/plugin-declare-before-reference: drop support of 🐊 < 29
  • d1743b555 @putout/plugin-declare-before-reference: drop support of node < 16

2023.03.10, v29.0.6

feature:

  • 0af80e51a package: @putout/operator-declare v5.0.0
  • b306cf6fe package: @putout/operator-declare v5.0.0
  • 62f3355ae package: @putout/engine-loader v8.0.0
  • 3a4a99b07 package: @putout/engine-runner v15.0.0
  • 017bb3ba0 package: @putout/test v6.0.0
  • f89823aab @putout/plugin-declare: convert to Declarator
  • a0c7d1682 @putout/types: add
  • 39901c763 @putout/test: add support of Declarator
  • b5b4d0001 @putout/plugin-declare: move out is-type to types/declare
  • 9fb14536d @putout/operator-declare: require: putout -> @putout/engine-parser, @babel/types
  • d15347e94 @putout/engine-loader: add support of Declarator
  • 3ded80721 @putout/engine-runner: add support of Declarator

2023.03.09, v29.0.5

feature:

  • f8d2d4a61 @putout/plugin-apply-at: renamed from @putout/plugin-apply-array-at
  • f1e893dd5 @putout/plugin-declare: move maybe to @putout/plugin-maybe
  • 5a9d4720d @putout/plugin-maybe: add declare
  • f06ae34bc (package) @putout/plugin-math v2.0.0
  • f4f5b8850 @putout/plugin-math: drop support of 🐊 < 29
  • f75bf9d5e @putout/plugin-math: apply-numeric-separators: exclude octal
  • 627f861f6 (package) @putout/plugin-package-json v5.0.0
  • 917b39038 @putout/plugin-package-json: drop support of 🐊 < 29
  • 05b0fd7a8 @putout/plugin-package-json: remove-commit-type: add

2023.03.08, v29.0.4

feature:

  • 5492a6459 (package) @putout/plugin-math v2.0.0
  • d46d5778a @putout/plugin-math: drop support of 🐊 < 29
  • 0e789e6d9 @putout/plugin-math: apply-numeric-separators: exclude octal

2023.03.08, v29.0.3

feature:

  • 61ffcfb57 (package) @putout/plugin-package-json v5.0.0
  • 54f52f4cf @putout/plugin-package-json: drop support of 🐊 < 29
  • f6dbfeac3 @putout/plugin-package-json: remove-commit-type: add

2023.03.07, v29.0.2

feature:

  • e4e4435b3 @putout/plugin-maybe: renamed from @putout/plugin-apply-maybe
  • be39dd68a eslint-plugin-putout: array-element-newline: exclude arrays with string and number

2023.03.06, v29.0.1

feature:

  • eslint-plugin-putout: single-property-destructuring: exclude AssignmentPattern used as value of ObjectPatterns Property
  • package: @putout/plugin-putout v12.0.0
  • @putout/plugin-putout: drop support of 🐊 < 29
  • @putout/plugin-declare: renamed from @putout/plugin-declare-undefined-variables

2023.03.06, v29.0.0

feature:

  • package: @putout/plugin-merge-destructuring-properties v7.0.0
  • @putout/plugin-merge-destructuring-properties: drop support of 🐊 < 28
  • @putout/plugin-merge-destructuring-properties: drop support of node < 16
  • @putout/plugin-merge-destructuring-properties: exclude ObjectPattern with RestElement
  • @putout/plugin-math: apply-numeric-separators: exclude float

2023.03.06, v28.19.2

feature:

  • package: @putout/plugin-remove-useless-type-conversion v3.0.0
  • @putout/plugin-remove-useless-type-conversion: drop support of 🐊 < 28
  • @putout/plugin-remove-useless-type-conversion: with-double-negations: exclude jsx expressions
  • eslint-plugin-putout: array-element-newline: 30 characters -> includes ","
  • eslint-plugin-putout: array-element-newline: exclude to long lines with lots of spaces
  • @putout/plugin-apply-maybe: avoid transforming declarations

2023.03.05, v28.19.1

fix:

  • RECAST instead of --recast

2023.03.05, v28.19.0

fix:

  • @putout/formatter-memory: add one more \n to output
  • @putout/formatter-memory: add \n in output
  • @putout/formatter-memory: drop comma
  • @putout/plugin-math: apply-numeric-separators: get back 5 digits min
  • @putout/engine-parser: print: switch to babel/generate only when recast break code
  • @putout/plugin-split-nested-destructuring: property instead of source

feature:

  • putout: add --recast option
  • putout: add ability to avoid using recast when fix false
  • @putout/engine-parser: add ability to disable recast
  • eslint-plugin-putout: add-newline-before-function-call: add support of Program body
  • @putout/eslint: createPlugin: improve getSpacesBeforeNode: first node in Program body
  • @putout/test: processor: improve support of UPDATE
  • eslint-plugin-putout: add support of jsx
  • eslint-plugin-putout: array-element-newline: improve support of ArrayExpressions full of Literals with length < 5
  • @putout/test: formatMany: when UPDATE used pass
  • @putout/operate: replaceWith, replaceWithMultiple: improve handling of BlockStatement
  • @putout/formatter-memory: move out maybeZero
  • @putout/engine-parser: switch balanced brackets check to parse
  • @putout/test: when format used with UPDATE pass
  • @putout/formatter-memory: add support of time
  • @putout/plugin-math: apply-numeric-separators: exclude 1e9
  • @putout/engine-parser: try to use babel/generate, when recast produces broken code with additional brace (https://github.com/benjamn/recast/issues/1248)
  • @putout/operator-declare: rm dead code
  • @putout/plugin-promises: remove-useless-await: exclude optional chaining call
  • @putout/plugin-split-nested-destructuring: exclude cases where couple properties used

2023.03.02, v28.18.0

feature:

2023.02.23, v28.17.0

feature:

  • package: @putout/plugin-apply-destructuring v6.0.0
  • @putout/plugin-apply-destructuring: drop support of 🐊 < 28
  • @putout/plugin-apply-destructuring: drop support of node < 16
  • @putout/plugin-apply-destructuring: object: get rid off const a = b.a || c -> const {a = c} = b since it works only for b.a = undefined not for: 0, null, undefined, '', etc
  • eslint-plugin-putout: add remove-empty-newline-between-declarations
  • @putout/plugin-split-nested-destructuring: add support of rename
  • @putout/engine-loader: is-enabled: improve handling of disabled rules of Multirule Plugin
  • package: @putout/recast v1.12.1 (#129)

2023.02.04, v28.16.0

fix:

  • @putout/plugin-regexp: remove-useless-group: report after transform

feature:

  • @putout/plugin-apply-maybe: add
  • @putout/plugin-regexp: apply-literal-notation: report: message
  • @putout/plugin-regexp: apply-literal-notation: improve support of @putout/plugin-remove-useless-escape
  • @putout/plugin-regexp: remove-useless-group: improve support of apply-literal-notation

2023.02.03, v28.15.0

feature:

  • package: @putout/plugin-promises v9.0.0
  • @putout/plugin-promises: drop support of 🐊 < 28
  • @putout/plugin-promises: apply-top-level-await: report: improve message
  • @putout/plugin-promises: apply-top-level-await: exclude not async parent functions

2023.02.02, v28.14.0

feature:

  • package: @putout/plugin-split-nested-destructuring v2.0.0
  • @putout/plugin-split-nested-destructuring: drup support of 🐊 < 28
  • @putout/plugin-split-nested-destructuring: drup support of node < 16
  • @putout/plugin-split-nested-destructuring: exclude declared variables
  • @putout/eslint: add ability to ignore ESLint warnings with NO_ESLINT_WARNINGS
  • @putout/operate: replace, replaceWith: check if node is statement
  • @putout/plugin-convert-for-each-to-for-of: simplify: use default behaviour of replaceWith instead of maybeBody
  • @putout/operate: replaceWithMultiple: add ability to replace Expression with Statement when body of ArrowFunctionExpression is Expression
  • @putout/operate: replaceWith: add ability to replace Expression with Statement when body of ArrowFunctionExpression is Expression

2023.02.01, v28.13.0

feature:

  • @putout/plugin-convert-for-each-to-for-of: package: description
  • @putout/plugin-convert-for-each-to-for-of: drop support of 🐊 < 28
  • @putout/plugin-convert-for-each-to-for-of: drop support of node < 16
  • @putout/plugin-convert-for-each-to-for-of: improve support of 'forEach' used as body of arrow function

2023.02.01, v28.12.0

feature:

  • package: @putout/plugin-remove-useless-continue v2.0.0
  • @putout/plugin-remove-useless-continue: drop support of 🐊 < 28
  • @putout/plugin-remove-useless-continue: drop support of node < 16
  • @putout/plugin-remove-useless-contiue: remove only ContinueStatement

2023.01.30, v28.11.0

feature:

  • package: @putout/plugin-apply-flat-map v2.0.0
  • @putout/plugin-apply-template-literals: add
  • @putout/plugin-putout: check-replace-code: add support of identifiera
  • @putout/compare: comparators: add support of TemplateElements
  • @putout/compare: improve compare of template literals
  • @putout/plugin-apply-flat-map: drop support of 🐊 < 28
  • @putout/compare: improve support of template literals

2023.01.29, v28.10.0

feature:

  • package: @putout/plugin-remove-useless-conditions v3.0.0
  • @putout/plugin-remove-useless-conditions: drop support of 🐊 < 28
  • @putout/plugin-remove-useless-conditions: drop support of node < 16
  • @putout/plugin-remove-useless-conditions: add evaluate

2023.01.29, v28.9.0

fix:

  • @putout/plugin-react-hook-form: v7-apply-form-state: exclude destructuring from formState
  • @putout/plugin-react-hook-form: v7-apply-form-state: check for declarations
  • @putout/compare: _jsxattributes: multiple
  • @putout/operate: extract: throw
  • @putout/plugin-react-hook-form: trim trailing whitespaces
  • @putout/processor-markdown: branch: empty

feature:

  • package: @putout/plugin-webpack v2.0.0
  • @putout/plugin-webpack: drop support of node < 16
  • @putout/plugin-webpack: drop support of 🐊 < 28
  • @putout/plugin-webpack: add apply-externals
  • @putout/plugin-react-hook-form: v7-apply-form-state: add support of couple properties destructuring
  • @putout/plugin-react-hook-form: add v7-apply-form-state
  • @putout/plugin-react-hook-form: add version number
  • @putout/plugin-react-hook-form: convert-form-context-to-form-provider: add support of attributes
  • @putout/plugin-react-hook-form: convert-form-context-to-form-provider: add
  • @putout/plugin-convert-as-to-render: add support of JSXSpreadAttribute
  • @putout/plugin-react-hook-form: add convert-trigger-to-trigger-validation
  • @putout/plugin-react-hook-form: convert-as-to-render: use _jsxattributes: shorten code
  • @putout/compare: _jsxattributes: add support of any count
  • @putout/compare: add support of _jsxattributes
  • @putout/operate: extract: add support of JSXAttribute
  • @putout/plugin-react-hook-form: convert-as-to-render: report
  • @putout/plugin-react-hook-form: add convert-as-to-render

2023.01.23, v28.8.0

feature:

  • package: @putout/processor-markdown v8.0.0
  • @putout/processor-markdown: improve description
  • @putout/processor-markdown: drop support of 🐊 < 28
  • @putout/processor-markdown: ignore empty files
  • @putout/eslint: add support of NO_ESLINT
  • @putout/test: eslint: add support of UPDATE=1
  • @putout/plugin-react-hook-form: add support of apply-clear-errors
  • @putout/plugin-react-hook: add

2023.01.19, v28.7.0

fix:

  • @putout/plugin-remove-iife: report message

feature:

  • package: @putout/plugin-regexp v6.0.0
  • package: @putout/plugin-declare-undefined-variables v8.0.0
  • @putout/plugin-declare-undefined-variables: drop support of 🐊 < 28
  • @putout/plugin-declare-undefined-variables: add support of fullstore
  • @putout/plugin-regexp: remove-useless-regexp: exclude escaped
  • @putout/plugin-regexp: drop support of 🐊 < 28
  • @putout/plugin-remove-iife: exclude SequenceExpression (#127)
  • package: @putout/plugin-remove-iife v3.0.0
  • @putout/plugin-remove-iife: drop support of 🐊 < 28
  • @putout/plugin-remove-iife: improve support of nested iife (#127)

2023.01.18, v28.6.0

fix:

  • @putout/processor-css: get back url quotes
  • @putout/plugin-logical-expressions: simplify: get rid of incorrect optional transformation: a?.b || a -> a?.b'

feature:

  • package: @putout/plugin-remove-iife v3.0.0
  • @putout/plugin-remove-iife: drop support of 🐊 < 28
  • @putout/plugin-remove-iife: improve support of nested iife
  • package: @putout/processor-css v6.2.0
  • @putout/process-html: css
  • @putout/processor-css: improve support of parsing error
  • @putout/plugin-putout: convert-load-dir-to-change-dir: improve support of named properties
  • @putout/processor-css: remove function-url-quotes
  • @putout/plugin-cloudcmd: drop support of 🐊 < 28
  • @putout/plugin-cloudcmd: drop support of node < 16
  • @putout/plugin-cloudcmd: add convert-load-dir-to-change-dir
  • @putout/plugin-nextjs: add convert-page-to-head
  • @putout/compare: __: improve support of jsx
  • @putout/compare: improve support of JSXText between tags
  • @putout/plugin-nextjs: add
  • package: @putout/plugin-merge-duplicate-imports v8.0.0
  • @putout/plugin-merge-duplicate-imports: drop support of 🐊 < 28
  • @putout/plugin-merge-duplicate-imports: improve support of duplicate imports

2023.01.06, v28.5.0

feature:

  • package: @putout/plugin-merge-duplicate-imports v8.0.0
  • @putout/plugin-merge-duplicate-imports: drop support of 🐊 < 28
  • @putout/plugin-merge-duplicate-imports: improve support of duplicate imports

2023.01.06, v28.4.0

fix:

  • @putout/plugin-apply-is-array: description

feature:

  • package: cosmiconfig v8.0.0
  • @putout/plugin-apply-flat-map: add

2022.12.29, v28.3.0

feature:

  • package: nano-memoize v2.0.0
  • @putout/plugin-logical-expressions: simplify: add support of OptionalChaining
  • @putout/plugin-extract-sequence-expressions: add support of IfStatement test (#126)
  • @putout/plugin-remove-unused-variables: add support of SequenceExpressions (#126)

2022.12.26, v28.2.0

feature:

  • package: @putout/plugin-simplify-ternary v4.0.0
  • @putout/plugin-simplify-ternary: drop support of 🐊 < 28
  • @putout/plugin-simplify-ternary: add support of distribute
  • @putout/plugin-apply-if-condition: exclude next empty sibling (#125)
  • package: @putout/recast v1.11.0
  • @putout/plugin-extract-sequence-expressions: add support of await (#124)
  • @putout/plugin-extract-sequence-expressions: exclude call expressions (#124)
  • @putout/plugin-extract-sequence-expressions: when assignment goes after call split into two expressions (#124)
  • @putout/engine-loader: nano-memoize v2
  • @putout/engine-parser: nano-memoize v2
  • @putout/engine-processor: rm unused nano-memoize
  • package: stylelint-config-standard v29.0.0
  • @putout/processor-typescript: drop support of putout < 28
  • package: ts-morph v17.0.1

2022.12.02, v28.1.0

fix:

  • @putout/compare: children -> _jsxchildren

feature:

  • package: @putout/cli-match v2.0.0
  • @putout/cli-match: drop support of node < 16
  • @putout/cli-match: change "match()" return signature: code -> {code, message}
  • @putout/plugin-remove-useless-spread: add support of sparse arrays (#119)
  • @putout/compare: _jsxchildren: improve support
  • @putout/compare: improve support of jsx expressions
  • @putout/compare: improve _jsxchildren support
  • @putout/compare: add support of JSXElement (#116)
  • @putout/engine-parser: template: add support of jsx
  • @putout/engine-runner: replacer: add support of jsx (#116)
  • @putout/compare: add support of JSXText (#116)
  • @putout/operate: extract: add support of JSXText (#116)
  • @putout/plugin-github: create-uses-fixer
  • @putout/plugin-github: add set-add-and-commit (EndBug/add-and-commit#448)
  • @putout/plugin-github: set-setup-node: set v3
  • @putout/plugin-nodejs: set-checkout-version: add support of actions/checkout v3

2022.10.30, v28.0.1

feature:

  • package: @putout/plugin-github v4.0.0
  • @putout/plugin-nodejs: set-node-versions: add support of node v19
  • @putout/plugin-github: drop support of 🐊 < 28

2022.10.20, v28.0.0

feature:

  • @putout/plugin-math: add apply-numeric-separators
  • @putout/plugin-math: add apply-multiplication
  • @putout/plugin-math: add apply-exponentiation
  • @putout/plugin-math: add convert-sqrt-to-hypot
  • putout: add @putout/plugin-math
  • package: lerna v6.0.1
  • @putout/plugin-remove-empty: block: report
  • @putout/plugin-remove-empty: add static-block

2022.09.22, v27.13.0

feature:

  • putout: add .git to ignore

2022.09.21, v27.12.0

feature:

  • putout: add yarn files to ignore
  • @putout/test: processor: add ability to pass processorRunners
  • @putout/engine-runner: improve support of passed processorRunners

2022.09.20, v27.11.0

fix:

  • feature: @putout/processor-css: find()/() -> lint()

feature:

  • @putout/processor-html: drop support of 🐊 < 27
  • package: @putout/processor-css v6.0.0
  • package: @putout/processor-css v6.0.0
  • @putout/processor-css: drop support of 🐊 < 27
  • @putout/processor-css: find()/fix() -> lint()
  • @putout/engine-processor: add support of 'lint()' export in processors
  • @putout/processor-css: disable selector-class-pattern

2022.09.20, v27.10.0

feature:

  • putout: *.md: typescript/remove-unused-types: off

2022.09.20, v27.9.0

feature:

  • package: @putout/plugin-simplify-assignment v2.0.0
  • @putout/plugin-simplify-assignment: report
  • @putout/plugin-simplify-assignment: drop support of 🐊 < 27
  • @putout/plugin-simplify-assignmet: exclude variable declarations
  • package: ts-morph v16.0.0
  • package: stylelint-config-standard v28.0.0
  • package: eslint-plugin-eslint-plugin v5.0.6
  • @putout/plugin-remove-unused-variables: improve support of ObjectPattern property shorthand used with AssignmntPattern
  • @putout/plugin-apply-comparison-order: exclude UpdateExpressions: inc, dec
  • @putout/plugin-exptrace-sequence-expressions: add support of lost args
  • @putout/plugin-remove-useless-parens: improve support of nested TsArrayType
  • @putout/plugin-remove-useless-escape: improve support slash quote
  • @putout/test: pass test when updating the fixture
  • @putout/plugin-remove-useless-arguments: method: exclude getter
  • @putout/plugin-apply-comparison-order: exclude "<<" and ">>"
  • @putout/plugin-apply-comparison-order: reverse ">" and "<"
  • @putout/plugin-remove-useless-arguments: method: TS: add ability to handle ClassProperty
  • @putout/plugin-putout: convert-traverse-to-replace: check for Identifiers in property keys
  • @putout/compare: improve support of argsa (#113)
  • @putout/plugin-remove-iife: arrow: add support of no args
  • @putout/compare: improve support of __body
  • @putout/plugin-remove-iife: add support of any count of args

2022.09.12, v27.8.0

fix:

  • eslint-plugin-putout: flat -> config

feature:

  • package: @putout/plugin-remove-iife v2.0.0
  • @putout/plugin-remove-iife: add support of arrow functions (#113)
  • @putout/plugin-remove-iife: drop support of 🐊 < 27
  • eslint-plugin-putout: config: simplify (eslint/eslintrc/#91)
  • package: supertape v8.0.0
  • @putout/plugin-apply-destructuring: exclude CallExpression with ObjectExpression param
  • package: @babel/parser v7.19.0 (https://babeljs.io/blog/2022/09/05/7.19.0#new-default-values)
  • @putout/eslint: if FlatConfig found pass it to FlatESLint
  • @putout/eslint: add support of FlatESLint (https://eslint.org/blog/2022/08/new-config-system-part-2/)
  • eslint-plugin-putout: add flat
  • @putout/eslint: lint: add support of options
  • @putout/test: eslint: add report, transform
  • @putout/eslint: add lint()
  • @putout/eslint: add 'createPlugin()'

2022.08.28, v27.7.0

feature:

  • @putout/eslint: add
  • package: @putout/eslint v1.0.0

2022.08.27, v27.6.0

fix:

  • @putout/engine-runner: merge-visitors: add ☝️

feature:

  • putout: cli: eslint: move out getESLint
  • @putout/plugin-remove-empty: nested-pattern: Traverser -> Includer
  • @putout/plugin-remove-empty: nested-pattern: add support of ArrayPattern

2022.08.26, v27.5.0

feature:

  • package: @putout/plugin-remove-empty v9.0.0
  • @putout/plugin-remove-empty: apply getRule
  • @putout/plugin-remove-empty: drop support of 🐊 < 27
  • @putout/plugin-remove-empty: add support of nested patterns (#109)

2022.08.25, v27.4.0

feature:

  • package: @putout/plugin-remove-console v5.0.0
  • @putout/plugin-remove-console: drop support of 🐊 < 27
  • @putout/plugin-remove-console: simplify a bit
  • @putout/rule-set-commit-type: add

2022.08.24, v27.3.1

fix:

  • putout: exit codes

2022.08.24, v27.3.0

fix:

  • @putout/plugin-madrun: description

feature:

  • @putout/plugin-logical-expressions: add remove-duplicates
  • @putout/plugin-logical-expressions: add
  • (package) @putout/plugin-simplify-logical-expressions v4.0.0
  • (@putout/plugin-simplify-logical-expressions) merge @putout/plugin-remove-duplicates-from-logical-expressions

2022.08.24, v27.2.0

feature:

  • (package) @putout/plugin-simplify-logical-expressions v4.0.0
  • (@putout/plugin-simplify-logical-expressions) merge @putout/plugin-remove-duplicates-from-logical-expressions
  • (@putout/plugin-convert-const-to-let) improve support of split-variable-declarations
  • (@putout/plugin-extract-object-properties) deep-equal: traverse: path -> initPath
  • (@putout/plugin-declare-imports-first) add support of export from

2022.08.08, v27.1.0

fix:

  • feature: processor-markdown: find, add ability to pass additional plugins from options
  • (eslint-plugin-putout) wrap: add schema
  • (eslint-plugin-putout) putout: schema (close typescript-eslint/typescript-eslint#5420)

feature:

  • (package) @putout/plugin-declare-imports-first v2.0.0
  • (package) @putout/plugin-merge-duplicate-imports v7.0.0
  • (package) @putout/plugin-nodejs v5.0.0
  • (package) @putout/plugin-typescript v3.0.0
  • (package) @putout/engine-runner v14.0.0
  • (@putout/plugin-typescript) drop support of 🐊 < 27
  • (@putout/plugin-typescript) remove-duplicates-from-union: listStore -> pathStore
  • (@putout/test) UPDATE: add support of TypeScript fixtures
  • (@putout/plugin-nodejs) drop support of 🐊 < 27
  • (@putout/plugin-nodejs) declare-after-require: listStore -> pathStore
  • (@putout/plugin-merge-duplicate-imports) listStore -> pathStore
  • (@putout/plugin-merge-duplicate-imports) drop support of 🐊 < 27
  • (@putout/plugin-declare-imports-first) drop support of 🐊 < 27
  • (@putout/plugin-declare-imports-first) listStore -> pathStore
  • (@putout/engine-runner) store: add pathStore: with additional check that path not removed
  • (@putout/plugin-declare-imports-first) improve support of removed ImportDeclarations
  • (@putout/plugin-remove-empty) pattern: improve support of AsyncFunctionExpression
  • (@putout/plugin-remove-nested-blocks) improve support of @putout/plugin-remove-empty
  • (@putout/plugin-remove-empty) improve support of @putout/plugin-remove-unused-for-of-variables
  • processor-markdown: find, fix: add ability to pass additional plugins from options
  • (@putout/plugin-nodejs) add convert-buffer-to-buffer-alloc
  • (@putout/operate) improve compute check
  • (@putout/plugin-putout) convert-number-to-numeric: improve support cases when both Number and Numeric declared
  • (@putout/plugin-react-router) add convert-component-to-element
  • (@putout/plugin-react-router) add

2022.07.20, v27.0.1

fix:

  • (putout) match: .eslintrc.* -> .eslintrc{*,.json}

2022.07.20, v27.0.0

feature:

  • (putout) add a bility to convert eslint-plugin-node to eslint-plugin-n

2022.07.20, v26.25.1

fix:

feature:

  • (package) hermes-parser v0.9.0
  • (@putout/test) processor: improve testing
  • (@putout/test) processors: add support of UPDATE

2022.07.20, v26.25.0

fix:

  • (eslint-plugin-putout) no-unresolved: missing ./ after transform
  • (@putout/plugin-react-hooks) remove-this: exclude not MemberExpressions

feature:

  • (package) eslint-plugin-putout v16.0.0
  • (@putout/test) eslint-plugin-node -> eslint-plugin-n
  • (putout) match: .eslintrc.json -> .eslintrc.*
  • (@putout/cli-cache) add ability to handle case where meta is null (while rebasing)
  • (eslint-plugin-putout) eslint-plugin-node -> eslint-plugin-n
  • (@putout/plugin-eslint) add convert-node-to-n
  • (@putout/plugin-react-hooks) convert-state-to-hook: exclude shorthand properties
  • (@putout/plugin-react-hooks) convert-class-to-function: exclude classes with lifecycle
  • (@putout/plugin-react-hooks) convert-state-to-hooks: exclude AssignmentExpression not related to MemberExpression
  • (@putout/plugin-remove-nested-blocks) improve support of reduce
  • (@putout/plugin-convert-reduce-to-for-of) improve support of reduce

2022.07.12, v26.24.0

feature:

  • (putout) config: create-react-app: setupTests: improve support
  • (putout) config: ignore: add .idea
  • (@putout/plugin-react-hooks) declare: add useCallback
  • (@putout/plugin-react-hooks) declare: add useReducer
  • (@putout/plugin-remove-unreferenced-variables) report
  • (@putout/plugin-remove-unreferenced-variables) add support of upper scope
  • (@putout/plugin-react-hooks) add apply-short-fragment
  • (@putout/plugin-react-hooks) add declare
  • (@putout/plugin-putout) convert-number-to-numeric: add support of NumberLiteral
  • (@putout/plugin-putout) add convert-number-to-numeric
  • (@putout/plugin-tape) convert-equal-to-not-ok: add support of compute
  • (@putout/plugin-tape) convert-equal-to-ok: add compute
  • (@putout/processor-wasm) lock versions (xtuc/webassemblyjs#1132)
  • (@putout/plugin-eslint) add add-putout
  • (@putout/plugin-eslint) get
  • (@putout/plugin-tape) convert-deep-equal-to-equal: add support of null, undefined and boolean
  • (@putout/plugin-tape) convert-deep-equal-to-equal: add support of number
  • (@putout/plugin-tape) convert-deepe-qual-to-equal: add support of Strings
  • (@putout/plugin-putout) declare: add support of "compute"
  • (@putout/plugin-apply-comparison-order) exclude OptionalMemberExpression
  • (@putout/processor-html) add support of svelte

2022.06.30, v26.23.0

feature:

  • (putout) svelte: disable remove-unused-variables: since variables can be used in markup

2022.06.30, v26.22.0

feature:

  • (putout) parse-options: validate-options: processors: on/off tuple
  • (@putout/plugin-declare-undefined-variables) Object: add freeze

2022.06.29, v26.21.0

fix:

  • (@putout/plugin-convert-comparison-to-boolean) report message

feature:

  • (putout) check that source has type string
  • (@putout/test) eslint: comparePlaces: add support of overrides

2022.06.28, v26.20.0

fix:

  • feature(@putout/engine-runner) run improve logging: determine nested level of path
  • (@putout/operator-declare) module type get while find
  • (@putout/plugin-declare-before-reference) no new line
  • (@putout/plugin-convert-const-to-let) simplify
  • (@putout/plugin-convert-const-to-let) report after transform

feature:

  • (package) @putout/plugin-simplify-logical-expressions v3.0.0
  • (@putout/plugin-simplify-logical-expressions) drop support of 🐊 < 26
  • (@putout/eslint-config) yoda: disabled, @putout/apply-comparison-order used instead
  • (@putout/plugin-apply-comparison-order) add
  • (@putout/plugin-simplify-logical-expressions) add support of comparison with [], {}
  • (eslint-plugin-putout) add-newline-before-return: improve loop: for begin -> from end
  • (@putout/plugin-try-catch) add support of no error param
  • (@putout/engine-runner) run fix: improve logging: determine nested level of path
  • (@putout/eslint-config) padding-if: always: before and after
  • (@putout/plugin-convert-const-to-let) improve support of multiple

2022.06.23, v26.19.0

feature:

  • (@putout/plugin-convert-const-to-let) add
  • (@putout/plugin-convert-for-each-to-for-of) add support of index
  • (@putout/plugin-declare-before-reference) improve support of ancestry

2022.06.22, v26.18.0

fix:

  • (@putout/engine-loader) add putout to peerDependencies to make putout work when installed with pnpm (#106)

feature:

  • (@putout/plugin-declare-imports-ifrst) add
  • (@putout/plugin-try-catch) args: exclude bind
  • (eslint-plugin-putout) add add-newline-before-return

2022.06.21, v26.17.0

feature:

  • (putout) ESM: disable strict-mode/add-missing

2022.06.20, v26.16.1

feature:

  • (package) stylelint-config-standard v26.0.0
  • (package) @putout/cli-cache v2.0.1
  • (@putout/plugin-convert-mock-require-to-mock-import) improve support of stopAll
  • (@putout/plugin-putout) declare: add getPathAfterImports
  • (@putout/plugin-convert-commonjs-to-esm) improve support of dot-dot
  • (@putout/plugin-convert-commonjs-to-esm) add support of require(".")

2022.06.20, v26.16.0

fix:

  • (@putout/plugin-nodejs) declare-fafter-require: exports

feature:

  • (package) @putout/plugin-convert-mock-require-to-mock-import v4.0.0
  • (@putout/plugin-convert-mock-require-to-mock-import) drop support of 🐊 < 26
  • (@putout/plugin-convert-mock-require-to-mock-import) do not declare, keep it for tape/declare
  • (@putout/plugin-remove-useless-arguments) add support of method
  • (@putout/plugin-remove-useless-arguments) report
  • (package) @putout/plugin-eslint v4.0.0
  • (@putout/plugin-eslint) drop support of 🐊 < 26
  • (@putout/plugin-eslint) add remove-no-unsupported-features
  • (@putout/plugin-nodejs) declare-after-require: add support of ExportDeclaration
  • (@putout/plugin-nodejs) declare-after-require: improve support of references

2022.06.17, v26.15.0

fix:

  • (@putout/plugin-tape) convert-called-with-args: report messages
  • (@putout/plugin-nodejs) declare-after-require: last require loc: start -> end
  • (@putout/plugin-declare-before-reference) description
  • (@putout/plugin-merge-destructuring-properties) !currentPath.node -> currentPath.removed

feature:

  • (package) @putout/plugin-eslint v4.0.0
  • (@putout/plugin-eslint) drop support of 🐊 < 26
  • (@putout/plugin-eslint) add remove-no-unsupported-features
  • (@putout/plugin-nodejs) declare-after-require: add support of ExportDeclaration
  • (@putout/plugin-nodejs) declare-after-require: improve support of references
  • (@putout/plugin-strict-mode) remove-useless: improve handling of couple strict modes
  • (@putout/plugin-strict-mode) add-missing: improve check
  • (@putout/plugin-nodejs) declare-after-require: simplify
  • (@putout/plugin-nodejs) declare-after-require: improve reference check
  • (@putout/plugin-nodejs) declare-after-require: check references
  • (@putout/plugin-nodejs) add declare-after-require
  • (@putout/plugin-putout) move-require-on-top-level: exclude ObjectExpression
  • (@putout/plugin-tape) remove-default-messages: add more cases to deepEqual
  • (@putout/plugin-merge-destructuring-properties) add ability to handle absent node received after @putout/plugin-tape
  • (@putout/plugin-nodejs) declare: add support of events

2022.06.11, v26.14.0

fix:

  • (@putout/plugin-declare-undefined-variables) improve isNull check

feature:

  • (package) @putout/plugin-remove-useless-spread v6.0.0
  • (@putout/plugin-remove-useless-spread) object: make stricter
  • (@putout/plugin-remove-useless-spread) report message
  • (@putout/plugin-remove-useless-spread) drop support of 🐊 < 26
  • (@putout/plugin-declare-undefined-variables) add support of isNull
  • (@putout/plugin-madrun) add-function: add support of Identifier
  • (@putout/plugin-putout) declare: add extract
  • (package) hermes-parser v0.7.0
  • (@putout/processor-wasm) add
  • (@putout/plugin-putout) add-args: add support of noProcess
  • (eslint-plugin-putout) ts: removed type-array in favour of typescript/convert-generic-to-shorthand (https://github.com/coderaiser/putout/blob/master/packages/plugin-typescript/README.md#convert-generic-to-shorthand)

2022.06.04, v26.13.0

feature:

  • (putout) improve support of tsx in markdown

2022.06.04, v26.12.0

feature:

  • (putout) improve support of processing typescript in markdown
  • (@putout/plugin-typescript) add remove-useless-parens
  • (@putout/plugin-typescript) convert-generic-to-shorthand: report
  • (@putout/plugin-typescript) convert-generic-to-shorthand: improve support of UnionType
  • (eslint-plugin-putout) markdown{ts}: enable @typescript-eslint/array-type
  • (@putout/plugin-simplify-logical-expressions) add cases of duplication operand
  • (@putout/plugin-simplify-logical-expression) report message

2022.06.02, v26.11.0

fix:

  • (putout) resolve name before parsing options

feature:

  • (package) @putout/plugin-simplify-ternary v3.0.0
  • (@putout/plugin-simplify-ternary) drop support of 🐊 < 26
  • (@putout/plugin-simplify-ternary) add support of spread

2022.06.01, v26.10.0

fix:

  • (@putout/cli-cache) canUseCache: no when places.length

feature:

  • (putout) process-file: --disalble-all show places found by parsers other then javascript
  • (package) @putout/cli-cache v1.1.0
  • (@putout/cli-cache) drop support of node < 16
  • (@putout/cli-cache) canUseCache: can even if places found

2022.05.31, v26.9.3

feature:

  • (putout) cli: get rid of rawPlaces

2022.05.31, v26.9.2

feature:

  • (putout) cli: runner: move out lint
  • (putout) cli: runner: move out runCache
  • (@putout/plugin-eslint) remove-overrides-with-empty-rules: improve support of empty overrides
  • (@putout/plugin-eslint) add remove-no-missing
  • (@putout/plugin-remove-useless-assign) exclude SpreadElement
  • (@putout/cli-cache) canUseCache: add ability to handle empty descriptor
  • (eslint-plugin-putout) turn off node/no-missing-require, node/no-missing-import: does not support namespaces
  • (@putout/plugin-eslint) add remove-overrides-with-empty-rules
  • (@putout/plugin-putout) add convert-report-to-function
  • (@putout/plugin-eslint) add remove-no-unpublished-require

2022.05.29, v26.9.1

fix:

  • (putout) help: --match: add quotes

feature:

  • (package) mocha v10.0.0
  • (package) ts-morph v15.0.0
  • (package) yaml v2.1.0
  • (package) lerna v5.0.0

2022.05.24, v26.9.0

feature:

  • (putout) markdown: add support of tsx
  • (@putout/processor-markdown) add support of jsx, tsx
  • (eslint-plugin-putout) markdown: add support of jsx, tsx
  • (eslint-plugin-putout) markdown: add support of jsx

2022.05.22, v26.8.0

feature:

  • (@putout/plugin-new) add support of Math, Reflect
  • (@putout/plugin-convert-imul-to-multiplication) add

2022.05.22, v26.7.0

feature:

2022.05.21, v26.6.0

feature:

  • (@putout/plugin-convert-sqrt-to-hypot) add
  • (package) @putout/plugin-convert-math-pow v5.0.0
  • (@putout/plugin-convert-math-pow) drop support of 🐊 < 26
  • (@putout/plugin-convert-math-pow) add support of __a * __a
  • (@putout/engine-runner) replace: speed up: prevent find up

2022.05.20, v26.5.0

fix:

  • (@putout/engine-parser) babel: plugins: rm useless options in recordAndTuple

feature:

  • (@putout/plugin-remove-useless-replace) add
  • (@putout/plugin-remove-unused-private-fields) add support of destructuring
  • (@putout/engine-parser) babel: add ability to parse private destructuring (https://babeljs.io/blog/2022/05/19/7.18.0)

2022.05.18, v26.4.0

feature:

  • (@putout/plugin-tape) add apply-destructuring
  • (@putout/plugin-remove-useless-assign) add

2022.05.17, v26.3.1

feature:

  • (putout) add ability to override import of processors for yarn pnp

2022.05.17, v26.3.0

feature:

  • (@putout/engine-loader) add ability to pass loader
  • (@putout/engine-processor) add ability to pass load
  • (@putout/engine-loader) add support of load
  • (putout) cli: formatter: add support of load
  • (putout) worker: add ability to pass load to getProcessors

2022.05.16, v26.2.1

feature:

  • (putout) parse-options: apply-module-type-rules: simplify
  • (package) @putout/processor-css v5.0.0
  • (@putout/processor-html) convert to ESM

2022.05.15, v26.2.0

feature:

  • (@putout/processor-typescript) convert to ESM
  • (package) @putout/plugin-eslint v3.0.0
  • (@putout/eslint-plugin-putout) drop support of 🐊 < 26
  • (@putout/plugin-eslint) add convert-require-to-import

2022.05.14, v26.1.3

feature:

  • (package) @putout/processor-css v5.0.0
  • (@putout/processor-css) convert to ESM
  • (@putout/processor-css) move out config-loader
  • (@putout/processor-markdown) move out rules

2022.05.14, v26.1.2

fix:

  • (@putout/processor-markdown) minimum 🐊Putout version

feature:

  • (package) @putout/processor-yaml v4.0.0
  • (@putout/processor-yaml) convert to ESM
  • (package) @putout/processor-json v5.0.0
  • (package) @putout/processor-json v5.0.0
  • (@putout/processor-json) convert to ESM
  • (package) @putout/processor-ignore v3.0.0
  • (@putout/processor-ignore) convert to ESM
  • (package) @putout/processor-javascript v4.0.0
  • (@putout/processor-javascript) convert to ESM

2022.05.13, v26.1.1

fix:

  • (@putout/engine-loader) loadProcessors: when no default, return the module

feature:

  • (package) @putout/processor-markdown v7.0.0
  • (@putout/test) processor: export ESM
  • (@putout/processor-markdown) convert to ESM

2022.05.13, v26.1.0

fix:

  • (@putout/processor-css) rm once

feature:

  • (package) @putout/engine-processor v6.0.0
  • (package) @putout/engine-loader v7.0.0
  • (package) @putout/engine-loader v7.0.0
  • (@putout/engine-processor) getProcessorRunners: sync -> async
  • (putout) getProcessors: sync -> async
  • (@putout/engine-loader) loadProcessors -> loadProcessorsAsync
  • (@putout/plugin-remove-useless-variables) exclude mirrored renames (used in tests)

2022.05.12, v26.0.2

fix:

  • (@putout/plugin-reuse-deuplicate-init) description

feature:

  • (package) @putout/plugin-reuse-duplicate-init v4.0.0
  • (@putout/plugin-reuse-duplicate-init) drop support of 🐊 < 26
  • (@putout/plugin-reuse-duplicate-init) report message: simplify
  • (@putout/plugin-remove-useless-variables) remove: add support of AssignmentExpression
  • (@putout/operate) remove: improve comments support
  • (@putout/plugin-remove-useless-variables) await: improve report message
  • (@putout/plugin-putout) add: replace-test-message
  • (@putout/plugin-apply-array-at) improve report
  • (@putout/plugin-convert-reduce-to-for-of) exclude CallExpression
  • (@putout/plugin-tape) convert-ok-to-match: test: add support of message
  • (@putout/plugin-remove-useless-operand) check operand type when string could be used
  • (@putout/plugin-madrun) convert-lint-lib: parseObject -> getProperty
  • (@putout/plugin-madrun) convert-nyc-to-c8: add support of CommonJS
  • (@putout/operator-add-args) exclude not calls
  • (@putout/eslint-config) add array-bracket-spacing
  • (@putout/plugin-putout) add-args: add support of process

2022.05.09, v26.0.1

fix:

  • (@putout/plugin-convert-commonjs-to-esm) report
  • (putout) help: locally -> locally

feature:

  • (package) @putout/plugin-convert-esm-to-commonjs v5.0.0
  • (@putout/plugin-convert-esm-to-commonjs) drop support of 🐊 < 26
  • (@putout/plugin-convert-esm-to-commonjs) change report

2022.05.08, v26.0.0

feature:

  • (package) @putout/plugin-strict-mode v5.0.0
  • (@putout/plugin-new) merge: add-missing-new, remove-useless-new
  • (@putout/plugin-strict-mode) add, remove -> add-missing, remove-useless

2022.05.08, v25.18.0

fix:

  • (@putout/plugin-putout) convert-putout-test-to-create-test: ImportDefaultSpecifier -> ImportSpecifier

feature:

  • (@putout/plugin-add-missing-new) add
  • (@putout/plugin-remove-useless-new) add support of BigInt
  • (@putout/plugin-remove-useless-new) add support of "new new __a"
  • (@putout/plugin-remove-nested-blocks) rm useless crawl
  • (@putout/plugin-convert-reduce-to-for-of) delete binding after rename

2022.05.04, v25.17.4

fix:

  • (@putout/plugin-convert-reduce-to-for-of) drop crawl
  • (@putout/plugin-convert-reduce-to-for-of) add crawl
  • (@putout/plugin-convert-reduce-to-for-of) rename missing

feature:

  • (package) @putout/plugin-remove-nested-blocks v6.0.0
  • (@putout/plugin-remove-nested-blocks) drop support of 🐊 < 25
  • (@putout/plugin-remove-nested-blocks) add crawl before checking intersect
  • (@putout/plugin-convert-reduce-to-for-of) improve support of initial value

2022.05.03, v25.17.3

feature:

  • (package) @putout/plugin-apply-is-array v3.0.0
  • (@putout/plugin-apply-is-array) change report
  • (@putout/plugin-apply-is-array) drop support of 🐊 < 25

2022.05.03, v25.17.2

feature:

  • (@putout/rule-set-description) extend to all descriptions
  • (package) @putout/plugin-convert-for-to-for-of v4.0.0
  • (@putout/plugin-convert-for-to-for-of) drop support of 🐊 < 25
  • (@putout/plugin-convert-for-to-for-of) change report

2022.05.02, v25.17.1

feature:

  • (@putout/rule-set-description) add
  • (package) @putout/plugin-convert-object-assign-to-merge-spread v6.0.0
  • (@putout/plugin-convert-object-assign-to-merge-spread) drop support of 🐊 < 25
  • (@putout/plugin-convert-object-assign-to-merge-spread) change report message

2022.05.01, v25.17.0

fix:

  • (@putout/plugin-convert-map-to-for-of) report

feature:

  • (@putout/plugin-convert-reduce-to-for-of) add
  • (package) @putout/plugin-remove-useless-operand v2.0.0
  • (@putout/plugin-remove-useless-operand) drop support of Putout < 25
  • (@putout/plugin-remove-useless-operand) add support of right duplicates

2022.04.29, v25.16.0

fix:

  • (eslint-plugin-putout) object-property-newline: additional spaces

feature:

  • (@putout/plugin-remove-useless-new) add support of new Object()
  • (package) @putout/plugin-remove-useless-new v2.0.0
  • (@putout/plugin-remove-useless-new) drop support of 🐊 < 25
  • (@putout/plugin-remove-useless-new) add support of RegExp
  • (@putout/plugin-tape) convert-ok-to-match: add support of .test()
  • (@putout/plugin-regexp) add apply-ends-with
  • (@putout/plugin-regexp) add apply-starts-with
  • (@putout/plugin-madrun) convert-run-to-cut-env: add ability to convert body to array
  • (@putout/plugin-travis) drop support of Putout < 25
  • (eslint-plugin-putout) object-property-newline: avoid empty lines
  • (package) eslint-plugin-putout v15.0.0
  • (eslint-plugin-putout) object-init -> object-property-newline: add TS support
  • (@putout/plugin-typescript) remove-duplicate-exports: exclude namespaces
  • (eslint-plugin-putout) add add-newlines-betweens-specifieres

2022.04.26, v25.15.1

feature:

2022.04.21, v25.15.0

feature:

  • (package) @putout/plugin-remove-unused-for-of-variables v3.0.0
  • (@putout/plugin-remove-unused-for-of-variables) drop support of putout < 25
  • (@putout/plugin-remove-unused-for-of-variables) exclude spread
  • (eslint-plugin-putout) array-element-newline: exclude sparse arrays
  • (@putout/plugin-merde-duplicate-imports) rm converting of import kind, since it handled by babel
  • (eslint-plugin-putout) add remove-duplicate-extensions
  • (package) @putout/eslint-config v7.0.0
  • (@putout/eslint-config) drop support of node < 16
  • (@putout/eslint-config) add ability to always add newline after for
  • (@putout/plugin-tape) add-args: add support of only/skip
  • (eslint-plugin-putout) markdown: rm no-multi-spaces: off

2022.04.10, v25.14.3

feature:

  • (package) @putout/plugin-remove-unused-variables v4.0.0
  • (@putout/plugin-remove-unused-variables) drop support of 🐊 < 25
  • (@putout/plugin-remove-unused-variables) quotes: double -> single
  • (@putout/plugin-strict-mode) quotes: double -> single
  • (package) @putout/plugin-remove-debugger v5.0.0
  • (@putout/plugin-remove-debugger) drop support of 🐊 < 25
  • (@putout/plugin-remove-debugger) quotes: double -> single

2022.04.09, v25.14.2

fix:

  • (putout) --fix -> 'fix'

feature:

  • (@putout/plugin-try-catch) skip transformation when there is already exists binding error
  • (@putout/operator-declare) exclude TSTypeAliasDeclaration
  • (@putout/plugin-declare-before-reference) improve support of newly created nodes

2022.04.08, v25.14.1

fix:

  • (putout) cli: get-files: 🐊 No files matching the pattern "package" were found -> 🐊 No files matching the 'pattern' package were found

feature:

  • (@putout/plugin-tape) add apply-stub
  • (eslint-plugin-putout) markdown: add support of babel parser plugins
  • (putout) images: logo: white eye

2022.04.02, v25.14.0

fix:

  • (eslint-plugin-putout) get back ability to catch error during transform

feature:

  • (package) @putout/plugin-convert-mock-require-to-mock-import v3.0.0
  • (@putout/plugin-convert-mock-require-to-mock-import) drop support of putout < 25
  • (package) @putout/plugin-merge-duplicate-imports v6.0.0
  • (@putout/plugin-merge-duplicate-imports) drop support of putout < 25
  • (@putout/plugin-react-hooks) drop support of putout < 25
  • (package) @putout/plugin-remove-console v4.0.0
  • (@putout/plugin-remove-console) drop support of putout < 25
  • (package) @putout/plugin-remove-constant-conditions v4.0.0
  • (@putout/plugin-remove-constant-conditions) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-duplicate-case v2.0.0
  • (@putout/plugin-remove-duplicate-case) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-empty v8.0.0
  • (@putout/plugin-remove-empty) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-unreferenced-variables v2.0.0
  • (@putout/plugin-remove-unreferenced-variables) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-unused-expressions v5.0.0
  • (@putout/plugin-remove-unused-expressions) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-unused-private-fields v2.0.0
  • (@putout/plugin-remove-unused-private-fields) drop support of 🐊 < 25
  • (package) @putout/plugin-remove-useless-arguments v6.0.0
  • (@putout/plugin-remove-useless-arguments) drop support of 🐊 < 25
  • (@putout/plugin-declare-before-reference) add
  • (@putout/plugin-putout) apply-remove: add
  • (@putout/plugin-putout) declare: operator: add support of remove()
  • (@putout/engine-runner) add ability to handle case with replace that returns nothing
  • (eslint-plugin-putout) speed up 🐊 Putout rule: 5.112s -> 3.661s on 2000 loc file
  • (eslint-plugin-putout) improve typescript support

2022.04.01, v25.13.1

feature:

  • (package) @putout/plugin-strict-mode v4.0.0
  • (@putout/plugin-strict-mode) drop support of 🐊 < 25
  • (@putout/plugin-strict-mode) add support of @putout/plugin-typescript

2022.04.01, v25.13.0

feature:

  • (package) @putout/plugin-typescript v2.0.0
  • (@putout/plugin-typescript) drop support of 🐊 < 16
  • (@putout/plugin-typescript) remove-duplicates-from-union: avoid duplicates reporting
  • (@putout/plugin-extract-object-properties) not-equal-deep: link to listStore() results -> call linkStore() when needed
  • (@putout/engine-runner) store: listStore: use Set() inside to prevent duplicates and return array

2022.03.31, v25.12.0

feature:

  • (package) @putout/plugin-convert-comparison-to-boolean v3.0.0
  • (@putout/plugin-convert-comparison-to-boolean) drop support of putout < 25
  • (@putout/plugin-simplify-logical-expressions) add more cases
  • (@putout/plugin-convert-comparison-to-boolean) template.ast -> BooleanLiteral

2022.03.30, v25.11.4

feature:

  • (package) @putout/plugin-remove-useless-variables v7.0.0
  • (@putout/plugin-remove-useless-variables) drop support of putout < 25
  • (@putout/plugin-remove-useless-variables) remove: exclude bindings with constant violations (#100)
  • (@putout/operate) remove: preserve only top-level comments, remove other (#100)
  • (@putout/operate) compute: exclude SpreadElement from extracting (#100)

2022.03.30, v25.11.3

feature:

  • (package) @putout/formatter-progress v4.0.0

2022.03.30, v25.11.2

fix:

  • (putout) get back chalk v4: berry support + deduplication

feature:

  • (@putout/eslint-config) padding-line-between-statements: add new line before and after for

2022.03.29, v25.11.1

feature:

  • (package) @putout/processor-css v4.0.0
  • (@putout/processor-html) drop support of putout < 25
  • (@putout/processor-css) drop support of putout < 25
  • (@putout/processor-typescript) drop support of putout < 25

2022.03.29, v25.11.0

feature:

  • (package) @putout/formatter-frame v3.0.0
  • (package) @putout/formatter-codeframe v4.0.0
  • (package) @putout/formatter-progress v3.0.1
  • (@putout/formatter-progress) drop support of putout < 25
  • (package) @putout/formatter-codeframe v4.0.0
  • (@putout/formatter-codeframe) drop support of Putout < 25
  • (package) @putout/formatter-memory v3.0.0
  • (@putout/formatter-memory) drop support of Putout < 25
  • (package) @putout/formatter-dump v4.0.0
  • (package) @putout/formatter-dump v4.0.0
  • (@putout/formatter-dump) drop support of Putout < 25
  • (package) @putout/formatter-progress-bar v3.0.0
  • (@putout/formatter-progress-bar) drop support of putout < 25
  • (package) @putout/formatter-stream v4.0.0
  • (@putout/formatter-stream) drop support of putout < 25
  • (package) ts-morph v14.0.0
  • (package) hermes-parser v0.6.0
  • (package) eslint-plugin-eslint-plugin v4.1.0
  • (package) escover v2.1.0
  • (package) escover v2.1.0
  • (package) emoji-regex v10.0.1
  • (package) chalk v5.0.1
  • (package) stylelint-config-standard v25.0.0
  • (package) chalk v5.0.1
  • (package) @putout/operate v8.0.0
  • (package) @putout/operate v8.0.0
  • (package) @putout/operate v8.0.0
  • (package) @putout/operate v8.0.0
  • (@putout/operate) drop support of node < 16
  • (@putout/operate) compute: exclude Identifiers from parsing of ObjectExpressions (#100)

2022.03.28, v25.10.0

fix:

  • (@putout/operator-add-args) skip adding args when params exists and not ObjectPattern
  • (@putout/plugin-putout) declare: addArgument -> addArgs
  • (@putout/plugin-regexp) convert-replace-to-replace-with: extra.raw -> raw (#100)

feature:

  • (package) @putout/operate v8.0.0
  • (package) @putout/operate v8.0.0
  • (package) @putout/operate v8.0.0
  • (package) @putout/operate v8.0.0
  • (@putout/operate) drop support of node < 16
  • (@putout/operate) compute: exclude Identifiers from parsing of ObjectExpressions (#100)
  • (@putout/compare) setVars: BlockStatement -> Statement: improve node building
  • (@putout/plugin-remove-useless-else) simplify
  • (@putout/compare) setValues: add ability to handle BlockStatement
  • (@putout/plugin-remove-useless-group) extra.raw -> raw (#100)
  • (@putout/plugin-putout) add add-push
  • (@putout/operator-declare) exclude: TSDeclareFunction
  • (@putout/plugin-nodejs) declare: exclude title

2022.03.23, v25.9.1

fix:

  • feature(@putout/plugin-eslint-config) turn no-unsafe-negation off since @putout/plugin-simplify-logical-expressions handles and fixes this case

feature:

  • (package) @putout/plugin-simplify-logical-expressions v2.0.0
  • (@putout/plugin-simplify-logical-expressions) drop support of 🐊 < 25
  • (@putout/plugin-simplify-logical-expressions) add support of in, instanceof
  • (@putout/plugin-eslint-config) turn no-unsafe-negation off since @putout/plugin-simplify-logical-expressions handles and fixes this case

2022.03.22, v25.9.0

fix:

  • (@putout/plugin-extract-object-properties) equal-deep: rm useless isIdentifier check
  • (@putout/engine-runner) uplist: clear

feature:

  • (package) @putout/plugin-remove-useless-type-conversion v2.0.0
  • (@putout/plugin-remove-useless-type-conversion) drop support of 🐊 < 25
  • (@putout/plugin-remove-useless-type-conversion) merge @putout/plugin-remove-double-negations
  • (@putout/plugin-remove-double-negations) drop support of 🐊 < 25
  • (@putout/plugin-remove-double-negations) "Double negation should not be used in conditions" -> "Avoid using double negations in conditions"
  • (@putout/plugin-extract-object-properties) not-equal-deep: apply 🦎PutoutScript
  • (@putout/plugin-extract-object-properties) not-equal-deep: apply listStore
  • (@putout/engine-runner) traverse: ☝️ add ability to validate path

2022.03.20, v25.8.0

fix:

  • (@putout/plugin-tape) apply-with-name: report after transform

feature:

  • (@putout/plugin-extract-object-properties) drop support of 🐊Putout < 25
  • (@putout/plugin-extract-object-properties) equal-deep: convert to traverse, apply uplist
  • (@putout/engine-runner) add uplist
  • (@putout/eslint-config) add blank line between if and throw
  • (@putout/plugin-promises) remove-useless-await: exclude logical expressions
  • (@putout/plugin-tape) apply-with-name: add support of chain

2022.03.15, v25.7.1

feature:

  • (package) @putout/plugin-extract-sequence-expressions v3.0.0
  • (@putout/plugin-extract-sequence-expressions) drop support of 🐊 < 25
  • (@putout/plugin-extract-sequence-expressions) add support of arguments
  • (package) @putout/plugin-convert-commonjs-to-esm v9.0.0
  • (package) @putout/plugin-putout v11.0.0
  • (@putout/plugin-putout) drop support of 🐊 < 25
  • (@putout/plugin-convert-commonjs-to-esm) drop support of 🐊 < 25
  • (@putout/plugin-convert-commonjs-to-esm) add support of babel v7.17.7 (https://github.com/babel/babel/releases/tag/v7.17.7)

2022.03.14, v25.7.0

feature:

  • (package) @putout/plugin-apply-early-return v2.0.0
  • (@putout/plugin-apply-early-return) drop support of 🐊 < 25
  • (@putout/plugin-apply-eary-return) improve
  • (@putout/plugin-remove-useless-else) add

2022.03.13, v25.6.0

feature:

  • (@putout/plugin-montag) rename from @putout/plugin-apply-montag
  • (package) @putout/plugin-apply-early-return v1.0.1

2022.03.12, v25.5.0

fix:

  • feature(@putout/engine-runner) validate absent fix
  • (@putout/plugin-regexp) get isSimpleRegexp check back

feature:

  • (@putout/plugin-promises) merge @putout/plugin-apply-await-import
  • (@putout/engine-runner) validate absent fix
  • (@putout/engine-runner) include: add report validation
  • (eslint-plugin-putout) @typescript-eslint/lines-between-class-members: turn off
  • (@putout/eslint-config) disable lines-between-property-members
  • (@putout/eslint-config) padding-line-between-statements: add functions
  • (@putout/engine-loader) replace -> replaceAll
  • (@putout/plugin-regexp) improve support of newlines
  • (@putout/plugin-convert-quotes-to-backticks) improve support of multiple backslashes
  • (@putout/plugin-regexp) convert-replace-to-replace-all: improve RegExp support

2022.03.08, v25.4.1

feature:

  • (package) @putout/plugin-convert-quotes-to-backticks v2.0.0
  • (@putout/plugin-convert-quotes-to-backticks) drop support of putout < 25
  • (@putout/plugin-convert-quotes-to-backticks) add support of double backslash (xtermjs/xterm.js#3674)
  • (@putout/plugin-regexp) remove-useless-group: exclude match (xtermjs/xterm.js#3674)

2022.03.08, v25.4.0

feature:

  • (package) @putout/formatter-json-lines v3.0.0
  • (@putout/formatter-json-lines) rm source
  • (@putout/formatter-json-lines) drop support of putout < 25
  • (putout) eslint: improve support of control sequences

2022.03.07, v25.3.0

feature:

  • (@putout/plugin-try-catch) renamed from @putout/plugin-apply-try-catch
  • (@putout/plugin-apply-try-catch) try-catch: add support of finalizer
  • (@putout/plugin-apply-try-catch) add expand-arguments from @putout/plugin-tape
  • (@putout/plugin-tape) expand-try-catch-arguments: add support of tryCatch with more then one argument
  • (@putout/plugin-regexp) convert-replace-to-replace-all: add support of decoding
  • (@putout/eslint-config) add newline-per-chained-call
  • (@putout/plugin-regexp) convert-replace-to-replace-all: replacer -> traverser: multiple operations on one node

2022.03.06, v25.2.0

fix:

  • (@putout/plugin-apply-try-catch) try-to-catch: report: await

feature:

  • (package) @putout/plugin-remove-useless-escape v3.0.0
  • (putout) convert-replace-to-replace-all: enable since node v16 support
  • (@putout/plugin-remove-useless-escape) drop support of putout < 25
  • (@putout/plugin-regexp) apply-literal-notation: add support of /
  • (@putout/plugin-remove-useless-escape) add support of /

2022.03.05, v25.1.1

feature:

  • (package) @putout/plugin-apply-array-at v2.0.0
  • (@putout/plugin-apply-array-at) drop support of putout < 25
  • (@putout/plugin-apply-array-at) report
  • (@putout/plugin-apply-array-at) exclude left of AssignmentExpression
  • (@putout/plugin-promises) remove-useless-await: add support of OptionalCallExpression
  • (@putout/operator-declare) exclude TSDeclareMethod
  • (@putout/operator-declare) exclude TSFunctionType
  • (@putout/plugin-nodejs) declare: rm type
  • (@putout/operator-declare) exclude TSParameterProperty
  • (@putout/operator-declare) exclude TSMethodSignature
  • (@putout/plugin-promise) remove-useless-await: exclude new await Promise()
  • (eslint-plugin-putout) ts: disable warn on unsupported version (https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/parser#parseroptionswarnonunsupportedtypescriptversion)
  • (@putout/plugin-apply-try-catch) try-catch: improve filtering of CallExpression
  • (@putout/plugin-apply-try-catch) try-to-catch: improve filtering Await Expressions
  • (eslint-plugin-putout) nonblock-statement-body-newline: add support of for, for-of, while
  • (eslint-plugin-putout) add nonblock-statement-body-newline
  • (eslint-plugin-putout) *.md{js}: enable quotes, quote-props'

2022.03.01, v25.1.0

feature:

  • (package) @putout/plugin-package-json v4.0.0
  • (@putout/plugin-package-json) drop support of putout < 25

2022.03.01, v25.0.9

feature:

  • (package) @putout/plugin-madrun v14.0.0
  • (@putout/plugin-madrun) drop support of putout < 25
  • (@putout/plugin-madrun) add add-cut-env

2022.03.01, v25.0.8

fix:

  • chore(actions) add auto fix
  • docs(readme) Ruler: auto fix example

feature:

  • (package) @putout/plugin-promises v8.0.0
  • (@putout/plugin-promises) drop support of node < 16
  • (@putout/plugin-promises) remove-useless-await: add support of primitives used as argument

2022.02.28, v25.0.7

feature:

  • (package) @putout/engine-processor v5.0.0
  • (@putout/engine-processor) drop support of node < 16
  • (package) @putout/engine-loader v6.0.0

2022.02.28, v25.0.6

feature:

  • (package) @putout/compare v9.0.0
  • (package) @putout/compare v9.0.0
  • (package) @putout/compare v9.0.0
  • (package) @putout/traverse v5.0.0
  • (@putout/traverse) drop support of node < 16
  • (package) @putout/compare v9.0.0
  • (package) @putout/engine-loader v6.0.0
  • (@putout/engine-loader) drop support of node < 16
  • (package) @putout/engine-parser v5.0.0
  • (package) @putout/engine-runner v13.0.0
  • (@putout/engine-runner) drop support of node < 16
  • (package) @putout/engine-parser v5.0.0
  • (package) @putout/compare v9.0.0
  • (package) @putout/operator-add-args v3.0.0
  • (package) @putout/engine-parser v5.0.0
  • (@putout/operator-add-args) drop support of putout < 25
  • (@putout/compare) drop support of node < 16
  • (package) @putout/engine-parser v5.0.0

2022.02.25, v25.0.5

feature:

  • (package) @putout/engine-parser v5.0.0
  • (package) @putout/engine-parser v5.0.0
  • (@putout/engine-parser) drop support of node < 16
  • (package) estree-to-babel v5.0.0
  • (@putout/plugin-tape) remove-skip: change message
  • (@putout/plugin-tape) rm insert require try catch

2022.02.24, v25.0.4

fix:

  • (@putout/plugin-nodejs) declare: process: rm env
  • (@putout/plugin-nodejs) declare: process: rm version

feature:

  • (package) eslint-plugin-putout v14.0.0
  • (eslint-plugin-putout) drop support of putout < 25
  • (eslint-plugin-putout) evaluate: add support of @putout/plugin-nodejs
  • (package) @putout/plugin-declare-undefined-variables v7.0.0
  • (package) @putout/plugin-nodejs v4.0.0
  • (@putout/plugin-nodejs) drop support of putout < 25
  • (@putout/plugin-nodejs) declare: add from @putout/plugin-declare-undefined-variables
  • (@putout/plugin-declare-undefined-variables) drop support of putout < 25
  • (@putout/plugin-declare-undefined-variables) try-catch: move to @putout/plugin-apply-try-catch
  • (@putout/plugin-apply-try-catch) declare: add

2022.02.23, v25.0.3

fix:

  • feature(@putout/test) UPDATE: add ability to remove unused fixtures

feature:

  • (package) @putout/plugin-tape v9.0.0
  • (@putout/plugin-tape) drop support of putout < 25
  • (@putout/test) UPDATE: add ability to remove unused fixtures
  • (@putout/plugin-tape) remove-only: add support of not top level 'test.only'
  • (@putout/plugin-apply-try-catch) args: add support of MemberExpression
  • (@putout/plugin-apply-try-catch) args: add
  • (@putout/plugin-apply-try-catch) add support of VariableDeclarator
  • (@putout/plugin-try-catch) camel -> tryName
  • (@putout/plugin-apply-try-catch) add support of IfCondition

2022.02.23, v25.0.2

fix:

  • (@putout/plugin-apply-try-catch) do not declare try-catch, try-to-catch

feature:

  • (@putout/plugin-apply-try-catch) add
  • (@putout/plugin-apply-try-catch) drop support of putout < 25
  • (@putout/plugin-apply-try-catch) await: include only ExpressionStatements
  • (eslint-plugin-putout) safe: disable remove-useless-for-of

2022.02.18, v25.0.1

fix:

  • (@putout/operator-add-args) avoid using putout directly since it is internal dependency

feature:

  • (package) @putout/plugin-nodejs v3.2.0
  • (@putout/plugin-nodejs) add convert-url-to-dirname
  • (@putout/plugin-merge-destructuring-properties) add support of different quotes
  • (@putout/test) drop support of node < 16
  • (package) madrun v9.0.0

2022.02.17, v25.0.0

fix:

  • docs(eslint-plugin-putout) safe: add "plugin-" prefix

feature:

  • (package) @putout/plugin-github v3.0.0
  • (putout) drop support of node < 16
  • (@putout/plugin-github) set-node-versions: 14, 16, 17 -> 16, 17
  • (@putout/plugin-github) drop support of putout < 25
  • (package) @putout/operator-declare v4.0.0
  • (package) @putout/plugin-convert-map-to-for-of v2.0.0
  • (package) @putout/plugin-regexp v5.0.0
  • (package) @putout/processor-markdown v6.0.0
  • (@putout/processor-markdown) drop support of putout < 25
  • (@putout/plugin-regexp) drop support of putout < 25
  • (@putout/plugin-convert-map-to-for-of) drop support of putout < 25
  • (@putout/operator-declare) drop support of putout < 25
  • (putout) add @putout/plugin-apply-array-at
  • (@putout/plugin-remove-unused-variables) get-vars: getScopeUID: rm useless done
  • (@putout/operator-declare) parseCode: rm useless name argument
  • (@putout/test) supertape v7.0.0
  • (@putout/test) reuse options
  • (eslint-plugin-putout) add remove-newline-after-last-element (#95)
  • (@putout/plugin-putout) add convert-match-to-function
  • (@putout/plugin-putout) check-replace-code: add support of ObjectExpression
  • (@putout/plugin-putout) add convert-replace-to-function
  • (@putout/engine-runner) replace: add match property value validation: ☝️ Looks like 'match' property value is not a 'function', but 'string' with value 'xxx'.
  • (@putout/engine-loader) validate-plugin: improve error message: ☝️ Cannot determine type of plugin fn. Here is list of supported plugins: https://git.io/JqcMn
  • (@putout/plugin-remove-empty) pattern: improve support of function arguments
  • (@putout/engine-runner) add ☝️ Looks like you passed template value with a wrong type. Allowed: string, node and path. Received: true

2022.02.07, v24.6.0

fix:

  • (eslint-plugin-putout) remove parent: after parse -> before print
  • (eslint-plugin-putout) npmignore: add lib/*/.md
  • chore(madrun) add fresh:fix

feature:

  • (package) @putout/plugin-remove-empty v7.0.0
  • (package) @putout/plugin-promises v7.0.0
  • (@putout/plugin-remove-empty) drop support of 🐊Putout < 24
  • (@putout/plugin-remove-empty) merge remove-empty-pattern
  • (@putout/plugin-promises) merge remove-useless-await
  • (@putout/plugin-promises) merged remove-useless-async
  • (@putout/plugin-promises) drop support of 🐊Putout < 24
  • (@putout/plugin-promises) merged apply-top-level-await
  • (@putout/plugin-remove-useless-variables) destruct: add support of AssignmentPattern
  • (@putout/plugin-remove-useless-variables) destr: add support of RestElement
  • (eslint-plugin-putout) function-declaration-parent-newline: improve support of destructuring
  • (@putout/engine-parser) add support of wasm-based hermes-parser (5 times slower then babel πŸ€”)
  • (@putout/plugin-remove-unused-variables) add support of ClassProperty (#96)
  • (@putout/plugin-apply-try-catch) await: add support of async
  • (@putout/plugin-putout) check-replace-code: exclude plugins containing match
  • (@putout/plugin-apply-try-catch) add await
  • (eslint-plugin-putout) function-declaration-paren-newline: add FunctionExpression support
  • (@putout/plugin-remove-useless-variables) add destruct
  • (eslint-plugin-putout) safe: disable remove-useless-spread
  • (@putout/eslint-config) operator-linebreak: add ":", "?"
  • (@putout/eslint-config) operand-linebreak: |, || - before, others - after

2022.01.26, v24.5.0

fix:

  • (putout) rm unused thread-it

feature:

  • (package) @putout/plugin-strict-mode v3.0.0
  • (package) @putout/compare v8.7.0
  • (@putout/compare) add findUp option
  • (@putout/compare) add support of findUp
  • (@putout/plugin-strict-mode) drop support of putout < 24
  • (@putout/plugin-strict-mode) commonjs -> CommonJS
  • (@putout/plugin-strict-mode) is esm -> in ESM

2022.01.25, v24.4.0

feature:

  • (putout) cli: move out runner
  • (@putout/eslint-config) padding-line-between-statements: add import
  • (@putout/eslint-config) padding-line-between-statements: add export
  • (@putout/eslint-config) enable operator-linebreak
  • (@putout/test) add ESLint support

2022.01.24, v24.3.0

feature:

  • (putout) eslint: add ability to enable putout/putout rule with a flag
  • (putout/eslint) add ability to enable putout

2022.01.24, v24.2.2

fix:

  • (@putout/plugin-declare-undefined-variables) node-js: exclude "promises" as it is to general
  • (@putout/engine-runner) avoid duplication of plugins

feature:

  • (package) @putout/plugin-convert-esm-to-commonjs v4.0.0
  • (@putout/plugin-convert-esm-to-commonjs) drop support of putout < 24
  • (@putout/plugin-convert-esm-to-commonjs) Commonjs -> CommonJS
  • (@putout/engine-runner) add ability to debug with "putout:runner:replace"

2022.01.21, v24.2.1

fix:

  • (@putout/test) avoid updating noTransform files

feature:

  • (package) @putout/plugin-remove-useless-variables v6.0.0
  • (@putout/plugin-remove-useless-variables) drop support of putout < 24
  • (package) @putout/plugin-remove-unused-for-of-variables v2.0.0
  • (package) @putout/plugin-convert-for-to-for-of v3.0.0
  • (package) @putout/plugin-tape v8.0.0
  • (@putout/plugin-tape) drop support of putout < 24
  • (@putout/plugin-convert-for-to-for-of) drop support of putout < 24
  • (package) @putout/operator-add-args v2.0.0
  • (@putout/operator-add-args) drop support of putout < 24
  • (@putout/operator-declare) improve variables declaration
  • (package) @putout/plugin-remove-nested-blocks v5.0.0
  • (@putout/plugin-remove-nested-blocks) drop support of putout < 24
  • (package) @putout/plugin-putout v10.0.0
  • (@putout/plugin-putout) drop support of putout < 24.2
  • (package) @putout/plugin-merge-duplicate-imports v5.0.0
  • (@putout/plugin-merge-duplicate-imports) drop support of putout < 24
  • (package) @putout/plugin-merge-destructuring-properties v6.0.0
  • (@putout/plugin-merge-destructuring-properties) drop support of putout < 24
  • (package) @putout/plugin-extract-object-properties v7.0.0
  • (@putout/plugin-extract-object-properties) drop support of putout < 24
  • (package) @putout/plugin-convert-mock-require-to-mock-import v2.0.0
  • (@putout/plugin-convert-mock-require-to-mock-import) drop support of putout < 24
  • (package) @putout/plugin-convert-for-each-to-for-of v7.0.0
  • (@putout/plugin-convert-for-each-to-for-of) drop support of putout < 24
  • (package) @putout/plugin-convert-commonjs-to-esm v8.0.0
  • (@putout/plugin-convert-commonjs-to-esm) drop support of putout < 24
  • (package) @putout/operator-declare v3.0.0
  • (@putout/operator-declare) drop support of putout < 24

2022.01.20, v24.2.0

fix:

  • (@putout/plugin-merge-duplicate-imports) crawl: integrate with declare

feature:

  • (package) @putout/plugin-remove-nested-blocks v5.0.0
  • (@putout/plugin-remove-nested-blocks) drop support of putout < 24
  • (package) @putout/plugin-putout v10.0.0
  • (@putout/plugin-putout) drop support of putout < 24.2
  • (package) @putout/plugin-merge-duplicate-imports v5.0.0
  • (@putout/plugin-merge-duplicate-imports) drop support of putout < 24
  • (package) @putout/plugin-merge-destructuring-properties v6.0.0
  • (@putout/plugin-merge-destructuring-properties) drop support of putout < 24
  • (package) @putout/plugin-extract-object-properties v7.0.0
  • (@putout/plugin-extract-object-properties) drop support of putout < 24
  • (package) @putout/plugin-convert-mock-require-to-mock-import v2.0.0
  • (@putout/plugin-convert-mock-require-to-mock-import) drop support of putout < 24
  • (package) @putout/plugin-convert-for-each-to-for-of v7.0.0
  • (@putout/plugin-convert-for-each-to-for-of) drop support of putout < 24
  • (package) @putout/plugin-convert-commonjs-to-esm v8.0.0
  • (@putout/plugin-convert-commonjs-to-esm) drop support of putout < 24
  • (package) @putout/operator-declare v3.0.0
  • (@putout/operator-declare) drop support of putout < 24
  • (@putout/engine-runner) runFix: add ability to crawl
  • (eslint-plugin-putout) add remove-empty-newline-after-import
  • (@putout/plugin-declare-undefined-variables) add nodejs util
  • (@putout/operator/declare) respect import order: locals - latest import
  • (@putout/operator-declare) import require support
  • (@putout/operator-declare) improve declarations order
  • (@putout/plugin-declare-undefined-variables) add fs
  • (@putout/plugin-declare-undefined-variables) add support of process
  • (eslint-plugin-putout) safe: disable remove-unreferenced-variables
  • (@putout/plugin-remove-nested-blocks) integrate with tape/declare: add crawling
  • (eslint-plugin-putout) safe: disable remove-useless-variables/rename
  • (@putout/operate) toExpression: improve expression check
  • (@putout/plugin-declare-undefined-variables) add support of table
  • (@putout/plugin-declare-undefined-variables) add support of chalk
  • (eslint-plugin-putout) add remove-empty-specifiers
  • (eslint-plugin-putout) add-newline-before-function-call: add support of spaces after
  • (eslint-plugin-putout) single-property-destructuring: exclude elements with comments inside
  • (@putout/plugin-convert-commonjs-to-esm) require: exclude json while not supported
  • (@putout/plugin-convert-commonjs-to-esm) require: disable import assertions while not supported
  • (package) @putout/operate v7.0.0
  • (package) @putout/operate v7.0.0
  • (package) @putout/operate v7.0.0

2022.01.14, v24.1.0

feature:

  • (@putout/test) get rid of simport
  • (putout) get rid of simport
  • (package) @putout/cli-ruler v2.0.0
  • (@putout/cli-ruler) named export ruler
  • (@putout/processor-markdown) rm simport
  • (@putout/plugin-tape) mv remove-only, remove-skip from dependencies

2022.01.13, v24.0.2

feature:

  • (@putout/plugin-typescript) add

2022.01.13, v24.0.1

feature:

  • (@putout/plugin-nodejs) merge convert-top-level-return
  • (@putout/plugin-putout) declare: add getProperty, getProperties

2022.01.12, v24.0.0

feature:

  • (putout) eslint-plugin-putout v13
  • (@putout/plugin-nodejs) drop support of putout < 24
  • (eslint-plugin-putout) drop support of putout < 24
  • (eslint-plugin-putout) safe: disable nodejs/remove-process-exit
  • (@putout/plugin-nodejs) merge remove-process-exit
  • (putout) remove from default install disabled apply-array-it
  • (package) @putout/plugin-package-json v3.0.0
  • (package) @putout/plugin-putout v9.0.0
  • (package) @putout/plugin-madrun v13.0.0
  • (package) @putout/operate v7.0.0
  • (@putout/plugin-putout) drop support of putout < 24
  • (@putout/plugin-package-json) drop support of putout < 24
  • (@putout/plugin-madrun) drop support of putout < 24
  • (@putout/operate) findProperty -> getProperty

2022.01.11, v23.8.0

feature:

  • (package) @putout/plugin-madrun v12.0.0
  • (@putout/plugin-madrun) drop support of putout < 23
  • (@putout/operate) add getExportDefault
  • (@putout/plugin-madrun) add convert-cut-env-to-run
  • (@putout/plugin-madrun) add convert-run-to-cut-env
  • (@putout/plugin-remove-useless-spread) exclude comments

2022.01.10, v23.7.0

fix:

  • (@putout/plugin-nodejs) convert-dirname-to-url

feature:

  • (putout) eslint: add ability to pass config
  • (eslint-plugin-putout) safe: disable remove-newline-from-empty-objects
  • (eslint-plugin-putout) remove-newline-from-empty-object: add support of inner comments
  • (@putout/plugin-remove-empty) add support of export
  • (@putout/plugin-remove-empty) simplify namings

2022.01.09, v23.6.0

fix:

  • (@putout/engine-runner) find: options
  • (eslint-plugin-putout) add-newline-after-function-call: multiple empty lines
  • feature(@putout/plugin-declare-undefined-variables) add fixtures
  • feature(@putout/engine-runner) add support to clear replace watermarks after fix round is done
  • (@putout/engine-parser) btoa: get back node v14 support
  • (@putout/engine-parser) sourcemap url

feature:

  • (package) @putout/plugin-nodejs v2.0.0
  • (@putout/plugin-nodejs) drop support of putout < 23
  • (@putout/plugin-nodejs) add convert-dirname-to-url
  • (@putout/plugin-putout) declare: add isESM
  • (package) @putout/plugin-convert-commonjs-to-esm v7.0.0
  • (@putout/plugin-convert-commonjs-to-esm) drop support of putout < 23
  • (@putout/plugin-convert-commonjs-to-esm) commonjs: use node.js built-ins, instead of simport
  • (@putout/operator-declare) add ability to pass only "esm" or only "commonjs"
  • (@putout/eslint-config) padding-line-between-statements: add newline before "for", after block-like
  • (eslint-plugin-putout) add-newline-before-function-call: add support of AssignmentExpression
  • (@putout/plugin-tape) add convert-equal-to-deep-equal
  • (@putout/plugin-gitignore) add support of .idea
  • (@putout/plugin-eslint) add apply-safe-align
  • (eslint-plugin-putout) add safe+align
  • (@putout/plugin-declare-undefined-variables) add fixtures
  • (@putout/plugin-putout) declare: add compareAny, compareAll
  • (@putout/plugin-putout) declare: add replaceWithMultiple
  • (@putout/plugin-convert-commonjs-to-esm) require: add support of MemberExpression
  • (@putout/plugin-tape) convert-equal-to-not-ok: add support of equal/notEqual with one argument passed
  • (@putout/plugin-remove-useless-return) add support of nested functions
  • (@putout/compare) is: parseTemplate: avoid caching exception as undefined
  • (@putout/engine-runner) add support to clear replace watermarks after fix round is done

2021.12.30, v23.5.0

fix:

  • (eslint-plugin-putout) newline-function-call-arguments: exclude code contains quote

feature:

  • (putout) add support of sourcemaps
  • (@putout/engine-parser) add sourcemaps support

2021.12.29, v23.4.0

feature:

  • (package) @putout/plugin-package-json v2.0.0
  • (@putout/package-json) drop support of putout < 23
  • (@putout/plugin-putout) declare: add findProperties
  • (@putout/plugin-package-json) add add-type
  • (@putout/operate) add findProperties

2021.12.26, v23.3.0

feature:

  • (package) @putout/operate v6.13.0
  • (package) @putout/plugin-convert-typeof-to-is-type v2.0.0
  • (@putout/plugin-convert-typeof-to-is-type) drop support of putout < 23
  • (@putout/plugin-convert-typeof-to-is-type) add support of MemberExpression
  • (@putout/operate) getBinding/getBindingPath: name: string -> name: string | Node'
  • (@putout/plugin-putout) add includer

2021.12.25, v23.2.0

feature:

  • (package) @putout/plugin-reuse-duplicate-init v3.0.0
  • (package) @putout/plugin-remove-unused-types v2.0.0
  • (package) @putout/engine-runner v12.0.0
  • (@putout/plugin-reuse-duplicate-init) drop support of putout < 23
  • (@putout/plugin-reuse-duplicate-init) add support of MemberExpression
  • (@putout/plugin-remove-unused-types) drop support of putout < 23
  • (@putout/plugin-remove-unused-types) store -> upstore
  • (@putout/engine-runner) add support of upstore
  • (@putout/engine-runner) improve support of Program: exit + exclude
  • (@putout/plugin-github) traverse-property: callback -> return array
  • (putout) rules: exclude "not-rule-*" glob
  • (@putout/rule-add-readme-to-homepage) add

2021.12.23, v23.1.0

fix:

  • (@putout/plugin-convert-for-to-for-of) entries: count i references (should be more then 3)

feature:

  • (@putout/plugin-remove-useless-array-entries) add
  • (@putout/plugin-convert-for-to-for-of) length: add support of destructuring
  • (@putout/plugin-convert-for-to-for-of) entries: add support of destructuring
  • (@putout/plugin-convert-for-to-for-of) add support of entries with declared n
  • (@putout/plugin-convert-for-to-for-of) add support of entries
  • (eslint-plugin-putout) no-unresolved: add support of export declarations
  • (@putout/plugin-remove-useless-escape) set RegExp raw
  • (@putout/plugin-remove-useless-escape) improve support of handling "," in RegExp
  • (@putout/plugin-regexp) remove-useless-group: add support of Alternative

2021.12.21, v23.0.0

feature:

  • (package) @putout/engine-loader v5.0.0
  • (package) @putout/engine-loader v5.0.0
  • (package) @putout/plugin-regexp v4.0.0
  • (@putout/plugin-regexp) drop support of putout < 23
  • (putout) drop jscodeshift support
  • (@putout/engine-loader) drop support of jscodeshift
  • (putout) apply @putout/recast v1.5.1 modifications
  • (eslint-plugin-putout) putout: add ability parse error instead of throw
  • (eslint-plugin-putout) ts: add no-redeclare
  • (@putout/plugin-tape) add-await-to-re-import: add support of nested blocks

2021.12.20, v22.9.0

fix:

  • (@putout/plugin-putout) convert-replace-with: crawl

feature:

  • (@putout/plugin-apply-await-import) exclude cases where parent not VariableDeclarator
  • (@putout/plugin-apply-await-import) add
  • (@putout/plugin-putout) declare: add replaceWith
  • (@putout/plugin-tape) add-args: add support of async functions
  • (package) ts-morph v13.0.2
  • (@putout/plugin-declare-undefined-variables) add support of url
  • (@putout/engine-loader) improve Yarn PnP support (#93)
  • (@putout/plugin-remove-useless-return) improve handling of call expressions
  • (@putout/plugin-tape) add-t-end: exclude case where callback used

2021.12.16, v22.8.2

fix:

  • (@putout/formatter-memory) memry -> memory

feature:

  • (putout) options: ignore: add .pnp.*
  • (@putout/engine-loader) improve support of Yarn PnP (#93)

2021.12.15, v22.8.1

feature:

  • (putout) config: ignore .yarn directory

2021.12.15, v22.8.0

fix:

  • (@putout/processor-css) disable property-no-vendor-prefix, selector-no-vendor-prefix
  • (@putout/engine-parser) try-catch: devDependencies -> dependencies (#92)
  • (@putout/operate) try-catch: dependencies -> devDependencies

feature:

  • (putout) formatters: use chalk v4 to have support of Yarn PnP (https://github.com/yarnpkg/berry/issues/3843)
  • (putout) add support of yarn PnP by formatters loader (#93)
  • (@putout/engine-loader) add support of Yarn PnP (#93)
  • (package) stylelint-config-standard v24.0.0
  • (package) stylelint v14.1.0
  • (@putout/operate) compute: nested MemberExpressions: extract -> compute
  • (@putout/plugin-convert-typeof-to-is-type) exclude undefined undeclared
  • (@putout/operate) compute: exclude values of MemberExpression that cannot be extracted
  • (@putout/plugin-remove-useless-variables) for-of: add support of ArrayPattern
  • (eslint-plugin-putout) wrap: add getSpacesAfterNode
  • (@putout/plugin-putout) add apply-create-test
  • (@putout/plugin-putout) add convert-dirname-to-url
  • (@putout/operator-declare) use isESM from @putout/operate
  • (@putout/operate) add isESM
  • (@putout/formatter-progress-bar) add color constant
  • (@putout/operate) compute: isSimbleMemberExpression: simplify object check: not MemberExpression, not CallExpression -> not computed and Identifier'

2021.12.12, v22.7.0

feature:

  • (package) @putout/plugin-convert-comparison-to-boolean v2.0.0
  • (@putout/operate) compute: add support of evaluate
  • (@putout/plugin-convert-comparison-to-boolean) improve support of member expressions
  • (@putout/plugin-convert-comparison-to-boolean) drop support of putout < 22
  • (@putout/plugin-putout) check-replace-code: simplify
  • (@putout/operate) compute: add support of Literal
  • (@putout/plugin-putout) check-replace-code: use compute from operate
  • (@putout/operate) add compute
  • (@putout/plugin-putout) check-replace-code: add support of MemberExpression in computed property
  • (@putout/plugin-convert-typeof-to-is-type) use getBindingPath from operate
  • (@putout/operate) add getBinding, getBindingPath
  • (@putout/operate) add getBinding
  • (@putout/engine-runner) replace: validation output: ["b"] ["a"] -> ["a"] -> ["b"]
  • (@putout/plugin-putout) add move-require-on-top-level
  • (@putout/test) add support of createTest
  • (@putout/engine-loader) is-enabled: use isBool
  • (@putout/plugin-convert-typeof-to-is-type) improve binding search
  • (@putout/plugin-putout) check-replace-code: exclude computed keys
  • (@putout/plugin-convert-typeof-to-is-type) add support of isSymbol
  • (@putout/plugin-declare-undefined-variables) add support of isSymbol

2021.12.09, v22.6.2

fix:

  • (eslint-plugin-putout) putout: traverse: use faster version

feature:

  • (package) @putout/plugin-remove-useless-return v4.0.0
  • (eslint-plugin-putout) safe: disable no-useless-return
  • (@putout/plugin-remove-useless-return) report: Useless "return" should be avoided -> Avoid useless "return"
  • (@putout/eslint-config) add space-in-parens
  • (eslint-plugin-putout) putout: simplify according to https://github.com/eslint/eslint/issues/15394#issuecomment-989410995
  • (package) @babel/traverse v7.16.3

2021.12.08, v22.6.1

fix:

  • (putout) transform: runPlugins: rm useless parser

feature:

2021.12.07, v22.6.0

feature:

  • (putout) add exit code: CANNOT_LOAD_FORMATTER
  • (package) @putout/formatter-json-lines v2.0.0
  • (@putout/formatter-json-lines) convert to ESM (#91)
  • (package) @putout/formatter-stream v3.0.0
  • (package) @putout/formatter-json v2.0.0
  • (package) @putout/formatter-json v2.0.0
  • (package) @putout/formatter-json v2.0.0
  • (package) @putout/formatter-json v2.0.0
  • (@putout/formatter-json) convert to ESM (#91)
  • (@putout/formatter-stream) convert to ESM (#91)

2021.12.07, v22.5.5

feature:

  • (package) @putout/formatter-frame v2.0.0
  • (@putout/formatter-frame) convert to ESM (#91)

2021.12.07, v22.5.4

fix:

  • (@putout/plugin-putout) convert-putout-test-to-create-test: declared createTest

feature:

  • (package) @putout/formatter-codeframe v3.0.0
  • (@putout/formatter-codeframe) convert to ESM (#91)

2021.12.07, v22.5.3

fix:

  • (eslint-plugin-putout) objects-braces-inside-array: whitespaces before open brace

feature:

  • (package) @putout/formatter-memory v2.0.0
  • (@putout/formatter-memory) convert to ESM (#91)
  • (package) @putout/formatter-dump v3.0.0

2021.12.07, v22.5.2

fix:

  • (@putout/operator-declare) simplify

feature:

  • (package) @putout/formatter-dump v3.0.0
  • (package) @putout/formatter-dump v3.0.0
  • (@putout/formatter-dump) convert to ESM (#91)
  • (package) @putout/plugin-remove-useless-escape v2.0.0
  • (eslint-plugin-putout) objects-braces-inside-array: add support of newlines in the middle
  • (@putout/plugin-remove-useless-escape) drop support of node < 14
  • (@putout/plugin-remove-useless-escape) add support of comma
  • (@putout/plugin-putout) add convert-putout-test-to-create-test
  • (@putout/operator-declare) add ability to handle missing case of dual package
  • (@putout/plugin-putout) add apply-async-formatter (#91)
  • (@putout/tape) add support of reRequire

2021.12.05, v22.5.1

feature:

  • (package) @putout/plugin-declare-undefined-variables v6.0.0
  • (package) @putout/plugin-tape v7.0.0
  • (package) @putout/operator-declare v2.0.0
  • (@putout/operator-declare) drop support of putout < 22.5
  • (@putout/plugin-tape) drop support of putout < 22.5
  • (@putout/plugin-tape) declare: add mockImport
  • (@putout/plugin-declare-undefined-variables) mv mock-import to @putout/plugin-tape
  • (@putout/plugin-declare-undefined-variables) drop support of putout < 22.5
  • (@putout/plugin-declare-undefined-variables) simport: add support of dual packages
  • (@putout/operator-declare) add support of dual packages: esm and commonjs

2021.12.04, v22.5.0

fix:

  • (@putout/plugin-convert-mock-require-to-mock-import) handle no stopAll case

feature:

  • (@putout/plugin-declare-undefined-variables) add support of simport
  • (package) @putout/formatter-progress-bar v2.0.0
  • (@putout/test) format: improve ability to test ESM
  • (@putout/plugin-convert-commonjs-to-esm) require: call: exclude dot dot
  • (@putout/plugin-declare-undefined-variables) add fresh-import
  • (@putout/formatter-progress-bar) convert to ESM
  • (package) @putout/plugin-convert-commonjs-to-esm v6.0.0
  • (package) @putout/formatter-progress v3.0.0
  • (@putout/formatter-progress) convert to ESM
  • (@putout/plugin-convert-commonjs-to-esm) drop support of putout < 22
  • (@putout/plugin-convert-commonjs-to-esm) require: improve support of namespaces: PascalCase -> kebabCase
  • (@putout/test) v4.0.0
  • (putout) add support of ESM formatters
  • (@putout/formatter-eslint) convert to ESM
  • (@putout/formatter-eslint) convert to async
  • (@putout/test) format: convert to async
  • (putout) add support of async formatters
  • (@putout/plugin-declare-undefined-variables) add support of zlib
  • (@putout/plugin-declare-undefined-variables) logical: add id
  • (@putout/plugin-declare-undefined-variables) add logical

2021.12.02, v22.4.0

feature:

  • (putout) add env variable PUTOUT_CONFIG_FILE
  • (eslint-plugin-putout) ts: add extension rules
  • (eslint-plugin-putout) ts: enable @typescript-eslint/type-annotation-spacing
  • (eslint-plugin-putout) safe: add remove-useless-arguments
  • (eslint-plugin-putout) tape-remove-newline-before-t-end: add support of case when no assertions found before t.end()
  • (eslint-plugin-putout) ts: disable: ban-types, no-explicit-any, no-empty-function
  • (package) eslint-plugin-putout v12.0.0
  • (eslint-plugin-putout) drop support of putout < 22
  • (eslint-plugin-putout) add first class support of typescript
  • (eslint-plugin-putout) improve support of add-newline-{before,after}-function-call
  • (@putout/plugin-remove-empty-pattern) add support of nested ArrayPattern

2021.12.01, v22.3.4

fix:

  • (putout) validate-options: add support of boolean

2021.11.30, v22.3.3

fix:

  • (putout) validate-options: add support of optional message

2021.11.30, v22.3.2

fix:

  • (putout) validate-options: rm rule names: has no sense for validation as any rule provided by plugin supported

2021.11.30, v22.3.1

feature:

  • validate-options: improve support of rules, match
  • (putout) validate-options: improve validations: ignore, processors
  • (putout) validate-options: add descriptions

2021.11.30, v22.3.0

feature:

  • (putout) add config validation
  • (@putout/plugin-remove-empty-pattern) improve support of nested destructuring
  • (@putout/plugin-tape) add-stop-all: add support of mockRequire
  • (@putout/plugin-remove-unused-variables) improve support of nested destructuring

2021.11.28, v22.2.1

fix:

  • (@putout/plugin-remove-constant-conditions) report: "constant conditions should not be used" -> "Avoid constant conditions"

feature:

  • (package) @putout/plugin-madrun v11.0.0
  • (putout) improve ability to test from IDE
  • (@putout/plugin-madrun) drop support of putout < 22
  • (@putout/plugin-madrun) add declare
  • (eslint-plugin-putout) putout: add ability to preserve comments places

2021.11.27, v22.2.0

fix:

  • (@putout/plugin-remove-unused-variables) OptionalMemberExpression: computed property
  • (eslint-plugin-putout) array-element-newline: minimum elements: 4 -> 5
  • (eslint-plugin-putout) add-newlinew-before-function-call: trimmed whitespaces on empty line
  • (eslint-plugin-putout) add-newline-before-function-call: add support of comments
  • (eslint-plugin-putout) add-newline-before-function-call: continue -> return

feature:

  • (package) @putout/plugin-remove-constant-conditions v3.0.0
  • (@putout/plugin-remove-constant-conditions) drop support of node < 14
  • (@putout/plugin-remove-constant-conditions) add support of consequent not body
  • (eslint-plugin-putout) safe: disable remove-unreachable-code
  • (@putout/plugin-remove-unused-variables) improve support of OptionalMemberExpression
  • (eslint-plugin-putout) add-newline-after-function-call: add support of ArrayExpression and ObjectExpression
  • (eslint-plugin-putout) add add-newline-after-function-call
  • (@putout/eslint-config) padding-line-between-statements: add support of while
  • (eslint-plugin-putout) add add-newline-before-function-call
  • (@putout/eslint-config) add func-call-spacing (https://eslint.org/docs/rules/func-call-spacing)
  • (eslint-plugin-putout) plugin-tape-remove-newline-before-t-end: add support of trimmed newline
  • (eslint-plugin-putout) add add-newline-before-t-end
  • (@putout/plugin-declare-undefined-variables) add maybeEmptyArray
  • (eslint-plugin-putout) array-element-newline: add support of Identifier
  • (@putout/eslint-config) padding-line-between-statements: add newline between for and return
  • (@putout/plugin-remove-useless-spread) add support of logical expressions

2021.11.21, v22.1.1

feature:

  • (package) yargs-parser v21.0.0

2021.11.21, v22.1.0

fix:

  • (@putout/plugin-convert-quotes-to-backticks) a couple newlines
  • (@putout/plugin-convert-quotes-to-backticks) newlines

feature:

  • (putout) *.md: disable convert-quotes-to-backticks
  • (@putout/plugin-convert-quotes-to-backtics) add support of newlines
  • (eslint-plugin-putout) objects-braces-inside-array: enable for json, disable for yaml

2021.11.19, v22.0.2

fix:

  • (@putout/plugin-convert-generic-to-shorthand) exclude when no type parameters

feature:

  • (package) @putout/plugin-convert-generic-to-shorthand v2.0.0
  • (@putout/plugin-convert-generic-to-shorthand) drop support of node < 14
  • (eslint-plugin-putout) add array-element-newline
  • (eslint-plugin-putout) add remove-empty-newline-before-first-specifier
  • (@putout/engine-parser) export babel/plugins
  • (@putout/engine-parser) export acorn, espree, esprima
  • (@putout/engine-parser) export babel parser
  • (@putout/plugin-tape) convert-ok-to-match: exclude: keys
  • (@putout/plugin-tape) convert-ok-to-match: rm RegExp, t.match adds it
  • (eslint-plugin-putout) single-property-destructuring: exclude ImportSpecifier with local different then imported
  • (@putout/compare) add support of empty template
  • (eslint-plugin-putout) remove-empty-newline-after-last-specifier: add support of ObjectExpression

2021.11.14, v22.0.1

fix:

  • (putout) parse-options: read rules: directory with config -> current working directory
  • (@putout/engine-processor) markdown disable change without fix in favour of simpler rules
  • (@putout/processor-markdown) add support of rules splited to fix and traverse

feature:

  • (@putout/rules-set-homepage) update homepage so it linked to package directory (#88)
  • (@putout/processor-markdown) add merge-heading-spaces
  • (@putout/processor-markdown) add support of rules splited to fix and traverse
  • (@putout/processor-markdown) rules: add remove-dependencies-badge (#85)
  • (@putout/plugin-tape) remove-stop-all: add support of traceImport

2021.11.10, v22.0.0

feature:

  • (putout) remove apply-filter-boolean from default install, use remove-useless-functions instead'

2021.11.10, v21.6.0

feature:

  • (package) @putout/plugin-remove-useless-functions v2.0.0
  • (@putout/plugin-remove-useless-functions) drop support of node < 14
  • (putout) apply-filter-boolean: disabled and will be removed in next major version
  • (@putout/plugin-remove-useless-functions) add support of id
  • (eslint-plugin-putout) add babel options from @putout/engine-parser for TypeScript and Markdown
  • (@putout/engine-parser) export babel/options
  • (@putout/plugin-tape) add-stop-all: add support of test.only(), test.skip()
  • (@putout/plugin-tape) remove-stop-all: add support of test.only(), test.skip()

2021.11.10, v21.5.0

feature:

  • (putout) terminal: add support of WebStorm, VS Code
  • (@putout/plugin-tape) add remove-stop-all
  • (@putout/plugin-tape) add add-await-to-re-import
  • (@putout/plugin-tape) add-stop-all: add support of async functions
  • (eslint-plugin-putout) add add-newlines-between-types-in-union

2021.11.08, v21.4.0

feature:

  • (@putout/plugin-remove-duplicates-from-union) add

2021.11.08, v21.3.0

feature:

  • (@putout/plugin-convert-quotes-to-backticks) add
  • (@putout/plugin-remove-useless-escape) add support of escaping single quotes in backquotes
  • (eslint-plugin-putout) add remove-newline-from-empty-object
  • (eslint-plugin-putout) add remove-empty-newline-after-last-specifier
  • (@putout/plugin-declare-undefined-variables) add support of child_process
  • (@putout/plugin-declare-undefined-variables) add pullout, pipe-io
  • (@putout/plugin-declare-undefined-variables) add support of os
  • (@putout/plugin-declare-undefined-variables) add currify, wraptile

2021.11.06, v21.2.0

fix:

  • (@putout/plugin-remove-useless-return) exclude nodes with comments

feature:

  • (package) @putout/plugin-putout-config v2.0.0
  • (@putout/plugin-putout-config) drop support of node < 14
  • (@putout/plugin-apply-is-array) add support of "inline" option (https://github.com/xtermjs/xterm.js/pull/3538#discussion_r743663993)
  • (@putout/plugin-putout-config) improve support of plugin options
  • (@putout/operator-declare) improve VariableDeclaration check
  • (@putout/plugin-declare-undefined-variables) maybe: add maybeFn
  • (eslint-plugin-putout) safe: disable remove-useless-return
  • (eslint-plugin-tape) add tape-add-newline-between-tests

2021.11.02, v21.1.2

feature:

  • (@putout/plugin-apply-is-array) drop support of putout < 21
  • (@putout/plugin-apply-is-array) Array.isArray -> isArray
  • (@putout/plugin-declare-undefined-variables) add support of isUndefined
  • (@putout/plugin-convert-typeof-to-is-type) add support of isUndefined

2021.11.02, v21.1.1

fix:

  • (putout) strict-mode/add: on, strict-mode/remove: on -> strict-mode: on

feature:

  • (@putout/engine-loader) add support of namespaced plugins

2021.11.01, v21.1.0

feature:

2021.10.31, v21.0.0

fix:

  • (@putout/plugin-tape) drop support of putout < 21

feature:

  • (putout) eslint-plugin-putout v11.0.0
  • (eslint-plugin-putout) drop support of putout < 21
  • (package) @putout/plugin-tape v6.0.0
  • (@putout/plugin-tape) drop support of putout <= v20.20
  • (@putout/plugin-tape) add remove-only, remove-skip

2021.10.29, v20.19.2

fix:

  • (putout) --help: plugins list -> plugins

2021.10.29, v20.19.1

fix:

  • (putout) --help: --match [file name] -> --match [pattern]

2021.10.28, v20.19.0

fix:

  • (@putout/plugin-remove-unused-variables) add support of computed key

feature:

  • (package) @putout/processor-yaml v3.0.0
  • (@putout/processor-yaml) drop support of putout < 20
  • (@putout/processor-yaml) js-yaml -> yaml: useless quotes (nodeca/js-yaml#645)
  • (eslint-plugin-putout) safe: disable remove-unused-types

2021.10.22, v20.18.0

feature:

2021.10.21, v20.17.0

fix:

  • (@putout/plugin-remove-unused-variables) typescript dts

feature:

  • (putout) declare-undefined-variables: disable for *.d.ts
  • (@putout/plugin-convert-typeof-to-is-type) add support of upper scopes
  • (@putout/plugin-convert-typeof-to-is-type) exclude binded values
  • (@putout/plugin-convert-typeof-to-is-type) exclude VariableDeclarator
  • (eslint-plugin-putout) tape-add-newline-before-assertion: add support of test.skip(), test.only()

2021.10.20, v20.16.1

fix:

  • (@putout/plugin-convert-array-copy-to-slice) exclude fn call, @putout/plugin-remove-useless-spread will handle it

feature:

  • (package) @putout/plugin-convert-array-copy-to-slice v2.0.0
  • (@putout/plugin-convert-array-copy-to-slice) drop support of node < 14

2021.10.20, v20.16.0

feature:

  • (@putout/plugin-declare-undefined-variables) add support of maybeArray
  • (@putout/operator-declare) add support of one variable
  • (@putout/plugin-convert-typeof-to-is-type) add
  • (@putout/operator-add-args) add support of patterns array
  • (@putout/compare) compareAny: add support of not array
  • (@putout/compare) compareAll: add ability to pass not array as nodes
  • (@putout/plugin-declare-undefined-variables) add support of is-type

2021.10.20, v20.15.0

feature:

  • (package) @putout/plugin-github v2.0.0
  • (@putout/plugin-github) drop support of putout < 20
  • (@putout/plugin-github) add set-setup-node-version
  • (@putout/plugin-github) add set-checkout-version
  • (@putout/plugin-github) set-node-versions: add v17

2021.10.19, v20.14.0

feature:

  • (putout) ci formatter: dump -> stream

2021.10.19, v20.13.0

feature:

  • (package) @putout/plugin-tape v5.0.0
  • (package) @putout/plugin-putout v8.0.0
  • (@putout/plugin-putout) drop support of putout < 20.13
  • (@putout/plugin-tape) drop support of putout < 20.13
  • (@putout/plugin-tape) declare-t -> add-args
  • (@putout/plugin-putout) add-missing-argument -> add-args
  • (@putout/plugin-putout) add convert-add-argument-to-add-args
  • (@putout/operator-add-args) renamed from @putout/operator-add-argument
  • (@putout/operator-argument) renamed to @putout/operator-add-args
  • (eslint-plugin-putout) add tape-add-new-line-before-assertion

2021.10.18, v20.12.0

feature:

  • (package) @putout/plugin-remove-skip v4.0.0
  • (package) @putout/plugin-remove-only v5.0.0
  • (@putout/plugin-remove-only) drop support of node < 14
  • (@putout/plugin-remove-skip) drop support of node < 14
  • (@putout/plugin-remove-skipt) add support of options
  • (@putout/plugin-remove-only) add support of options

2021.10.17, v20.11.0

feature:

  • (@putout/cli-cache) add

2021.10.17, v20.10.3

feature:

  • (putout) json-stable-stringify -> json-stable-stringify-without-jsonify

2021.10.17, v20.10.2

fix:

  • (putout) --help -> --disable-all -> save them 'putout.json'-> save them to 'putout.json'

feature:

2021.10.07, v20.10.1

fix:

  • (putout) cli: parse-options: --rulesdir when no package.json or .putout.json found

feature:

  • (@putout/operator-add-argument) add support of labaled statement
  • (@putout/operator-add-argument) add support of options
  • (@putout/operator-add-argument) exclude blocks that is not a function
  • (@putout/plugin-tape) declare-t: simplify

2021.10.06, v20.10.0

feature:

  • (@putout/plugin-putout) declare: add addArgument
  • (@putout/plugin-putout) add-missing-argument: add compare
  • (@putout/operator-add-argument) add
  • (@putout/plugin-putout) add-missing-argument: add support of case where it is not test
  • (@putout/plugin-putout) add add-missing-argument
  • (eslint-plugin-putout) no-unresolved: add support of dynamic import
  • (@putout/plugin-declare-undefined-variables) add support of eslint
  • (eslint-plugin-putout) ts: disable no-var
  • (@putout/plugin-putout) declare: operator: add support of declare

2021.10.03, v20.9.0

feature:

  • (@putout/plugin-putout) check-replace-code: add support of top level comparison __a, "hello"
  • (@putout/compare) add support of top level comparison __a === "hello world"
  • (@putout/plugin-remove-useless-constructor) add

2021.10.03, v20.8.0

fix:

  • feature(@putout/engine-runner) add ability to pass options to fix

feature:

  • (@putout/plugin-tape) use isSimpleRegExp from operator
  • (package) @putout/plugin-regexp v3.0.0
  • (@putout/plugin-regexp) drop support of putout < 20
  • (@putout/plugin-putout) declare: add isSimpleRegExp
  • (@putout/operator-regexp) add
  • (package) estrace v3.0.2
  • (@putout/plugin-tape) declare: add Test, Stub
  • (@putout/plugin-tape) declare-t: add support of empty body
  • (@putout/engine-runner) add ability to pass options to fix
  • (@putout/operator-declare) add ability to pass options with declarations
  • (eslint-plugin-putout) add evaluate (https://github.com/coderaiser/putout/tree/master/packages/eslint-plugin-putout/lib/evaluate)

2021.10.02, v20.7.1

feature:

  • (@putout/plugin-putout) declare: use operator.declare
  • (@putout/plugin-tape) use operator.declare
  • (package) @putout/plugin-declare-undefined-variables v5.0.0
  • (@putout/plugin-declare-undefined-variables) rm export declare: drop supoport of putout < 20.7

2021.10.02, v20.7.0

feature:

  • (@putout/operator-declare) add

2021.10.01, v20.6.1

fix:

  • (@putout/plugin-declare-undefined-variables) declare: template.ast -> template.ast.fresh
  • (@putout/plugin-merge-duplicate-imports) report: Avoid duplicate imports
  • (@putout/plugin-merge-duplicate-imports) importKind -> importKind=type

feature:

  • (putout) *.md: disable declare-undefined-variables
  • (@putout/cli-ruller) add support of tuple
  • (@putout/plugin-declare-undefined-variables) add support of putout
  • (@putout/eslint-config) add dot-notation (https://eslint.org/docs/rules/dot-notation)
  • (@putout/plugin-merge-duplicate-imports) drop support of node < 14

2021.10.01, v20.6.0

feature:

  • (package) @putout/plugin-reuse-duplicate-init v2.0.0
  • (package) @putout/plugin-tape v4.0.0
  • (package) @putout/plugin-reuse-duplicate-init v2.0.0
  • (@putout/plugin-reuse-duplicate-init) drop support of node < 14
  • (package) @putout/plugin-tape v4.0.0
  • (@putout/plugin-tape) drop support of putout < 20
  • (@putout/plugin-tape) merge declare-stub with declare-test
  • (@putout/plugin-tape) add declare-test

2021.09.30, v20.5.2

fix:

  • (putout) parse-options: convert to esm/commonjs when no .putout.json found, but package.json
  • (@putout/plugin-tape) convert-deep-equal-to-equal: exclude regexp
  • (@putout/plugin-tape) add-t-end: t.end() not last operation
  • (@putout/cli-match) match exists with the same pattern
  • (@putout/plugin-merge-destructuring-properties) add crawl for @putout/plugin-putout/declare

feature:

  • (@putout/plugin-convert-commonjs-to-esm) commons: report: improve message
  • (@putout/plugin-convert-commonjs-to-esm) commons: add support of top level require
  • (@putout/plugin-convert-commonjs-to-esm) require: exclude package.json
  • (@putout/plugin-tape) declare-t: add support of upper scope
  • (@putout/plugin-tape) add convert-deep-equal-to-equal
  • (@putout/plugin-tape) add convert-equal-to-called-once
  • (@putout/plugin-convert-equal-to-not-ok) add support of undefined
  • (@putout/plugin-tape) convert-equal-to-ok: report: more details
  • (@putout/plugin-tape) convert-equal-to-not-ok: report: more details
  • (@putout/plugin-tape) convert-equal-to-not-ok: add support of deep-equal
  • (@putout/plugin-tape) convert-equal-to-ok: add support of t.deepEqual()
  • (@putout/plugin-putout) apply-processors-destructuring: add support of t.end()
  • (@putout/plugin-putout) apply-processors-destructuring: add support of noProcess
  • (@putout/plugin-tape) add-t-end: add support of async
  • (@putout/plugin-tape) add add-stop-all
  • (@putout/plugin-putout) declare: add template
  • (@putout/plugin-declare-undefined-variables) add support of path from node.js

2021.09.25, v20.5.1

feature:

  • (package) @putout/plugin-declare-undefined-variables v4.1.0

2021.09.25, v20.5.0

fix:

  • (@putout/test) leak of plugins used in t.transform()
  • (@putout/plugin-tape) apply-with-name: not declared
  • (@putout/plugin-declare-undefined-variables) get back record, to have eslint-plugin-putout support

feature:

  • (package) @putout/compare v8.0.0
  • (package) @putout/traverse v4.0.0
  • (@putout/traverse) drop support of node < 14
  • (package) @putout/compare v8.0.0
  • (package) @putout/compare v8.0.0
  • (package) @putout/compare v8.0.0
  • (@putout/compare) getTemplateValues: add validation of input
  • (@putout/plugin-tape) add remove-useless-t-end
  • (@putout/plugin-putout) declare: add addTemplateValues
  • (@putout/plugin-tape) add-t-end
  • (@putout/plugin-declare-undefined-variables) add support of once
  • (@putout/plugin-putout) declare add precalculated json with types (@putout/plugin-declare-undefined-variables v4.0.0)
  • (@putout/plugin-declare-undefined-variables) add fs/promises
  • (@putout/plugin-declare-undefined-variables) add support of noop
  • (@putout/plugin-declare-undefined-variables) simplify declarations
  • (@putout/plugin-tape) add sync-with-name
  • (@putout/plugin-tape) add apply-with-name
  • (@putout/plugin-declare-undefined-variables) add support of Object.defineProperty

2021.09.22, v20.4.0

feature:

  • (@putout/plugin-remove-useless-new) add
  • (@putout/plugin-putout) declare: types: add support of types checkers provided by babel
  • (@putout/plugin-declare-undefined-variables) add readFileSync, writeFile, writeFileSync
  • (@putout/plugin-declare-undefined-variables) move out node.js API
  • (@putout/plugin-tape) add remove-useless-not-called-args
  • (@putout/plugin-putout) declare: add support of types, isIdentifier

2021.09.21, v20.3.2

feature:

  • (package) @putout/plugin-declare-undefined-variables v3.0.0
  • (package) @putout/plugin-declare-undefined-variables v3.0.0
  • (@putout/plugin-declare-undefined-variables) drop support of putout < 20
  • (@putout/plugin-declare-undefined-variables) speed up using ReferencedIdentifier
  • (@putout/plugin-declare-undefined-variables) add support of isArray
  • (package) @putout/plugin-remove-useless-variables v5.0.0
  • (package) @putout/plugin-tape v3.5.0
  • (package) @putout/plugin-remove-useless-variables v5.0.0
  • (package) @putout/plugin-remove-empty v6.0.0
  • (package) espree v9.0.0

2021.09.19, v20.3.1

feature:

  • (package) @putout/plugin-putout v7.0.0
  • (@putout/plugin-putout) drop support of putout < 20
  • (@putout/plugin-putout) declare: add
  • (@putout/plugin-declare-undefined-variables) add support of lazy building of nodes
  • (@putout/plugin-declare-undefined-variables) export declare

2021.09.19, v20.3.0

fix:

  • (@putout/plugin-convert-esm-to-commonjs) duplicate report

feature:

  • (@putout/plugin-remove-useless-escape) "+" -> "+"
  • (@putout/plugin-remove-useless-escape) regexp: add support of slash
  • (putout) add ability to detect package type (module/commonjs) and apply matching converters
  • (@putout/plugin-declare-undefined-variables) values -> Object.values
  • (@putout/plugin-remove-useless-escape) add support of regexp
  • (@putout/plugin-tape) add remove-default-messages
  • (@putout/plugin-tape) convert-match-regexp-to-string: add support of notMatch
  • (@putout/tape) add declare-t
  • (@putout/plugin-tape) convert-called-with-no-args-to-called-with: add support of identifier used as second arg
  • (eslint-plugin-putout) no-unresolved: add support of "main" entry of "package.json"

2021.09.16, v20.2.0

fix:

  • chore(nycrc) exclude: fixture -> *fixture

feature:

  • (eslint-plugin-putout) no-resolve: add support of import directory
  • (putout) export putout/eslint
  • (eslint-plugin-putout) add no-unresolved
  • (@putout/plugin-declare-undefined-variables) add support of basename, dirname, extname from path
  • (package) @putout/plugin-remove-useless-async v4.0.0
  • (@putout/plugin-remove-useless-async) drop support of node < 14
  • (@putout/plugin-remove-useless-async) report: Useless async should be avoided -> Avoid useless async
  • (@putout/plugin-declare-undefined-variables) add support of reImport, stopAll
  • (@putout/plugin-remove-duplicate-keys) add support of rename while destructuring
  • (eslint-plugin-putout) safe: disable remove-unused-for-of-variables

2021.09.15, v20.1.0

fix:

  • (eslint-plugin-putout) putout/ide -> putout/safe

feature:

  • (help) improve help (#81) (thanks a lot to @egilll πŸŽ‰!)
  • (@putout/plugin-declare-undefined-variables) add support of Object.keys
  • (@putout/plugin-tape) add convert-called-with-args
  • (@putout/engine-loader) add ☝️ when cannot determine plugin type
  • (@putout/engine-runner) add support of "include" not a function in Includer
  • (package) @putout/plugin-eslint v2.0.0
  • (@putout/plugin-eslint) drop support of putout < 20
  • (@putout/plugin-eslint) add convert-ide-to-safe

2021.09.12, v20.0.1

fix:

  • (eslint-plugin-putout) putout/ide -> putout/safe

feature:

  • (package) @putout/plugin-eslint v2.0.0
  • (@putout/plugin-eslint) drop support of putout < 20
  • (@putout/plugin-eslint) add covert-ide-to-safe
  • (@putout/engine-loader) parse-rules: validation: add ☝️
  • (package) eslint-plugin-putout v10.0.0

2021.09.12, v20.0.0

fix:

  • (eslint-plugin-putout) package: description: plagin -> plugin
  • (putout) export: putout/lib/parse-options -> putout/parse-options (#48)
  • (@putout/plugin-putout-config) examples
  • (@putout/test) homepage
  • (@putout/engine-runner) rm "☝️ " -> "☝️""
  • docs(@putout/test) add Autofix

feature:

  • (putout) eslint-plugin-putout v10.0.0
  • (eslint-plugin-putout) drop support of putout < 20
  • (putout) add ability to import exit codes enum
  • (package) improve description
  • (putout) help: remove enabled by default options
  • (putout) cli: add 🐊 to error messages
  • (putout) cli: add ability to exit with error when ruler toggler used without a path
  • (@putout/plugin-putout-config) add remove-empty
  • (@putout/plugin-putout) add apply-processors-destructuring
  • (@putout/engine-runner) add ☝️
  • (@putout/plugin-putout) add convert-traverse-to-replace
  • (@putout/engine-runner) improve error message when visitor provided to Traverser is not a function (https://github.com/coderaiser/putout/tree/v19.7.1/packages/engine-runner#traverser)
  • (eslint-plugin-putout) ide: disable remove-unused-expressions
  • (@putout/plugin-tape) add convert-called-with-no-args-to-called-with
  • (@putout/plugin-putout) check-replace-code: __array: add support of CallExpression
  • (@putout/engine-loader) validate-rules: throw when passing options to nested plugin (instead of go nowhere) (coderaiser/estrace#4)
  • (@putout/engine-runner) throw error when no visitor

2021.09.05, v19.7.1

fix:

  • (@putout/cli-validate-args) quote -> back quote
  • (putout) cli: --disable-all + --quotes feature:
  • (@putout/plugin-apply-montag) improve support of newlines

2021.09.04, v19.7.0

fix:

  • (@putout/cli-ruler) export: named -> default

feature:

  • (@putout/plugin-tape) add convert-ok-to-called-with
  • (package) find-up v6.0.0
  • (@putout/plugin-apply-montag) add

2021.09.04, v19.6.0

feature:

  • (package) @putout/plugin-declare-undefined-variables v2.0.0
  • (@putout/plugin-declare-undefined-variables) drop support of putout < 19
  • (@putout/plugin-declare-undefined-variables) report: change
  • (@putout/plugin-declare-undefined-variables) add support of montag
  • (@putout/compare) isTemplate: add support of "."
  • (package) @putout/plugin-remove-empty v6.0.0
  • (@putout/plugin-remove-empty) drop support of putout < 19
  • (package) @putout/plugin-remove-empty-pattern v4.0.0
  • (@putout/plugin-remove-empty-pattern) drop support of node < 14
  • (@putout/plugin-remove-empty-pattern) add support of let declaration and assignment
  • (@putout/plugin-putout) check-replace-code: generate code: __array: add support of AssignmentPattern
  • (@putout/plugin-remove-empty-pattern) add support of ArrayPattern full of empty elements
  • (@putout/plugin-putout) check-replace-code: add support of ArrayPattern used as function argument

2021.09.03, v19.5.0

fix:

  • (@putout/plugin-remove-useless-return) exclude CallExpression

feature:

  • (@putout/plugin-remove-useless-return) add support of LogicalExpression
  • (@putout/plugin-remove-useless-return) excludew TemplateLiteral
  • (@putout/plugin-remove-useless-return) excludew NewExpression
  • (package) @putout/plugin-remove-useless-return v3.0.0
  • (@putout/plugin-remove-useless-return) drop support of putout < 19
  • (@putout/plugin-remove-useless-return) add support of const declaration

2021.09.02, v19.4.0

feature:

  • (@putout/cli-ruler) move out from putout

2021.09.01, v19.3.1

fix:

  • (putout) cli: error message correction: --fix + --disable

2021.09.01, v19.3.0

fix:

  • feature(putout) exit with error when "--fix" used with "--enable(-all)" or "--disable(-all)" (#77)
  • (@putout/plugin-declare-undefined-variables) mockImport: multiple declarations

feature:

  • (putout) exit with error when "--fix" used with "--enable(-all)" or "--disable(-all)" (#77)
  • (@putout/plugin-regexp) remove-useless-group: allow only test, search match (#74)
  • (@putout/plugin-apply-filter-boolean) add
  • (eslint-plugin-putout) rm category (https://eslint.org/blog/2021/08/eslint-v8.0.0-beta.1-released)

2021.08.31, v19.2.0

feature:

2021.08.27, v19.1.0

fix:

  • (@putout/plugin-remove-nested-blocks) declared

feature:

  • (package) @putout/plugin-remove-useless-variables v5.0.0
  • (package) @putout/plugin-remove-nested-blocks v4.0.0
  • (package) @putout/plugin-tape v3.0.0
  • (package) @putout/engine-runner v11.0.0
  • (@putout/plugin-remove-useless-variables) drop support of putout < 19
  • (@putout/plugin-remove-nested-blocks) drop support of putout < 19
  • (@putout/plugin-tape) drop support of putout < 19
  • (@putout/plugin-tape) simplify according to @putout/engine-runner crawling
  • (@putout/plugin-remove-useless-variables) rm binding check
  • (@putout/engine-runner) replace: add crawl
  • (@putout/plugin-declare-undefined-variables) add support of mockImport (https://github.com/coderaiser/mock-import)

2021.08.25, v19.0.2

fix:

  • (putout) remove-useless-await -> promises/remove-useless-await

feature:

  • (@putout/plugin-promises) add @putout/plugin-remove-useless-await
  • (@putout/plugin-convert-commonjs-to-esm) require: add support of chaining
  • (@putout/plugin-convert-commonjs-to-esm) commons: add support of top-level-require
  • (@putout/plugin-convert-commonjs-to-esm) add support of declared require
  • (@putout/plugin-convert-commonjs-to-esm) require: excluded binded
  • (@putout/plugin-convert-commonjs-to-esm) require: add support of kebab-case
  • (@putout/plugin-convert-commonjs-to-esm) add support of const __a = require("__b")(__args)

2021.08.25, v19.0.1

fix:

  • (@putout/plugin-apply-top-level-await) add to @putout/plugin-promises

feature:

  • (@putout/plugin-regexp) remove-useless-group: add support of replaceAll (#74)
  • (@putout/plugin-regexp) remove-useless-group: exclude exec (#74)
  • (@putout/plugin-regexp) remove-useless-group: exclude VariableDeclaration (#74)
  • (@putout/plugin-regexp) remove-useless-group: exclude split, replace (#74)

2021.08.23, v19.0.0

fix:

  • (@putout/cli-validate-args) switch to dynamic import
  • (@putout/plugin-regexp) convert-to-string: false positive with Char of kind meta: \d
  • (@putout/eslint-config) peerDependency
  • (eslint-plugin-putout) peerDependencies: eslint

feature:

  • (package) @putout/plugin-promises v6.0.0
  • (@putout/operate) extract: add support of ClassMethod
  • (putout) remove-useless-async -> promises/remove-useless-async
  • (@putout/plugin-promises) add @putout/plugin-remove-useless-async
  • (@putout/plugin-remove-useless-async) add support of functions with return
  • (@putout/plugin-madrun) add remove-check-duplicates-from-test

2021.08.18, v18.16.0

feature:

  • (package) supertape v6.0.1
  • (putout) disable remove-unreachable-code for markdown
  • (eslint-plugin-putout) reuse ts in markdown
  • (eslint-plugin-putout) markdown: disable no-unreachable
  • (eslint-plugin-putout) add support of typescript
  • (@putout/plugin-remove-useless-map) add support of id function

2021.08.16, v18.15.0

fix:

  • (@putout/compare) link: arrays
  • (putout) parse-options: read rules with "putout-plugin" prefix
  • (eslint-plugin-putout) rm additional esm handling
  • (@putout/engine-runner) empty key

feature:

  • (putout) eslint-plugin-putout v9.0.0
  • (putout) eslint v8 (https://eslint.org/blog/2021/08/eslint-v8.0.0-beta.0-released)
  • (eslint-plugin-putout) drop support of eslint < 8
  • (@putout/eslint-config) add support of es2022
  • (eslint-plugin-putout) node: disable node/no-unsupported-features/es-syntax
  • (@putout/plugin-tape) convert-match-regexp-to-string: add ability to check if regexp is simple
  • (@putout/plugin-regexp) export isSimpleRegExp
  • (@putout/plugin-tape) add convert-match-regexp-to-string
  • (@putout/processor-markdown) remark-preset-lint-consistent v5.0.0
  • (@putout/engine-parser) babel: enable allowImportExportEverywhere: to use ImportDeclaration in block while transform
  • (@putout/compare) add support of templates beginning with big char

2021.08.10, v18.14.0

feature:

  • (putout) --match: reformulate
  • (@putout/plugin-apply-is-array) add
  • (@putout/compare) add support of template contains big char

2021.08.10, v18.13.0

fix:

  • (eslint-plugin-putout) single-property-destructuring: miss import with single specifier

feature:

2021.08.06, v18.12.0

feature:

  • (@putout/plugin-apply-utility-types) add

2021.08.06, v18.11.0

feature:

  • (@putout/plugin-remove-useless-mapping-modifiers) add
  • (package) remark-stringify v10.0.0
  • (package) remark-parse v10.0.0

2021.08.05, v18.10.0

fix:

  • (eslint-plugin-putout) putout: range of null

feature:

  • (@putout/plugin-remove-useless-mapped-types) add
  • (@putout/plugin-putout) check-replace-code: add support of typescript
  • (@putout/compare) compare: add support of TSTypeParameter
  • (eslint-plugin-putout) putout: move out fix
  • (@putout/plugin-regexp) remove-useless-group: add support of empty non capturing group
  • (@putout/plugin-convert-for-to-for-of) add support of not BlockStatement loop body

2021.08.03, v18.9.1

fix:

  • (putout) strict-mode/add on empty ts files
  • (@putout/plugin-putout) check-replace-code: false positive on empty result

feature:

  • (@putout/plugin-convert-commonjs-to-esm) require: add support of "undefined" as argument of "require"
  • (package) estrace v2.1.0
  • (@putout/plugin-putout) check-replace-code: add support of __array, __object
  • (@putout/compare) add support of same empty strings
  • (@putout/compare) add support of top-level linked nodes
  • (@putout/plugin-cli-validate-args) rm unused mock-require

2021.07.30, v18.9.0

fix:

feature:

  • (putout) bundle @putout/plugin-apply-array-at (https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V16.md#2021-07-29-version-1660-current-bethgriggs)
  • (@putout/plugin-putout) check-replace-code: improve support of ArrowFunctionExpression
  • (package) unist-util-visit v4.0.0
  • (@putout/plugin-putout) check-replace-code: move out generateCode
  • (@putout/plugin-putout) check-replace-code: add varStore
  • (@putout/plugin-apply-try-catch) add
  • (@putout/plugin-putout) check-replace-code: add support of addition semicolon
  • (@putout/plugin-merge-duplicate-imports) add support of ImportDeclaration importKind (#71)
  • (@putout/plugin-remove-unused-variables) add support of TSFunctionType
  • (@putout/plugin-putout) check-replace-code: improve error handling
  • (@putout/compare) @putout/operate v6.4.0: parseName -> extract
  • (@putout/operate) extract: add support of TemplateElement and RegExpLiteral
  • (@putout/plugin-putout) check-replace-code: exclude cases with no path.parentPath
  • (@putout/plugin-remove-duplicate-interface-keys) exclude TSMethodSignature
  • (@putout/plugin-eslint) move putout to end of extends: exclude not ArrayExpression
  • (@putout/plugin-remove-unused-variables) add support of JSXMemberExpression
  • (@putout/plugin-remove-unused-variables) add support of TSTypeAliasDeclaration
  • (@putout/plugin-remove-unused-variables) add support of JSXFragment
  • (@putout/plugin-putout) add check-replace-code
  • (@putout/engine-runner) replace: add validation of linked template values
  • (@putout/operate) replaceWith: add support of nodes with no parentPath
  • (@putout/operate) add extract
  • (@putout/plugin-convert-map-to-for-of) exclude try-catch
  • (@putout/eslint-config) no-else-return: add allowElseIf

2021.07.22, v18.8.0

feature:

  • (@putout/plugin-convert-map-to-for-of) add

2021.07.21, v18.7.0

fix:

  • (@putout/plugin-remove-empty) rm dead code

feature:

  • (@putout/plugin-apply-early-return) add (not bundled)
  • (@putout/plugin-remove-nested-blocks) add support of variables declared in nested block
  • (@putout/plugin-remove-empty-block) add support of Program
  • (@putout/plugin-remove-useless-map) add
  • (@putout/plugin-jest) add

2021.07.16, v18.6.0

feature:

2021.07.16, v18.5.0

fix:

  • (@putout/compare) exclude: range, parent (#67)
  • (@putout/plugin-regexp) remove-useless-group: exclude named capturing groups (#67)

feature:

  • (ruler) exclude rules not related to putout
  • (package) unified v10.0.0
  • (@putout/plugin-simplify-logical-expressions) add support of wrong ternary (eslint/eslint#14802)
  • (putout) add logo
  • (@putout/test) transform, transformWithOptions: add support of UPDATE env variable
  • (eslint-plugin-putout) avoid duplicate parsing (#66)
  • (package) espree v8.0.0

2021.07.06, v18.4.0

fix:

  • (@putout/compare) isTemplate: returns: number -> boolean

feature:

  • (@putout/engine-runner) add ability to exclude node by type
  • (@putout/plugin-convert-bitwise-to-logical) add
  • (@putout/compare) compare: add support of node types
  • (package) jscodeshift v0.13.0
  • (@putout/engine-loader) add support of plugins loaded with ESM (#61)
  • (@putout/plugin-remove-boolean-from-assertions) report: Should be avoided -> Avoid
  • (@putout/plugin-remove-boolean-from-assertion) exclude assertion with false
  • (putout) add ability to use as loader (https://github.com/coderaiser/putout#using-putout-as-loader)

2021.06.26, v18.3.0

feature:

2021.06.23, v18.2.0

feature:

  • (@putout/plugin-simplify-assignment) add
  • (@putout/plugin-remove-useless-escape) @putout/plugin-madrun v10.2.0
  • (package) mocha v9.0.1
  • (package) eslint-plugin-eslint-plugin v3.2.0
  • (package) @putout/plugin-remove-unused-expressions v4.2.0
  • (package) @babel/eslint-plugin-development v7.14.5
  • (package) mocha v9.0.1
  • (package) @putout/plugin-remove-useless-return v2.0.0
  • (@putout/plugin-remove-useless-return) drop support of node < 14
  • (@putout/plugin-putout) add support of convert-method-to-property

2021.06.14, v18.1.1

feature:

  • (package) @putout/plugin-remove-useless-return v2.0.0
  • (@putout/plugin-remove-useless-return) drop support of node < 14
  • (@putout/plugin-putout) add support of convert-method-to-property
  • (@putout/plugin-appy-if-condition) add

2021.06.13, v18.1.0

feature:

  • (@putout/plugin-appy-if-condition) add

2021.06.10, v18.0.2

feature:

  • (package) @putout/plugin-promises v5.0.0
  • (@putout/plugin-promises) drop support of node < 14
  • (@putout/plugin-promises) add-return-await: merged into add-missing-await

2021.06.07, v18.0.1

fix:

  • (@putout/plugin-regexp) description: typo: with
  • (@putout/plugin-gitignore) description: typo: with
  • (@putout/plugin-npmignore) description: typo: with
  • (@putout/plugin-github) description: typo: with
  • (@putout/plugin-travis) description: typo: with
  • (@putout/plugin-browserilist) description: typo: with
  • (@putout/engine-processor) call merge once

feature:

  • (@putout/plugin-remove-useless-type-conversion) renamed
  • (@putout/processor-yaml) merge: simplify
  • (@putout/processor-json) add toJS/fromJS
  • (package) ts-morph v11.0.0

2021.05.28, v18.0.0

fix:

  • (@putout/processors-markdown) rm unused dependencies

feature:

  • (package) @putout/processor-css v3.0.0
  • (package) @putout/processor-json v3.0.0
  • (package) @putout/processor-json v3.0.0
  • (@putout/processor-typescript) drop support of putout < 18
  • (package) @putout/processor-markdown v5.0.0
  • (@putout/processor-markdown) drop support of putout < 18
  • (package) @putout/processor-json v3.0.0
  • (@putout/processor-json) drop support of putout < 18
  • (package) @putout/processor-javascript v3.0.0
  • (@putout/processor-javascript) drop support of putout < 18
  • (package) @putout/processor-ignore v2.0.0
  • (@putout/processor-ignore) drop support of putout < 18
  • (package) @putout/processor-css v3.0.0
  • (@putout/processor-css) drop support of putout < 18
  • (@putout/processor-html) drop support of putout < 18
  • (package) @putout/processor-yaml v2.0.0
  • (package) @putout/engine-processor v4.0.0
  • (@putout/processor-yaml) drop support of putout < 18
  • (@putout/remove-useless-functions) add support of async
  • (@putout/engine-processor) convert process to find
  • (@putout/engine-processor) runProcessors: speed up: 1m13.010s -> 1m11.628s (mac os)

2021.05.22, v17.5.1

fix:

  • (putout) bin: useless process.send.bind

feature:

  • (@putout/engine-processor) speed up: unroll loop: 1m32.712s -> 1m20.898s (mac os)
  • (package) @putout/eslint-config v5.0.0
  • (@putout/eslint-config) drop support of node < 14
  • (@putout/eslint-config)
  • (@putout/plugin-simplify-ternary) add support of same assigny and ternary operand
  • (@putout/plugin-remove-unused-expressions) add support of not unary expression
  • (putout) eslint-plugin-putout v8.0.0
  • (eslint-plugin-putout) drop support of putout < 17
  • (eslint-plugin-putout) variable-init-with-object -> object-init
  • (eslint-plugin-putout) variable-init-with-object: add support of AssignmentExpression

2021.05.15, v17.5.0

fix:

  • (@putout/plugin-simplify-ternary) || -> &&
  • (@putout/plugin-simplify-ternary) rm broken cases, where condition was removed

feature:

  • (@putout/plugin-remove-useless-return) add
  • (@putout/plugin-putout) add convert-traverse-to-include: apply-as-type-assertions, putout-config

2021.05.14, v17.4.0

feature:

  • (@putout/plugin-simplify-logical-expressions) add
  • (@putout/plugin-simplify-ternary) add support of converting ternary into unary

2021.05.13, v17.3.0

fix:

  • (@putout/engine-parser) rm useless defaults
  • (@putout/plugin-simplify-ternary) report message

feature:

  • (@putout/plugin-apply-as-type-assertions) add
  • (putout) add ability to disable jsx
  • (@putout/engine-parser) custom-parser: improve support of ambiguity syntax related to jsx and typescript in Putout Editor
  • (@putout/engine-parser) add support of parsing ambiguity syntax that overlap with jsx and typescript
  • (@putout/plugin-remove-duplicate-interface-keys) add support of TSConstructSignatureDeclaration
  • (@putout/plugin-simplify-ternary) add ability to shrink nested ternary
  • (@putout/plugin-simplify-ternary) add support of MemberExpression as test in ConditionalExpression

2021.05.11, v17.2.0

fix:

  • (@putout/plugin-remove-useless-template-expressions) exclude inner TemplateLiterals

feature:

  • (@putout/plugin-remove-boolean-from-assertions) add
  • (package) @putout/plugin-remove-boolean-from-logical-expressions v4.0.0
  • (@putout/plugin-remove-boolean-from-logical-expressions) mv assertions to @putout/plugin-remove-boolean-from-assertions
  • (@putout/plugin-remove-boolean-from-logical-expressions) drop support of putout < 17
  • (@putout/plugin-remove-useless-operand) add support of inc and dec

2021.05.09, v17.1.0

fix:

  • (@putout/processor-markdown) rm useless remark
  • (remark-putout) visit: destructuring
  • (@putout/processor-markdown) loadDependencies: visit: destructuring
  • (@putout/plugin-extract-object-properties) duplicate declaration after putout/convert-replace-with, remove-unused-variables

feature:

  • (@putout/plugin-remove-useless-operand) add
  • (@putout/plugin-convert-equal-to-ok) add
  • (@putout/plugin) convert-equal-to-not-ok: add support of boolean
  • (remark-putout) move out to https://github.com/putoutjs/remark-putout
  • (remark-putout) convert to ESM
  • (package) unist-util-visit v3.0.1
  • (@putout/plugin-webpack) add convert-node-to-resolve-fallback

2021.05.07, v17.0.1

fix:

  • (putout) exports: add package.json to show version in putout editor
  • (@putout/engine-loader) rm unused @babel/preset-env

feature:

  • (@putout/plugin-madrun) add-function: add support of export default
  • (package) husky v6.0.0

2021.05.03, v17.0.0

feature:

  • (putout) rm from default install disabled rules: convert-throw, apply-array-at
  • (@putout/plugin-convert-concat-to-flat) add

2021.05.01, v16.13.0

feature:

  • (@putout/plugin-convert-concat-to-flat) add
  • (@putout/test) processor: add support of noProcess
  • (@putout/test) processor: add comparePlaces
  • (@putout/test) add processors api

2021.04.29, v16.12.0

fix:

  • (@putout/plugin-remove-unused-expressions) simplify strict mode checks

feature:

  • (package) @putout/plugin-remove-unused-expressions v4.0.0
  • (@putout/plugin-remove-unused-expressions) drop support of putout < 16
  • (@putout/plugin-remove-unused-expressions) improve support of strict mode
  • (@putout/plugin-tape) declare-stub: add support of test declared in other way
  • (@putout/engine-loader) add ability to enable parts of disabled rules (#57)
  • (@putout/plugin-tape) add convert-equal-to-not-ok

2021.04.26, v16.11.0

feature:

  • (@putout/plugin-remove-useless-continue) add
  • (@putout/processor-css) stylelint-config-standard v22.0.0
  • (eslint-plugin-putout) variable-init-with-objects: add support of nested objects
  • (@putout/plugin-convert-is-nan-to-number) add (not bundled)
  • (@putout/plugin-convert-commonjs-to-esm) improve handling of default properties
  • (@putout/plugin-convert-commonjs-to-esm) add support of require default
  • (@putout/engine-loader) jscodeshift v0.12.0
  • (@putout/plugin-convert-commonjs-to-esm) add support of "require as argument"

2021.04.22, v16.10.1

fix:

  • (putout) add missing @putout/plugin-github

2021.04.22, v16.10.0 feature:

  • (package) @putout/plugin-convert-for-to-for-of v2.0.0
  • (package) @putout/plugin-extract-object-properties v6.0.0
  • (@putout/plugin-extract-object-properties) drop support of putout < 16
  • (@putout/plugin-convert-for-to-for-of) drop support of putout < 16
  • (@putout/plugin-apply-destructuring) array: add support of typed destructuring (#56)
  • (@putout/plugin-putout) add convert-node-to-path-in-get-template-values
  • (@putout/compare) getTemplateValues: add support of path
  • (@putout/plugin-convert-array-copy-to-slice) check for Set: imperative -> declarative
  • (@putout/plugin-remove-useless-spread) add support of Set (#55)
  • (@putout/plugin-convert-array-copy-to-slice) improve support of Set constructor (#55)

2021.04.21, v16.9.0 feature:

  • (@putout/plugin-github) add

2021.04.20, v16.8.0 fix:

  • (@putout/plugin-remove-useless-spread) array: false positive

feature:

  • (package) @putout/processor-markdown v4.0.0
  • (putout) rm v8-compile-cache (zertosh/v8-compile-cache#30)
  • (@putout/processor-markdown) drop support of node < 14
  • (package) unist-util-visit v3.0.0
  • (@putout/plugin-merge-destructuring-properties) improve support of destructuring
  • (@putout/plugin-promises) convert-new-promise-to-async: improve support of inner functions
  • (@putout/plugin-promises) add convert-new-promise-to-async
  • (package) acorn v8.1.1
  • (package) strip-ansi v7.0.0
  • (eslint-plugin-putout) add variable-init-with-object

2021.04.13, v16.7.0 feature:

  • (putout) rm @putout/processor-html from default install

2021.04.13, v16.6.1 feature:

  • (package) @putout/plugin-remove-useless-spread v5.0.0
  • (@putout/plugin-remove-useless-spread) drop support of node < 14
  • (@putout/plugin-remove-useless-spread) array: improve ability to handle spread
  • (@putout/compare) mv out comparators

2021.04.09, v16.6.0 feature:

  • (package) @putout/plugin-remove-useless-type-conversion v3.0.0
  • (package) @putout/plugin-convert-top-level-return v4.0.0
  • (@putout/plugin-remove-useless-type-conversion) drop support of putout < 16
  • (@putout/plugin-convert-top-level-return) drop support of putout < 16
  • (@putotu/plugin-remove-useless-conditions) improve support of If conditions
  • (@putout/compare) improve support of if condition
  • (@putout/plugin-simplify-ternary) add simple duplicates support
  • (package) @putout/engine-parser v4.1.1
  • (@putout/plugin-simplify-ternary) add support of duplicates
  • (@putout/compare) improve ability to compare expressions
  • (putout) rm useless --jsx: always enable (#53)
  • (@putout/engine-parser) babel: enable jsx by default (#53)

2021.04.07, v16.5.0 fix:

  • (putout) rm enable of apply-optional-chaining: enabled by default feature:
  • (putout) rm useless --jsx: always enable (#53)
  • (@putout/engine-parser) babel: enable jsx by default
  • (@putout/plugin-remove-useless-array-constructor) improve support of Array.of
  • (@putout/plugin-apply-array-at) add

2021.04.05, v16.4.0 fix:

  • (putout) rm enable of apply-optional-chaining: enabled by default feature:
  • (@putout/plugin-apply-array-at) add

2021.04.05, v16.3.0 fix:

  • (@putout/engine-parser) rm unused @babel/traverse

feature:

  • (@putout/plugin-remove-useless-array-constructor) add
  • (@putout/engine-runner) @putout/engine-parser v4.0.1
  • (@putout/engine-loader) @putout/engine-parser v4.0.1

2021.04.04, v16.2.0 feature:

  • (package) @putout/engine-parser v4.0.0
  • (@putout/engine-parser) drop support of node < 14
  • (@putout/engine-parser) speed up: 1m.30 -> 1m.20: estree-to-babel v4.0.0

2021.04.02, v16.1.1 fix:

  • (putout) uncomment v8-compile-cache
  • (@putout/plugin-convert-for-each-to-for-of) crawl: convert-for-each-to-for-of :-> remove-useless-variables :-> convert-comparison-to-boolean: evaluate expression
  • (@putout/plugin-regexp) optimize: Incomplete quantifier (DmitrySoshnikov/regexp-tree#224)
  • (@putout/plugin-regexp) report after transform

feature:

  • (putout) rm unused --debug
  • (@putout/plugin-convert-for-each-to-for-of) add support of inner blocks
  • (@putout/engine-loader) add ability to switch off processor
  • (@putout/plugin-declare-undefined-variables) add support of readFile
  • (@putout/plugin-regexp) optimize: add support of flags
  • (@putout/plugin-remove-useless-template-expressions) add support of comments
  • (@putout/plugin-regexp) optimize: improve patterns support
  • (@putout/plugin-convert-assignment-to-arrow-function) exclude MemberExpression argument
  • (@putout/plugin-convert-assignment-to-arrow-function) improve support of MemberExpressions
  • (@putout/plugin-convert-array-copy-to-slice) improve support of Set
  • (@putout/plugin-remove-useless-types-from-constants) add support of UnionType

2021.03.28, v16.1.0 feature:

  • (@putout/plugin-remove-useless-conditions) add

2021.03.28, v16.0.1 fix:

  • (putout) processor-typescript: move out from bundle: to many false positives, all ts files should be loaded before check so types can be determined

feature:

  • (putout) convert-binary-expression-to-boolean -> convert-comparison-to-boolean

2021.03.27, v16.0.0 feature:

  • (putout) convert-binary-expression-to-boolean -> convert-comparison-to-boolean

2021.03.26, v15.13.0 feature:

  • (@putout/plugin-convert-assignment-to-comparison) add

2021.03.26, v15.12.0

feature:

  • (@putout/plugin-putout) add convert-destructructuring-to-identifier

2021.03.26, v15.11.0

fix:

  • (@putout/plugin-apply-destructuring) exclude MemberExpression (#50)

feature:

  • (package) @putout/plugin-remove-useless-for-of v2.0.0
  • (@putout/plugin-remove-useless-for-of) drop support of node < 14
  • (@putotu/plugin-remove-useless-for-of) add support of unused left identifier of ForOfStatement
  • (@putout/plugin-split-nested-destructuring) add support for function parameters (#49)

2021.03.23, v15.10.0

feature:

  • (package) @putout/plugin-convert-for-each-to-for-of v6.0.0
  • (@putout/plugin-convert-for-each-to-for-of) drop support of putout < 15
  • (@putout/plugin-convert-for-each-to-for-of) add support of [].forEach.call
  • (@putout/plugin-convert-for-each-to-for-of) plugin type: Includer -> Replacer
  • (@putout/plugin-remove-unused-expressions) add support of MemberExpression

2021.03.20, v15.9.0

fix:

  • docs(@putout/engline-loader) babel: add prefix

feature:

  • feature(@putout/eslint-config) disable no-duplicate-case
  • feature(@putout/plugin-remove-duplicate-case) add

2021.03.18, v15.8.0

fix:

  • fix(@putout/processor-json) rm circular dependency

feature:

  • feature(@putout/processor-typescript) add
  • feature(@putout/plugin-promises) convert-reject-to-throw: add support of await
  • feature(@putout/plugin-remove-useless-types-from-constants) add support of let

2021.03.15, v15.7.2

fix:

  • fix(putout) remove-useless-types-from-constants: on -> off (not for TS)

2021.03.12, v15.7.1

fix:

  • fix(putout) convert-any-to-primitive -> remove-useless-types-from-constants

feature:

  • feature(@putout/plugin-convert-any-to-primitive) simplify: rm bigFirst

2021.03.12, v15.7.0

feature:

  • feature(@putout/plugin-convert-any-to-primitive) add

2021.03.12, v15.6.0

feature:

  • feature(package) @putout/engine-processor v3.0.0
  • feature(package) @putout/engine-loader v4.0.0
  • feature(@putout/engine-processor) drop support of node < 14
  • feature(package) @putout/engine-loader v4.0.0
  • feature(@putout/engine-loader) drop support of node < 14
  • feature(@putout/compare) add support of exportKind
  • feature(@putout/engine-loader) add plugin validation
  • feature(@putout/compare) add support of typescript
  • feature(@putout/engine-parser) template: enable typescript
  • feature(@putout/plugin-remove-useless-await) add support of Promise constructor, and methods
  • feature(@putout/plugin-remove-useless-await) add support of typescript Promise generic
  • feature(@putout/plugin-tape) add convert-ok-to-match

2021.03.09, v15.5.1

fix:

  • fix(putout) mjs: remove disable of strict-mode/add

feature:

  • feature(@putout/processor-css) stylelint-config-standard v21.0.0
  • feature(@putout/plugin-strict-mode) add support of top level await

2021.03.08, v15.5.0

fix:

  • fix(eslint-plugin-putout) single-property-destructuring: add support of ","
  • fix(@putout/operate) rm Changelog
  • fix(@putout/plugin-declare-udnefined-variables) report: Readable
  • chore(@putout/plugin-declare-udnefined-variables) fixture: rm " "

feature:

  • feature(@putout/plugin-remove-useless-await) add support of not async functions
  • feature(putout) bin: disable remove-empty/import, ESM: disable strict-mode/add
  • feature(eslint-plugin-putout) single-property-destructuring: add support of ImportDeclaration
  • feature(eslint-plugin-putout) ide: remove-empty/block -> remove-empty
  • feature(package) lerna v4.0.0
  • feature(@putout/plugin-declare-undefined-variables) add support of tryCatch, tryToCatch
  • feature(@putout/plugin-convert-esm-to-commonjs) add support of @putout/plugin-declare-undefined-variables
  • feature(@putout/plugin-declare-undefined-variables) add support of Readable.from

2021.03.01, v15.4.3

feature:

  • feature(putout) rm array-union

2021.03.01, v15.4.2

feature:

  • feature(package) @putout/plugin-madrun v10.0.0
  • feature(@putout/plugin-madrun) remove add-fresh-lint

2021.02.28, v15.4.1

fix:

  • fix(putout) remove-duplicates-interface-keys -> remove-duplicate-interface-keys
  • fix(@putout/test) bin: dynamic import -> import

feature:

  • feature(package) acorn-stage3 v4.0.0
  • feature(package) acorn v8.0.5

2021.02.28, v15.4.0

fix:

  • fix(@putout/plugin-declare-undefined-variables) crawl after declare
  • fix(@putout/plugin-remove-useless-escape) false positives on strings with emoji but without escaping

feature:

  • feature(@putout/plugin-convert-assignment-to-arrow-function) add
  • feature(@putout/plugin-remove-useless-escape) template literal: add support of emoji
  • feature(eslint-plugin-putout) objects-braces-inside-array: add badStart variable
  • feature(@putout/plugin-remove-useless-escape) speed up: add early return when no escape: 1m12.388s -> 1m6.770s on Mac OS
  • feature(eslint-plugin-putout) html: add env browser
  • feature(@putout/test) add noReportAfterTransform
  • feature(@putout/plugin-remove-useless-escape) add support of emoji
  • feature(@putout/plugin-madrun) add set-report-lcov

2021.02.23, v15.3.1

fix:

  • feature(package) enabled fixed @putout/plugin-remove-duplicate-interface-keys v3.0.0 (benajmn/recast#868)

feature:

  • feature(package) enabled fixed @putout/plugin-remove-duplicate-interface-keys v3.0.0 (benajmn/recast#868)
  • feature(@putout/plugin-remove-duplicate-interface-keys) drop support of node < 14
  • feature(@putout/test) bin: convert to ESM
  • feature(package) supertape v5.0.0

2021.02.22, v15.3.0

feature:

  • feature(@putout/operate) add getPathAfterImports
  • feature(package) @putout/plugin-convert-commonjs-to-esm v5.0.0
  • feature(@putout/plugin-convert-commonjs-to-esm) add ability to declare commonjs variables
  • feature(putout) speed up start time: 0m2.071s -> 0m1.637s
  • feature(@putout/cli-validate-args) move out from putout
  • feature(@putout/cli-keypress) rename: @putout/keypress -> @putout/cli-keypress

2021.02.22, v15.2.0

fix:

  • fix(@putout/plugin-remove-unused-expressions) rm log

feature:

  • feature(@putout/plugin-merge-destructuring-properties) add support of removed node
  • feature(@putout/plugin-convert-mock-require-to-mock-import) add
  • feature(@putout/plugin-remove-unused-expressions) add support of options

2021.02.18, v15.1.2

feature:

  • feature(package) ci-info v3.1.1
  • feature(package) ci-info v3.1.1

2021.02.15, v15.1.1

fix:

  • fix(putout) .putoutcache -> cache
  • feature(@putout/processor-css) return unchanged source when fix false

feature:

  • feature(package) @putout/operate v6.0.0
  • feature(@putout/processor-html) add ability to handle empty script
  • feature(@putout/processor-css) return unchanged source when fix false

2021.02.12, v15.1.0

fix:

  • (@putout/process-html) no content inside script tag

feature:

  • (putout) add ability to handle crash of processor
  • (@putout/engine-loader) loadProcessors: add support of passing function, similar to loadPlugins

2021.02.12, v15.0.2

fix:

  • (putout) parse-options: read rules from dir: never called after reading codemods

2021.02.11, v15.0.1

feature:

  • feature(putout) parse-options: speed up: 0m37.367s -> 0m36.347s

2021.02.11, v15.0.0

fix:

  • fix(help) .putoutcache -> cache

feature:

  • feature(putout) remove-duplicate-interface-keys: removed from dependency after being disabled for a long time
  • feature(putout) apply-nullish-coalescing: remove from default install after a long time being disabled
  • feature(putout) madrun/convert-nyc-to-c8: enable by default
  • feature(package) @putout/plugin-gitignore v3.0.0
  • feature(@putout/plugin-gitignore) rm .putoutcache

2021.02.11, v14.5.0

fix:

  • (help) .putoutcache -> cache

feature:

  • (package) @putout/plugin-gitignore v3.0.0
  • (@putout/plugin-gitignore) rm .putoutcache

2021.02.11, v14.4.0

feature:

  • feature(package) @putout/processor-html v1.0.0
  • feature(@putout/processor-html) add

2021.02.10, v14.3.0

fix:

  • feature(putout) cli: --fix: speed up: look at cache first, and if there is no places - can read from cache

feature:

  • feature(putout) cli: --fix: speed up: look at cache first, and if there is no places - can read from cache
  • feature(putout) cli: cache-files: mv to node_modules/.cache
  • feature(@putout/plugin-declare-undefined-variables) simplify: getAllBindings -> hasBinding
  • feature(@putout/plugin-convert-commonjs-to-esm) require: simplify: getAllBingins -> hasBinding

2021.02.10, v14.2.1

fix:

  • fix(putout) cli: cache-files: cold cache after first run

feature:

2021.02.08, v14.2.0

feature:

  • feature(package) @putout/plugin-tape v2.0.0
  • feature(@putout/plugin-tape) drop support of node < 14
  • feature(@putout/plugin-tape) add declare-stub
  • feature(package) tenko v2.0.0

2021.02.07, v14.1.3

fix:

  • (putout) cli: --disable-all: exit before write file

2021.02.07, v14.1.2

fix:

  • (putout) default option: madrun: disable convert-nyc-to-c8 rule

2021.02.06, v14.1.1

fix:

  • (@putout/plugin-madrun) npmignore: add coverage

feature:

  • (package) @putout/plugin-npmignore v2.0.0
  • (@putout/plugin-npmignore) drop support of node < 14
  • (@putout/plugin-npmignore) add coverage
  • (@putout/plugin-madrun) convert-nyc-to-c8: add report support
  • (putout) madrun: convert-nyc-to-c8: disable

2021.02.05, v14.1.0

fix:

  • fix(@putout/test) false positive on noReport

feature:

  • feature(putout) madrun: convert-nyc-to-c8: disable
  • feature(@putout/plugin-madrun) add convert-nyc-to-c8
  • feature(putout) bin: Commonjs -> ESM: prevent hang on errors
  • feature(@putout/plugin-gitignore) add coverage
  • feature(@putout/engine-loader) loadPlugins: rm useless memo

2021.02.04, v14.0.4

fix:

  • (@putout/engine-processor) postProcess: rawSource -> processedSource
  • (putout) uncomment v8-compile cache
  • (@putout/traverse) dependencies
  • (eslint-plugin-putout) multiple-properties-destructuring: ImportDeclaration: loc
  • (eslint-plugin-putout) objects-braces-inside-array: multiple objects

feature:

  • (eslint-plugin-putout) multiple-properties-destructuring: add support of ImportDeclaration

2021.01.30, v14.0.3

fix:

  • (putout) prevent unhandled exceptions
  • (@putout/processor-ignore) windows line endings

feature:

  • (@putout/plugin-gitignore) add yarn-error.log

2021.01.28, v14.0.2

fix:

  • (putout) VS Code support (#48)
  • (@putout/plugin-putout) shorten-putout-exports -> shorten-imports

feature:

  • (@putout/engine-processor) drop memo: speed up

2021.01.27, v14.0.1

fix:

  • (putout) cache-files: rm useless logical operation: "" always positive after condition

feature:

  • (package) eslint-plugin-putout v7.0.0

2021.01.26, v14.0.0

feature:

  • (package) @putout/plugin-putout v6.0.0
  • (@putout/plugin-putout) drop support of putout < 14
  • (babel-plugin-putout) drop support of node < 14
  • (eslint-plugin-putout) drop support of node < 14
  • (putout) plugin-apply-shorthand-properties: remove from default install
  • (@putout/formatter-progress-bar) add ability to hide cursor
  • (@putout/formatter-memory) add ability to hide cursor
  • (putout) putout/lib/cli/process-file -> putout/process-file

2021.01.26, v13.10.0

fix:

  • (putout) parse-options: recursive read: throw when cannot parse config

feature:

  • (putout) process-file: add ability to set match on inner formats

2021.01.25, v13.9.1

fix:

  • (putout) cli: get-files: windows

2021.01.22, v13.9.0

fix:

  • fix(gitignore) report
  • fix(eslint-plugin-putout) objects-braces-inside-array: false positives
  • feature(@putout/plugin-apply-destructuring) add support of second array element (prefer-destructuring in eslint do not fixes)

feature:

  • feature(package) @putout/plugin-gitignore v2.0.1
  • feature(@putout/plugin-gitignore) drop support of putout < 13
  • feature(@putout/plugin-gitignore) merge 3 rules into one
  • feature(@putout/plugin-gitignore) add-nyc-output
  • feature(@putout/plugin-tape) convert-throws-to-try-catch: add support of two args
  • feature(@putout/plugin-remove-boolean-from-logical-expressions) add support of using booleans in conditions
  • feature(eslint-plugin-putout) improve support of objects-braces-inside-array
  • feature(eslint-plugin-putout) add "ide" to extend from to improve experience in IDE
  • feature(eslint-plugin-putout) add objects-braces-inside-array
  • feature(@putout/plugin-apply-destructuring) add support of second array element (prefer-destructuring in eslint do not fixes)
  • feature(@putout/plugin-declare-undefined-variables) place name of a variable into report
  • feature(@putout/plugin-declare-undefined-variables) add ability to put ImportDeclarations on top
  • feature(@putout/plugin-declarations) mv out declarations
  • feature(@putout/plugin-declare-undefined-variables) add support of join

2021.01.20, v13.8.0

fix:

  • (@putout/processor-markdown) show errors after fixing
  • (@putout/compare) undefined as argument

feature:

  • (@putout/plugin-declare-undefined-variables) add
  • (putout) parser-error: add ability to show rule

2021.01.18, v13.7.1

fix:

  • (putout) recursive-read: windows (#46)
  • (@putout/plugin-regexp) remove-useless-group: false positives (#45)

2021.01.16, v13.7.0

feature:

  • feature(package) @putout/engine-processor v2.7.0: getProcessor runners
  • feature(@putout/engine-processor) add getProcessorRunners
  • feature(@putout/formatter-memory) add to finale output rss, heap total and heap usage'
  • feature(@putout/engine-processor) improve speed and memory usage according to (node --prof): 269MB -> 65mb, 1m7s -> 0m58s

2021.01.15, v13.6.0

feature:

  • (package) @putout/plugin-regexp v2.0.0
  • (@putout/plugin-regexp) add remove-useless-regexp
  • (@putout/plugin-regexp) add remove-useless-group
  • (@putout/plugin-regexp) drop support of node < 14
  • (@putout/plugin-regexp) simplify -> apply-literal-notation

2021.01.14, v13.5.1

fix:

  • (putout) match: absolute path
  • (@putout/plugin-regexp) replaceWith -> operator.replaceWith

feature:

  • (@putout/processor-css) improve merge configs support

2021.01.13, v13.5.0

feature:

  • feature(putout) add recursive read of config

2021.01.12, v13.4.0

fix:

  • (@putout/test) format, formatMany with UPDATE env variable set

feature:

  • (@putout/formatter-json-lines) add

2021.01.11, v13.3.0

fix:

  • (putout) supported-files: path with slash

feature:

  • (putout) cli: cache: add ability to detect eslintrc change
  • (putout) cache-files: add ability to detect node_modules changes
  • (@putout/plugin-tape) add convert-emitter-to-promise
  • (@putout/formatter-memory) add support of PUTOUT_PROGRESS_BAR
  • (@putout/plugin-nodejs) add convert-promisify-to-fs-promises

2021.01.08, v13.2.0

feature:

  • (@putout/plugin-nodejs) add
  • (@putout/processors-yaml) package: js-yaml v4.0.0
  • (@putout/plugin-madrun) convert-to-async: improve support of couple run arguments
  • (@putout/plugin-madrun) add-fresh-lint: add support of ESM

2021.01.03, v13.1.2

fix:

  • (putout) handle promise rejections: rm duplicates
  • (@putotu/formatter-progress-bar) PUTOUT_NO_PROGRESS_BAR -> PUTOUT_PROGRESS_BAR

feature:

  • (@putout/eslint-config) add key-spacing
  • (@putout/plugin-tape) add convert-does-not-throw-to-try-catch
  • (@putout/plugin-remove-useless-arguments) argument: report: improve message when find function
  • (@putout/keypress) add ability to force enable with KEYPRESS env variable
  • (@putout/plugin-gitignore) add-vim-files
  • (@putout/keypress) add ability to set listener once

2020.12.29, v13.1.1

feature:

  • (@putout/keypress) add

2020.12.29, v13.1.0

feature:

  • (package) @putout/engine-runner v10.0.0
  • (@putout/remove-duplicates-from-logical-expressions) add
  • (@putout/plugin-apply-optional-chaining) add support of nested expressions
  • (@putout/engine-runner) @putout/compare v7.0.0
  • (@putout/engine-runner) @putout/operate v6.0.0
  • (package) @putout/compare v7.0.0
  • (@putout/compare) drop support of node < 14
  • (package) @putout/operate v6.0.0
  • (@putout/operate) drop support of node < 14
  • (package) @putout/processor-css v2.0.0
  • (@putout/processor-css) drop support of node < 14
  • (@putout/plugin-convert-for-to-for-of) add ability to find previous siblings
  • (@putout/processor-json) postProcess: removeEmptyLines: simplify and speed up: 300ms -> 200ms

2020.12.28, v13.0.0

feature:

  • (package) @putout/plugin-madrun v9.0.0
  • (@putout/plugin-madrun) rename-predefined-eslint-to-putout: remove
  • (@putout/plugin-madrun drop support of node < 14
  • (putout) drop support of node < 14
  • (putout) apply-optional-chaining: enable
  • (@putout/plugin-madrun) drop support of putout < 13
  • (@putout/plugin-madun) add fresh:lint
  • (@putout/plugin-madrun) add-madrun-to-lint: remove

2020.12.28, v12.12.0

feature:

  • (@putout/plugin-package-json) add
  • (@putout/processor-json) add ability to cut empty lines
  • (@putout/plugin-convert-commonjs-to-esm) require: add support of existing require binding
  • (@putout/plugin-convert-for-to-for-of) improve support of using with: remove-unused-variables, remove-useless-arguments

2020.12.28, v12.11.1

fix:

  • (putout) cli: validate-args: import -> require: Invalid host defined options in v8-compile-cache

2020.12.28, v12.11.0

feature:

  • (putout) add ability to handle promise rejections
  • (@putout/plugin-browserlist) add

2020.12.27, v12.10.0

fix:

  • (@putout/plugin-eslint) move-putout-to-end-of-extends: putout is only recorod

feature:

  • (putout) add ability to handle absence of processor with CANNOT_LOAD_PROCESSOR exit code

2020.12.25, v12.9.4

fix:

  • (putout) *.spec.mjs, *.spec.cjs: glob

2020.12.25, v12.9.3

feature:

  • (putout) mjs, cjs: add support of remove-only, remove-skip

2020.12.24, v12.9.2

fix:

  • (putout) cjs: enable convert-esm-to-commonjs

feature:

  • (@putout/compare) baseNode -> templateNode
  • (@putout/plugin-convert-esm-to-commonjs) add support of async function

2020.12.24, v12.9.1

feature:

  • (putout) add ability to import cli

2020.12.24, v12.9.0

feature:

  • (package) add v8-compile-cache: speed up start time: 0m0.993s -> 0m0.843s
  • (package) supertape v4.0.0

2020.12.23, v12.8.0

fix:

  • (@putout/engine-runner) replace: match: avoid move top while compare

feature:

  • (putout) add @putout/plugin-npmignore
  • (@putout/plugin-convert-commonjs-to-esm) exports: add support of VariableDeclarator
  • (@putout/plugin-convert-commonjs-to-esm) require: add ability to evaluate argument
  • (@putout/plugin-convert-commonjs-to-esm) require: single
  • (@putout/plugin-convert-commonjs-to-esm) module.exports.__a = __b: __a.name !== __b.name

2020.12.22, v12.7.2

fix:

  • (putout) cjs: disable convert-commonjs-to-esm
  • (@putout/plugin-merge-destructuring-properties) remove VariableDeclaration when used with @putout/plugin-convert-commonjs-to-esm
  • (@putout/plugin-convert-commonjs-to-esm) exports: duplicate binding

feature:

  • (@putout/plugin-tape) add convert-called-with-to-called-with-no-args

2020.12.21, v12.7.1

fix:

  • (putout) ignore: dist* -> dist, dist-dev
  • docs(readme) no : without transformation

feature:

  • (@putout/plugin-tape) convert-throws-to-try-catch: add support of MemberExpression
  • (@putout/plugin-promises) add-missing-await: exclude then-catch
  • (@putout/plugin-promises) add-missing-await: exclude top level
  • (@putout/plugin-promises) add support of SwitchStatement
  • (@putout/plugin-tape) add apply-stub-operator
  • (eslint-plugin-putout) markdown: disable node/no-unpublished-import
  • (eslint-plugin-putout) markdown: disable node/no-extraneous-import
  • (@putout/plugin-promises) add-missing-await: add support of ArrayExpression

2020.12.18, v12.7.0

feature:

  • (putout) add ability to guess possible command line option when provided is invalid
  • (@putout/plugin-promises) add-missing-await

2020.12.18, v12.6.0

fix:

  • (@putout/processor-yaml) preProcess: add early return when no rawSource
  • (@putout/engine-processor) update file content when there is no changes
  • (@putout/processor-yaml) replace yaml with json
  • (@putout/engine-processor) rm stubPostProcess: can't be called when preProcess returns empty array

feature:

  • (putout) add ability to validate command line options
  • (@putout/plugin-tape) add expand-try-catch-arguments
  • (@putout/plugin-tape) add convert-throws-to-try-catch
  • (@putout/plugin-madrun) convert-to-async: add support of inner run call expression
  • (@putout/formatter-progress-bar) add ability to disable with PUTOUT_NO_PROGRESS_BAR
  • (@putout/formatter-memory) add ability to disable with PUTOUT_NO_PROGRESS_BAR
  • (@putout/processor-css) add ability to find config

2020.12.15, v12.5.1

feature:

  • (putout) ignore: add dist

2020.12.15, v12.5.0

fix:

  • (@putout/processor-markdown) process: avoid modification of rawSource

feature:

  • (@putout/processor-css) add
  • (@putout/engine-processor) add ability to to pass fix into process, and ignore pre/post processes
  • (@putout/plugin-remove-useless-variables) for-of: exclude ObjectPattern properties with AssignmentPattern value

2020.12.14, v12.4.0

feature:

  • (package) @putout/processor-markdown v3.0.0
  • (package) @putout/engine-processor v2.5.0
  • (@putout/engine-processor) add ability to await process, preProcess and postProcess
  • (@putout/processor-markdown) use async unified API
  • (@putout/processor-markdown) speed up with help of cache: 2m16.072s -> 2m0.965
  • (@putout/plugin-tape) switch-expected-with-result: add ability to switch all assertions with expected, not only with result
  • (eslint-plugin-putout) single-property-destructuring: add support of RestElement
  • (@putout/plugin-tape) add convert-tape-to-supertape

2020.12.09, v12.3.0

fix:

  • (@putout/engine-processor) rm dead code

feature:

  • (@putout/plugin-tape) add

2020.12.09, v12.2.1

fix:

  • (putout) remove-useless-escape: disable for yml

2020.12.09, v12.2.0

feature:

  • (@putout/plugin-putout-config) add

2020.12.08, v12.1.0

fix:

  • (@putout/plugin-remove-useless-type-conversion) npmignore: add fixture
  • (@putout/plugin-remove-useless-type-conversion) withDoubleNegations -> with-double-negations
  • (@putout/processor-ignore) no new last line

feature:

  • (eslint-plugin-putout) add support of yaml
  • (@putout/processor-yaml) improve support of process result
  • (@putout/engine-processor) improve process support
  • (@putout/engine-loader) simplify plugins/processors search
  • (package) @putout/processor-markdown v2.0.1
  • (package) @putout/engine-loader v3.1.1
  • (@putout/plugin-remove-double-negations) add support of for, while, do
  • (package) @putout/plugin-remove-useless-type-conversion v2.0.0
  • (@putout/plugin-remove-useless-type-conversion) drop support of putout < 12
  • (@putout/plugin-remove-useless-type-conversion) include @putout/plugin-remove-double-negations
  • (@putout/plugin-remove-double-negations) drop support of node < 12
  • (@putout/plugin-remove-double-negations) add includes
  • (@putout/plugin-remove-useless-spread) add support of Array.from
  • (@putout/plugin-convert-array-copy-to-slice) exclude set

2020.12.07, v12.0.1

fix:

  • (putout) parse-match: memory leak: 400mb -> 140mb: rm memo

feature:

  • (@putout/plugin-convert-commonjs-to-esm) require: exclude declared require

2020.12.07, v12.0.0

feature:

  • (@putout/plugin-madrun) set-lint-dot: add support of ExportDefaultDeclaration
  • (putout) strict-mode: enable for js
  • (putout) match: regexp -> glob

2020.12.06, v11.16.0

fix:

  • (putout) staged: fromEntries

feature:

  • (putout) madrun: add support of .madrun.mjs, .madrun.cjs
  • (@putout/test) wrap -> extend

2020.12.06, v11.15.0

feature:

  • (package) @putout/plugin-madrun v8.0.0
  • (@putout/plugin-madrun) drop support of node < 12
  • (putout) madrun v8.0.1
  • (@putout/plugin-madrun) add convert-to-async
  • (putout) @putout/test v3.0.0
  • (putout) supertape v3.4.2
  • (@putout/test) supertape v3.4.2
  • (putout) plugins: rm supertape, @putout/test is enaught

2020.12.05, v11.14.0

feature:

  • (@putout/processor-engine) globs: simplify, speed up
  • (putout) apply-shorthand-properties: off

2020.12.03, v11.13.0

fix:

  • (@putout/engine-runner) no loc: x -> 0

feature:

  • (putout) travis: disable remove-useless-escape
  • (@putout/test) add noReport, noReportCode, reportWithOptions, noReportWithOptions
  • (@putout/engine-runner) replace: match: add support of options

2020.11.30, v11.12.1

fix:

  • (putout) ignore: add coverage

2020.11.28, v11.12.0

fix:

  • (@putout/plugin-remove-useless-variables) remove: miss: path -> parentPath
  • (@putout/plugin-travis) set-node-versions: always set last two: 14, 15

feature:

  • (putout) add ctrl+c handler
  • (@putout/engine-processor) remove useless arguments: index, length
  • (@putout/plugin-remove-useless-variables) remove: exclude unreferenced but existing path

2020.11.27, v11.11.4

fix:

  • (@putout/engine-processor) change when no places
  • (putout) formatter options: apply: for every file -> after load
  • (@putout/plugin-putout) replace-with: operator used before declaration

feature:

  • (@putout/plugin-madrun) add set-lint-dot
  • (@putout/plugin-travis) set-node-version: rm 12
  • (@putout/plugin-regexp) optimize: exclude regexps of same length

2020.11.27, v11.11.3

fix:

  • chore(package) pre-commit: rm --

feature:

  • (putout) mjs: enable convert-commonjs-to-esm
  • (@putout/plugin-convert-commonjs-to-esm) require: add support of dynamic import
  • (@putout/plugin-remove-useless-arguments) simplify

2020.11.26, v11.11.2

fix:

  • (@putout/plugin-remove-useless-arguments) function contains "arguments"
  • (@putout/plugin-travis) set-node-versions: 15 only

feature:

  • (package) @putout/plugin-remove-useless-arguments v5.0.0
  • (@putout/plugin-remove-useless-arguments) drop support of node < 12

2020.11.26, v11.11.1

fix:

  • (putout) staged: supported files: dot, dir

feature:

  • (eslint-plugin-putout) mjs: disable node/no-unsupported^Ceatures/es-syntax
  • (@putout/eslint-config) disable no-process-exit

2020.11.26, v11.11.0

fix:

  • (putout) eslint: crash: x -> 0
  • (putout) crash/parser -> parser

feature:

  • (putout) mjs: enable apply-top-level-await
  • (eslint-plugin-putout) add support of esm

2020.11.26, v11.10.2

feature:

  • (putout) md: disable remove-useless-escape

2020.11.26, v11.10.1

fix:

  • (eslint-plugin-putout) markdown: disable no-prototype-builtins
  • (putout) json: disable apply-numeric-separators
  • (putout) json: disable remove-useless-escape
  • (eslint-plugin-putout) markdown: add sourceType

feature:

  • (putout) md: disable convert-binary-expressions-to-boolean, remove-constant-conditions
  • (eslint-plugin-putout) markdown: disable no-constant-condition
  • (@putout/engine-processor) add ablity to not provide startLine
  • (@putout/plugin-travis) add disable-cache
  • (@putout/codemod-remove-legacy-from-gitignore) add
  • (eslint-plugin-putout) markdown: add top-level-await support
  • (eslint-plugin-putout) markdown: disable quote-props
  • (eslint-plugin-putout) markdown: add @babel/plugin-syntax-class-properties
  • (package) @putout/processor-json v2.0.0
  • (package) @putout/processor-json v2.0.0
  • (@putout/engine-runner) replace: add support of options
  • (@putout/plugin-regexp) simplify -> optimize

2020.11.23, v11.10.0

feature:

  • (eslint-plugin-putout) add support of *.yml{json}
  • (@putout/processor-yaml) add
  • (@putout/plugin-travis) add

2020.11.23, v11.9.0

fix:

  • (@putout/plugin-remove-useless-escape) add global flag
  • (@putout/engine-runner) replace: watermark: optional chaining not supported on node v12
  • (putout) rm --ext, has no sense since processors introduced

feature:

  • (@putout/plugin-regexp) add support of disjunction
  • (package) @putout/plugin-regexp v1.0.0
  • (@putout/plugin-regexp) add
  • (@putout/codemod-cut-useless) exclude: const fn = (a) => a()
  • (@putout/compare) add support of regexp /__a/

2020.11.22, v11.8.1

fix:

  • (putout) rm --ext, has no sense since processors introduced

feature:

  • (putout) ignore: add package-lock.json

2020.11.22, v11.8.0

fix:

  • (@putout/processor-ignore) JSON.parse -> Function
  • (@putout/engine-processor) markdown changed without places found

feature:

  • (@putout/processor-ignore) add
  • (eslint-plugin-putout) add support of json in .gitignore
  • (package) @putout/processor-markdown v2.0.0
  • (package) @putout/processor-json v2.0.0
  • (package) @putout/processor-javascript v2.0.0
  • (package) @putout/engine-processor v2.0.0
  • (@putout/plugin-gitignore) add
  • (putout) engine-processor: extensions -> files
  • (eslint-plugin-putout) json: .md{json} -> *.{json}
  • (@putout/engine-processor) extensions -> files
  • (@putout/processor-ignore) add

2020.11.21, v11.7.2

feature:

  • (package) @putout/plugin-extract-object-properties v5.0.0
  • (@putout/plugin-extract-object-properties) drop support of node < 12
  • (@putout/plugin-extract-object-properties) rm uncovered code
  • (@putout/engine-runner) replace: watermark: path -> node

2020.11.21, v11.7.1

feature:

  • (putout) cli: move out ignores: process-file -> index
  • (@putout/engine-processor) add process
  • (@putout/processor-markdown) add ability to lint markdown files with remark-lint

2020.11.20, v11.7.0

feature:

  • (@putout/engine-processor) add process
  • (@putout/processor-markdown) add ability to lint markdown files with remark-lint

2020.11.20, v11.6.0

feature:

  • (@putout/engine-loader) add ability to override rules from top
  • (putout) ignore: add .nyc_output
  • (eslint-plugin-putout) markdown: add @babel/eslint-parser

2020.11.19, v11.5.0

feature:

  • (putout) add ability to get extensions from processors before getting file names
  • (@putout/engine-processor) add getExtensions
  • (@putout/processor-javascript) move in extensions
  • (eslint-plugin-putout) long-properties-destructuring: 10 -> 15

2020.11.19, v11.4.0

feature:

  • (putout) read options before getting file list: speed up: 1m12s -> 1m8s

2020.11.18, v11.3.0

feature:

  • (putout) add support of typescript in markdown files
  • (@putout/processor-markdown) add support of typescript
  • (eslint-plugin-putout) markdown: add support of typescript
  • (eslint-plugin-putout) markdown: disable node/no-unsupported-features/node-builtins

2020.11.18, v11.2.2

feature:

  • (package) @putout/plugin-strict-mode v2.0.0
  • (putout) @babel/parser 7.12.5

2020.11.17, v11.2.1

fix:

  • (putout) eslint: rm useless memo

feature:

  • (package) @putout/engine-runner v9.0.0
  • (@putout/engine-runner) drop support of node < 12
  • (package) @putout/traverse v3.0.0
  • (package) @putout/compare v6.0.0
  • (package) @putout/engine-parser v3.0.0
  • (@putout/traverse) drop support of node < 12
  • (@putout/traverse) @putout/compare v6.0.0
  • (@putout/engine-runner) @putout/compare v6.0.0
  • (@putout/compare) drop support of node < 12
  • (@putout/compare) @putout/engine-parser v3.0.0
  • (@putout/engine-runner) @putout/engine-parser v3.0.0
  • (@putout/engine-loader) @putout/engine-parser v3.0.0
  • (@putout/engine-parser) drop support of node < 12
  • (@putout/engine-parser) rm parse.fresh -> parse: rm memo

2020.11.16, v11.2.0

feature:

  • (putout) formatter: show an error when can't load formatter
  • (@putout/formatter-memory) add
  • (putout) speed up lint with cache: readFile: every time -> only when needed
  • (eslint-plugin-putout) json: no-mulsti-spaces: off

2020.11.16, v11.1.3

fix:

  • (putout) eslint: null -> crash/parser (when can't parse)

2020.11.16, v11.1.2

fix:

  • (putout) file-cache: eslint/ -> (eslint)
  • (@putout/engine-loader) is-enabled: rule names cross

feature:

  • (package) @putout/engine-loader v3.0.0
  • (@putout/processor-markdown) add support of json
  • (@putout/engine-processor) add support of extension field in preProcessor result
  • (@putout/engine-loader) drop support of node < 12

2020.11.14, v11.1.1

feature:

  • (package) @putout/plugin-remove-boolean-from-logical-expressions v3.0.0
  • (@putout/plugin-remove-boolean-from-logical-expressions) drop support of node < 12, putout < 11
  • (@putout/plugin-remove-boolean-from-logical-expressions) improve support of "&& true" expression (joaquimserafim/is-json#15)

2020.11.13, v11.1.0

feature:

  • (@putout/processor-json) add
  • (@putout/plugin-eslint) add
  • (eslint-plugin-putout) add support of json

2020.11.13, v11.0.9

fix:

  • (putout) eslint: eslint/rule -> rule (eslint)

2020.11.12, v11.0.8

fix:

  • (eslint-plugin-putout) engines: node v8 -> node v12

feature:

  • (eslint-plugin-putout) markdown: disable: no-empty
  • (putout) md: disable remove-empty, remove-unused-for-of-variables, remove-useless-variables
  • (eslint-plugin-putout) markdown: disable: node/no-unsupported-features/es-syntax, node/no-missing-import

2020.11.11, v11.0.7

feature:

  • (package) file-entry-cache v6.0.0

2020.11.11, v11.0.6

fix:

  • (@putout/processor-markdown) disable: [ -> [

feature:

  • (putout) md: disable remove-console
  • (@putout/processor-markdown) links: prevent new lines
  • (eslint-plugin-putout) markdown: disable no-multi-space
  • (@putout/plugin-madrun) add-madrun-to-lint: add support of *.js

2020.11.05, v11.0.5

fix:

  • (putout) write to cache on crash

feature:

  • (@putout/engine-loader) add jscodeshift peerDependency: @babel/preset-env v7.12.1

2020.11.04, v11.0.4

feature:

  • (putout) cli: get-files: add normalize
  • (package) nessy v4.0.0
  • (package) nessy v4.0.0

2020.11.04, v11.0.3

fix:

  • (eslint-plugin-putout) peerDependencies: putout: 9 -> 11

feature:

  • (package) @putout/plugin-strict-mode v2.0.0
  • (@putout/plugin-madrun) add-madrun-to-lint: exclude .*.js
  • (package) @putout/plugin-convert-object-assign-to-merge-spread v5.0.0
  • (@putout/plugin-convert-object-assign-to-merge-spread) drop support of node < 12
  • (@putout/plugin-convert-object-assign-to-merge-spread) exclude assign with one parameter: Object.assign({}, __)

2020.11.03, v11.0.2

feature:

  • (putout) md: disable apply-shorthand-properties, remove-unused-variables
  • (@putout/plugin-webpack) convert-query-loader-to-use: add support of couple queries
  • (@putout/plugin-madrun) add-madrun-to-lint: add support of dot

2020.11.03, v11.0.1

fix:

  • (putout) rm unused tryrequire

feature:

  • (putout) eslint-plugin-putout v6.0.0

2020.11.02, v11.0.0

feature:

  • (putout) add processors
  • (putout) cli: move out readFile, writeFile from process-file

2020.10.29, v10.5.1

feature:

  • (putout) cli: process-file: rm useless rawOrFixed
  • (@putout/plugin-convert-commonjs-to-esm) add partial support of json (babel/babel#12262)
  • (@putout/engine-parser) options: allowAwaitOutsideFunction -> plugins: topLevelAwait
  • (@putout/engine-parser) enable importAssertions
  • (@putout/plugin-remove-iife) exclude functions with ReturnStatement
  • (@putout/plugin-remove-useless-type-conversion) add support of typeof
  • (package) nodemon v2.0.6

2020.10.25, v10.5.0

feature:

  • (@putout/plugin-remove-useless-type-conversion) add

2020.10.25, v10.4.0

feature:

  • (@putout/plugin-remove-iife) add

2020.10.24, v10.3.0

feature:

  • (package) @putout/plugin-convert-to-arrow-function v3.0.0
  • (@putout/plugin-convert-to-arrow-function) drop support of node < 12
  • (@putout/plugin-convert-to-arrow-function) add support of ReturnStatement
  • (@putout/plugin-postcss) add
  • (@putout/plugin-apply-numeric-separators) add support of absent raw
  • (@putout/plugin-webpack) add covert-query-loader-to-use

2020.10.17, v10.2.1

fix:

  • (putout) 'webpack -> webpack

2020.10.17, v10.2.0

fix:

  • (@putout/plugin-remove-useless-variables) for-of: get back binding check
  • (@putout/plugin-extract-sequence-expressions) capitalize report message

feature:

  • (@putout/plugin-webpack) add
  • (@putout/compare) add support of innerComments, trailingComments
  • (@putout/plugin-remove-useless-variables) for-of: rm dead code
  • (@putout/plugin-apply-numeric-separators) exclude hex
  • (@putout/plugin-remove-empty) block: excludeof blocks with comments

2020.10.14, v10.1.1

fix:

  • (putout) add --no-cache

feature:

  • (package) mocha v8.1.3

2020.10.09, v10.1.0

fix:

  • (@putout/plugin-apply-shorthand-properties) add support of ImportDefaultSpecifier (#24)

feature:

  • (putout) supported-files: isJS -> isSupported
  • (package) jscodeshift v0.11.0
  • (package) @putout/plugin-remove-unused-expressions v2.0.0

2020.10.07, v10.0.6

fix:

  • (@putout/plugin-strict-mode) add: add support of ExportAllDeclaration (#25)

feature:

  • (package) @putout/plugin-strict-mode v2.0.0
  • (@putout/plugin-strict-mode) drop support of node < 12, putout < 10
  • (@putout/plugin-strict-mode) remove: add support of ExportAllDeclaration

2020.09.29, v10.0.5

fix:

  • (putout) help: default formatter

2020.09.28, v10.0.4

fix:

  • (@putout/plugin-remove-useless-arguments) false positive on using function as argument (#23)
  • (eslint-plugin-putout) comments break location (#22)

feature:

  • (package) @putout/plugin-remove-unused-expressions v2.0.0
  • (@putout/plugin-remove-unused-expressions) speed up: find -> traverse

2020.09.17, v10.0.3

fix:

  • (putout) eslint report

2020.09.17, v10.0.2

fix:

  • (putout) cli: process-file: always return array
  • (@putout/formatter-progress-bar) add " "

2020.09.16, v10.0.1

fix:

  • (putout) add @putout/formatter-progress-bar

2020.09.16, v10.0.0

fix:

  • (@putout/formatter-progress-bar) stop

feature:

  • (@putout/formatter-progress-bar) 0 -> πŸ‘Œ
  • (putout) cache: add ability to use root cache
  • (putout) enable cache by default
  • (putout) add ability to detect CI
  • (putout) drop support of node < 12
  • (@putout/formatter-progress-bar) add

2020.09.11, v9.14.2

fix:

  • (@putout/eslint-config) eslint 6.2 -> 7
  • (eslint-plugin-putout) multiple-properties-destructuring: add support of comments

feature:

  • (package) yargs-parser v20.0.0
  • (package) montag v1.0.0
  • (eslint-plugin-putout) add support of typescript

2020.09.04, v9.14.1

fix:

  • (@putout/plugin-remove-duplicate-interface-keys) index signature

feature:

  • (putout) disable remove-duplicate-interface-keys, because of additional semicolon

2020.09.04, v9.14.0

feature:

  • (@putout/plugin-remove-duplicate-interface-keys) add

2020.09.03, v9.13.0

feature:

  • (putout) add ability to run a couple mentioned plugins with: --no-config, --plugins (#10)

2020.09.02, v9.12.0

fix:

  • (@putout/engine-runner) rm useless debug

feature:

  • (putout) apply-numeric-superators: enable
  • (@putout/engine-runner) store: add support of adding properties
  • (@putout/plugin-remove-unused-types) add support of bubling
  • (@putout/eslint-config) ecmaVersion 2021
  • (@putout/formatter-codeframe) table v6.0.1
  • (@putout/formatter-codeframe) @putout/plugin-remove-unused-variables v3.0.0
  • (@putout/formatter-frame) @putout/plugin-remove-unused-variables v3.0.0
  • (@putout/formatter-stream) table v6.0.1
  • (@putout/formatter-stream) @putout/plugin-remove-unused-variables v3.0.0
  • (@putout/formatter-dump) @putout/plugin-remove-unused-variables v3.0.0
  • (@putout/formatter-dump) table v6.0.1
  • (@putout/engine-parser) recast v0.20.2 (@putout/recast: https://github.com/benjamn/recast/issues/743)

2020.08.20, v9.11.5

feature:

  • (package) @putout/plugin-convert-for-in-to-for-of v2.0.0
  • (@putout/plugin-convert-for-in-to-for-of) drop support of node < 10
  • (@putout/plugin-convert-for-in-to-for-of) drop support of putout < 9
  • (@putout/traverse) add support of template values
  • (@putout/compare) getValues: normalize behavior of empty selector
  • (package) @putout/plugin-remove-unused-variables v3.0.0
  • (package) @putout/engine-parser v2.0.0
  • (@putout/plugin-cloudcmd) convert IO.write to IO.createDirectory
  • (@putout/compare) add support of template literals
  • (@putout/plugin-cloudcmd) add convert-io-cp-to-io-copy
  • (@putout/plugin-cloudcmd) add

2020.08.14, v9.11.4

feature:

  • (package) find-up v5.0.0

2020.08.09, v9.11.3

feature:

  • (package) yargs-parser v19.0.1

2020.08.08, v9.11.2

feature:

  • (package) @putout/compare v5.0.0
  • (@putout/engine-runner) replace: add ability to preserve comments

2020.08.06, v9.11.1

feature:

  • (package) @putout/engine-parser v2.0.0
  • (package) @putout/operate v5.0.0
  • (package) @putout/compare v5.0.0
  • (package) @putout/traverse v2.0.0
  • (@putout/traverse) drop support of node < 10
  • (@putout/traverse) @putout/compare v5.0.0
  • (package) @putout/operate v5.0.0
  • (@putout/compare) drop support of node < 10
  • (package) @putout/engine-parser v2.0.0

2020.08.06, v9.11.0

feature:

  • (package) @putout/plugin-remove-unused-variables v3.0.0
  • (package) @putout/engine-parser v2.0.0
  • (package) @putout/operate v5.0.0
  • (@putout/plugin-remove-unused-variables) drop support of node < 10
  • (@putout/plugin-remove-unused-variables) add ability to preserve comments
  • (@putout/operate) drop support of node < 10
  • (@putout/operate) add support of remove
  • (@putout/engine-parser) drop support of node < 10
  • (@putout/engine-parse) add parse.fresh

2020.08.04, v9.10.2

fix:

  • (@putout/apply-optional-chaining) rm not relevant destructuring transform

feature:

  • (package) @putout/plugin-madrun v7.0.0
  • (@putout/plugin-madrun) drop support of node < 10
  • (package) eslint v7.6.0

2020.07.31, v9.10.1

fix:

  • (@putout/engine-loader) babel plugins: rm useless options

feature:

  • (package) @putout/plugin-apply-optional-chaining v2.0.0
  • (package) @putout/plugin-extract-object-properties v4.0.0
  • (@putout/plugin-extract-object-properties) drop support of node < 10
  • (@putout/plugin-apply-optional-chaining) drop support of node < 10
  • (@putout/plugin-apply-optional-chaining) add support of destructuring
  • (@putout/plugin-extract-object-properties) equal-deep: rm useless filter
  • (@putout/engine-loader) babel plugins: simplify code with cloneInputAst (https://github.com/babel/babel/releases/tag/v7.11.0)
  • (@putout/plugin-remove-unused-types) add exports support

2020.07.30, v9.10.0

fix:

  • (@putout/plugin-remove-useless-types) array support

feature:

  • (@putout/plugin-remove-unused-types) add
  • (@putout/plugin-remove-useless-types) add support of return types
  • (@putout/plugin-remove-unused-for-of-variables) add support of unreferenced variables after remove-useless-variables plugin
  • (@putout/plugin-remove-useless-types) add support of export

2020.07.29, v9.9.1

feature:

  • (package) @putout/plugin-remove-duplicate-keys v2.0.0
  • (@putout/plugin-remove-duplicate-keys) drop support of node < 10

2020.07.29, v9.9.0

fix:

  • (@putout/plugin-remove-useless-for-of) replace return value: -> null

feature:

  • (package) @putout/plugin-merge-duplicate-imports v3.0.0
  • (package) @putout/plugin-merge-destructuring-properties v5.0.0
  • (package) @putout/engine-runner v8.0.0
  • (@putout/engine-runner) store -> listStore
  • (@putout/plugin-merge-duplicate-imports) store -> listStore
  • (@putout/plugin-merge-destructuring-properties) new store
  • (@putout/plugin-remove-useless-types) add
  • (@putout/plugin-merge-destructuring-properties) remove useless check

2020.07.23, v9.8.0

feature:

  • (@putout/plugin-remove-useless-for-of) add

2020.07.23, v9.7.1

feature:

  • (package) @putout/engine-runner v7.0.0
  • (@putout/engine-runner) drop support of node < 10
  • (@putout/engine-runner) replace: fn: returns empty -> remove node

2020.07.21, v9.7.0

feature:

  • (@putout/plugin-remove-useless-template-expressions) add

2020.07.21, v9.6.1

fix:

  • (putout) disable numeric separators, stage3

2020.07.21, v9.6.0

feature:

  • (@putout/plugin-apply-numeric-separator) add

2020.07.19, v9.5.1

feature:

  • (package) @putout/plugin-remove-useless-spread v4.0.0
  • (@putout/plugin-remove-useless-spread) add support of function call

2020.07.19, v9.5.0

feature:

  • (@putout/plugin-convert-array-copy-to-slice) add
  • (@putout/plugin-remove-unused-for-of-variables) add support of one destructuring element

2020.07.17, v9.4.0

fix:

  • (@putout/engine-runner) merge-visitors: pull

feature:

  • (@putout/plugin-remove-unused-for-of-variables) add

2020.07.16, v9.3.1

feature:

  • (putout) remove unused variables

2020.07.14, v9.3.0

feature:

  • (putout) staged: add ability to abort pre-commit hook, when no staged changes

2020.07.12, v9.2.2

feature:

  • (package) @putout/engine-loader v2.0.0
  • (@putout/engine-loader) drop support of node < v10
  • (package) jscodeshift v0.10.0

2020.07.09, v9.2.1

feature:

  • (package) @putout/plugin-merge-duplicate-imports v2.0.0
  • (@putout/plugin-merge-duplicate-imports) add store

2020.07.08, v9.2.0

fix:

  • (@putout/engine-loader) rm unused get-babel-plugins

feature:

  • (package) @putout/plugin-merge-destructuring-properties v4.0.0
  • (@putout/engine-runner) traverse: add store
  • (@putout/plugin-merge-destructuring-properties) find -> traverse
  • (@putout/plugin-remove-empty) add support of last argument
  • (@putout/plugin-remove-useless-arguments) add support of no arguments

2020.07.04, v9.1.1

fix:

  • (putout) formatterOptions -> format

feature:

  • (putout) process-file: reporter always return string
  • (@putout/plugin-extract-object-properties) equal-deep: index
  • (@putout/plugin-remove-unreferenced-variables) add support of VariableDeclarator

2020.06.26, v9.1.0

feature:

  • (package) @putout/plugin-remove-unreferenced-variables v1.0.0
  • (@putout/plugin-remove-unreferenced-variables) add
  • (@putout/plugin-remove-unused-variables) improve unused import specifier handling
  • (package) eslint-plugin-putout v5.0.1
  • (package) madrun v7.0.0
  • (package) @putout/eslint-config v4.0.0
  • (@putout/eslint-config) if return -> if \n return'

2020.06.24, v9.0.0

feature:

  • (babel-plugin-putout) putout: dependencies -> peerDependencies
  • (eslint-plugin-putout) putout: dependencies -> peerDependencies
  • (putout) make eslint optional dependency
  • (putout) default formatter: progress for 10 and more files
  • (putout) rm -d, --debug from help
  • (putout) --update-cache -> --fresh
  • (putout) remove --remove-cache
  • (putout) enable process of dot files

2020.06.23, v8.21.0

feature:

  • (@putout/test) format: add support of options
  • (@putout/formatter-progress) add support of minCount
  • (putout) add support of formatterOptions

2020.06.23, v8.20.2

fix:

2020.06.22, v8.20.1

fix:

  • (putout) eslint: read config (https://github.com/eslint/eslint/issues/13427)
  • (@putout/engine-runner) debug.enabled
  • (@putout/test) noFormat: notOk -> equal ""
  • (@putout/formatter-eslint) return: undefined -> ""
  • (@putout/formatter-codeframe) return: undefined -> ""
  • (@putout/formatter-frame) early return
  • (@putout/formatter-frame) no places -> undefined

feature:

  • (@putout/engine-runner) log: path -> path.toString
  • (@putout/plugin-reuse-duplicate-init) add support of @putout/plugin-remove-useless-escape
  • (@putout/plugin-remove-useless-escape) add support of ^
  • (@putout/codemod-apply-replace-all) add
  • (@putout/compare) improve support of linked string literals

2020.06.19, v8.20.0

fix:

  • feature(@putout/plugin-merge-destructuring-properties) find, -> merge-destructuring-properties

feature:

  • (@putout/plugin-reuse-duplicate-init) add
  • (@putout/engine-runner) traverse: add support of include, exclude
  • (@putout/plugin-merge-destructuring-properties) find, fix -> merge-destructuring-properties
  • (@putout/plugin-merge-destructuring-properties) for -> for-of

2020.06.18, v8.19.1

fix:

  • (putout) parse-options: parse-match: ?
  • (putout) mv out convert-generic-to-shorthand from .mjs

2020.06.18, v8.19.0

fix:

  • (@putout/parser) wrapLines when length is more then 74

feature:

  • (@putout/plugin-convert-generic-to-shorthand) add
  • (@putout/test) add support of TS in report

2020.06.17, v8.18.1

fix:

  • (putout) "node_modules" in codemodes directory: "~/.putout"
  • (@putout/operate) rm redundant putout.json

feature:

  • (@putout/operate) isModuleExports: matchesPattern
  • (@putout/plugin-remove-useless-variables) isPromiseResolve -> matchesPattern
  • (@putout/plugin-extract-object-properties) Object.keys -> keys
  • (@putout/plugin-add-return-await) include -> replace

2020.06.16, v8.18.0

fix:

  • feature(@putout/plugin-remove-useless-array-from) include + -> replace
  • (@putout/plugin-remove-useless-variables) no binding

feature:

  • (package) @putout/formatter-frame v1.0.0
  • (@putout/formatter-frame) add
  • (@putout/plugin-remove-useless-array-from) include + fix -> replace

2020.06.15, v8.17.1

fix:

  • (@putout/plugin-remove-boolean-from-logical-expression) putout >= 8
  • feature(@putout/plugin-convert-top-level-return) include + -> replace
  • chore(madrun) add :lint:fresh

feature:

  • (package) @putout/plugin-remove-boolean-from-logical-expressions v2.0.1
  • (@putout/plugin-remove-boolean-from-logical-expression) traverse -> replace
  • (@putout/plugin-convert-top-level-return) include + fix -> replace
  • (@putout/convert-binary-expression) vm -> evaluate
  • (@putout/engine-parser) acorn v7.3.1, acorn-stage3 v3.0.0
  • (@putout/eslint-plugin-putout) add remove-newline-after-default-import

2020.06.10, v8.17.0

fix:

  • (@putout/engine-loader) load-plugin: rm useless Module.plugins (used for webpack bundle build)

feature:

  • (putout) add --debug flag to switch formatter into reason of a crash (when occurs)
  • (@putout/eslint-cofig) .eslintrc.json -> eslintrc.json

2020.06.09, v8.16.1

fix:

  • (putout) transform -> [transform]

2020.06.08, v8.16.0

feature:

  • (putout) add support of --transform

2020.06.07, v8.15.1

fix:

  • (putout) parse-options: complex paths with a lot "*", ".", "?"
  • (@putout/compare) correct args order

2020.06.06, v8.15.0

fix:

  • (@putout/plugin-remove-useless-spread) object: exclude: VariableDeclaration -> AssignmentExpression

feature:

  • (putout) add --fresh
  • (putout) add ability to set --format a couple times, last will be applied
  • (@putout/plugin-remove-useless-spread) exclude object copy
  • (@putout/codemod-cut-legacy-functions) add
  • (@putout/compare) add __identifier
  • (@putout/compare) improve support of literals

2020.06.05, v8.14.1

fix:

  • (putout) npmignore: add fixture

2020.06.05, v8.14.0

fix:

  • (@putout/compare) strict _argsa check
  • chore(package) pre-commit: add --
  • (@putout/engine-parser) flow: watermark not on first line

feature:

  • (@putout/plugin-remove-useless-functions) add
  • (@putout/compare) add support of linked args: argsa
  • (@putout/plugin-convert-equal-to-strict-equal) exclude null check
  • (@putout/plugin-merge-duplicate-imports) add support of ImportNamespaceSpecifier

2020.06.03, v8.13.1

fix:

  • (putout) --enable(--all)?/--disable(--all)?: filter "crash/parser" rule from .putout.json
  • feature(@putout/engine-runner) improve support of "@babel/plugin-" prefixes

feature:

  • (@putout/engine-runner) improve support of "@babel/plugin-" prefixes
  • (@putout/plugin-apply-optional-chaining) add support of call

2020.06.02, v8.13.0

fix:

  • (@putout/eslint-config) no-implicit-coercion: allow ~ back, to avoid overlap with @putout/plugin-convert-index-of-to-includes
  • (@putout/plugin-convert-index-of-to-includes) report
  • (@putout/plugin-convert-index-of-to-includes) !~ -> ~

feature:

  • (putout) cli: --enable: add ability to use without file argument
  • (@putout/plugin-convert-index-of-to-includes) add equal check
  • (@putout/plugin-convert-index-of-to-includes) add not equal
  • (@putout/eslint-config) no-implicit-coercion: disallow ~

2020.06.01, v8.12.0

fix:

  • (@putout/plugin-extract-object-properties) handle absence of scope after @putout/plugin-apply-destructuring
  • (@putout/engine-parser) babel: decorators -> decorators-legacy

feature:

  • (@putout/engine-runner) template: generate() -> path.toString()
  • (@putout/plugin-convert-index-of-to-includes) add
  • (@putout/plugin-remove-unreachable-code) add support of FunctionDeclaration hoist (#17)
  • (@putout/plugin-remove-useless-expressions) add support of ArrayExpression
  • (@putout/plugin-remove-unused-expressions) add support of ObjectExpression
  • (@putout/eslint-config) add brace-style
  • (@putout/plugin-remove-unused-variables) add support of TSAsExpression
  • (@putout/engine-parser) acorn v7.2.0

2020.05.30, v8.11.1

fix:

  • (putout) specify custom rulesdir -> use additional rules from directory

feature:

  • (@putout/eslint-config) add no-useless-return, yoda

2020.05.30, v8.11.0

feature:

  • (@putout/eslint-config) add no-useless-return, yoda

2020.05.29, v8.10.1

feature:

  • (package) @putout/plugin-remove-useless-spread v3.0.0
  • (@putout/plugin-remove-useless-spread) split to array and object
  • (putout) default config: tsx, mjs: disable strict mode
  • (@putout/plugin-remove-useless-spread) add support of object
  • (@putout/eslint-config) add no-implicit-coercion
  • (@putout/plugin-merge-duplicate-imports) find -> traverse

2020.05.28, v8.10.0

feature:

  • (@putout/plugin-merge-duplicate-imports) add
  • (@putout/plugin-remove-unused-variables) typescript: add support of namespace
  • (@putout/plugin-remove-useless-arguments) destructuring: rm exclude: redundant
  • (@putout/plugin-remove-duplicate-keys) remove data when there is no need for it

2020.05.26, v8.9.0

fix:

  • (compare) __object is reserved

feature:

  • (@putout/plugin-remove-duplicate-keys) add
  • (@putout/engine-runner) replace: add ability to return node
  • (@putout/plugin-convert-for-in-to-for-of) simplify
  • (putout) eslint: mv to cli

2020.05.21, v8.8.0

feature:

  • (putout) cache-files: add ability to avoid cache on eslint parser error

2020.05.20, v8.7.0

fix:

  • (@putout/plugin-remove-useless-arguments) destructuring: spread

feature:

  • (putout) eslint: cache: avoid cache when definition of rule not found

2020.05.18, v8.6.0

feature:

  • (putout) add support of --ext
  • (extensions) mv out from supported-files
  • (@putout/plugin-remove-useless-variables) for-of: add support of maxProperties

2020.05.18, v8.5.2

fix:

  • (putout) enable ts for tsx

feature:

  • (@putout/plugin-remove-useless-variables) for-of: exclude multiple properties destructuring

2020.05.17, v8.5.1

feature:

  • (get-files) move out getJSGlob to supported-files

2020.05.17, v8.5.0

fix:

  • (putout) get-files: not js ext
  • (putout) get-files: mjs

feature:

  • (putout) add support of .cjs

2020.05.16, v8.4.1

fix:

  • fix(putout) get-files: not js ext
  • fix(putout) get-files: mjs

2020.05.15, v8.4.0

fix:

  • (@putout/convert-for-to-for-of) n: no-length

feature:

  • (putout) add support of tsx, mjs files
  • (@putout/engine-parser) babel: allowUndeclaredExports
  • (@putout/codemod-convert-emitter-to-promise) add support of template literal in event name
  • (package) supertape v2.0.1
  • (@putout/plugin-convert-for-to-for-of) keywords
  • (@putout/test) v2.0.0
  • (@putout/test) tape -> supertape
  • (package) @putout/formatter-dump v2.0.1
  • (package) putout v8.3.0

2020.05.10, v8.3.0

feature:

  • (putout) add support of env variable PUTOUT_FILES
  • (package) @cloudcmd/stub v3.0.0
  • (package) supertape v2.0.0
  • (package) espree v7.0.0

2020.05.09, v8.2.0

feature:

  • (putout) glob -> fast-glob

2020.05.07, v8.1.1

feature:

  • (package) @putout/formatter-progress v2.0.0
  • (@putout/formatter-progress) drop support of node < 10
  • (package) @putout/formatter-dump v2.0.1

2020.05.07, v8.1.0

fix:

  • (eslint-plugin-putout) parseOptions

feature:

  • (@putout/plugin-split-nested-destructuring) add

2020.05.06, v8.0.4

fix:

  • (putout) rm webpack build: decrease npm package size'

2020.05.05, v8.0.3

feature:

  • (putout) readFileSync, writeFileSync -> promises: readFile, writeFile

2020.05.04, v8.0.2

feature:

  • (putout) staged: add ability to filter only js files

2020.05.04, v8.0.1

feature:

  • (package) @putout/formatter-stream v2.0.0
  • (package) @putout/plugin-remove-unused-variables v2.3.0
  • (@putout/formatter-stream) drop support of node < 10
  • (package) chalk v4.0.0
  • (package) @putout/formatter-codeframe v2.0.0
  • (package) @putout/formatter-dump v2.0.0
  • (@putout/formatter-codeframe) drop support of node < 10
  • (package) chalk v4.0.0
  • (package) @putout/plugin-remove-unused-variables v2.3.0
  • (@putout/formatter-dump) drop support of node < 10
  • (package) chalk v4.0.0
  • (package) @putout/plugin-remove-unused-variables v2.3.0
  • (package) @putout/eslint-config v3.0.0
  • (@putout/eslint-config) drop support of node < 10
  • (package) eslint-plugin-putout v4.0.0
  • (package) eslint v7.0.0-rc.0
  • (package) madrun v6.0.0
  • (package) putout v8.0.0
  • (package) putout v8.0.0

2020.05.04, v8.0.0

fix:

  • (@putout/engine-parser) template: rm expression

feature:

  • (package) try-catch v3.0.0
  • (package) eslint v7.0.0
  • (putout) add --staged
  • (putout) remove DEPRECATED operate
  • (package) chalk v4.0.0
  • (putout) drop support of node < 10
  • (package) nyc v15.0.1
  • (package) nyc v15.0.1
  • (package) codegen.macro v4.0.0
  • (@putout/engine-runner) add ability to handle infinite loops: for the same replacers

2020.04.30, v7.24.0

fix:

  • (@putout/plugin-convert-for-in-to-for-of) negative: absent hasOwnProperty
  • chore(npmignore) add fixture
  • (@putout/plugin-convert-for-in-to-for-of) npmignore: add fixture
  • (package) eslintrc

feature:

  • (putout) add ability to show rule name on crash
  • (@putout/engine-runner) add ability to set rule name on crash
  • (@putout/plugin-extract-sequence-expressions) add support of AwaitExpression
  • (@putout/plugin-convert-for-in-to-for-of) add support of missing VariableDeclaration
  • (@putout/plugin-remove-unused-variables) const __a = __b = __c -> __b = __c
  • (@putout/plugin-remove-unused-variables) const __a = exports = __b -> exports = __b
  • (@putout/plugin-remove-unused-variables) const __a = module.exports = __b -> module.exports = __b
  • (eslint-plugin-config) simplify naming
  • (@putout/eslint-config) add "no-cond-assign: off"
  • (eslint-plugin-putout) add function declaration-paren-newline

2020.04.18, v7.23.0

fix:

  • (@putout/eslint-config) rm key-spacing

feature:

  • (@putout/plugin-convert-for-in-to-for-of) add
  • (package) @putout/plugin-remove-unused-variables v2.0.1
  • (package) recast v0.19.0

2020.04.10, v7.22.0

fix:

  • (@putout/eslint-config) space-before-function-paren: keep space after async

feature:

  • (putout) add ESLINT_CONFIG_FILE support
  • (@putout/plugin-extract-object-properties) avoid extract of variables binded in outer scope
  • (@putout/eslint-config) add lines-between-class-members
  • (@putout/eslint-config) add key-spacing
  • (@putout/eslint-config) add comma-spacing
  • (@putout/eslint-config) add space-before-function-paren

2020.04.04, v7.21.0

feature:

  • (putout) add --update-cache, --remove-cache

2020.04.04, v7.20.4

fix:

  • (putout) process-file: avoid cache when eslint parser error
  • feature(@putout/plugin-putout) add fixType
  • feature(@putout/plugin-madrun) rename-eslint-to-putout: : if -> switch
  • (@putout/plugin-putout) rm unused propertyPath
  • (@putout/plugin-extract-object-properties) rm unused
  • (@putout/plugin-extract-object-properties) npmignore: fixture
  • (@putout/plugin-extract-object-properties) npmignore: fixture

feature:

  • (@putout/plugin-remove-unused-variables) if -> switch
  • (@putout/plugin-react-hooks) simplify
  • (@putout/plugin-putout) add fixType
  • (@putout/plugin-madrun) rename-eslint-to-putout: fix: if -> switch
  • (@putout/plugin-remove-unused-private-fields) simplify condition
  • (@putout/plugin-madrun) rm not coveraged code
  • (@putout/plugin-putout) convert-find-to-traverse: rm not covered code
  • (@putout/plugin-react-hooks) rm not coveraged by tests
  • (@putout/plugin-extract-object-properties) getTemplateValues

2020.03.30, v7.20.3

fix:

  • (npmignore) add .spec.js
  • (@putout/plugin-remove-useless-async) empty async function

feature:

  • (package) estree-to-babel v3.0.0
  • (@putout/engine-parser) add ability to handle duplicate variables declaration
  • (package) @putout/plugin-remove-unused-variables v2.0.0
  • (@putout/test) is-correct-plugin
  • (@putout/compare) add __nop
  • (package) fullstore v3.0.0
  • (@putout/eslint-config) function-paren-newline: multiline-arguments
  • (eslint-plugin-putout) keyword-spacing: add support of for, for-of, for-await-of

2020.03.23, v7.20.2

fix:

  • (putout) ruler-processor: cwd

2020.03.23, v7.20.1

fix:

  • (@putout/traverse) scope

feature:

  • (@putout/engine-parser) add support of Record, Tuple (https://github.com/tc39/proposal-record-tuple)
  • (@putout/plugin-remove-unused-variables) add support of Record, Tuple (https://github.com/tc39/proposal-record-tuple)
  • (@putout/traverse) improve path support
  • (@putout/engine-runner) get isTemplate from @putout/compare
  • (@putout/compare) parseTemplate: add support of program
  • (@putout/traverse) speed up
  • (@putout/engine-parser) template: add support of template.program
  • (@putout/plugin-convert-for-each-to-for-of) path.traverse -> operator.traverse
  • (eslint-plugin-putout) keyword-spacing: add support of if
  • (@putout/traverse) add contains

2020.03.18, v7.20.0

feature:

  • (package) @putout/traverse v1.0.0
  • (package) @putout/plugin-remove-useless-async v3.0.0
  • (@putout/plugin-remove-useless-async) traverse
  • (putout) operator: add traverse
  • (@putout/engine-runner) add @putout/traverse
  • (@putout/traverse) add

2020.03.18, v7.19.1

fix:

  • test(putout) cli: process-file: --

feature:

  • (package) @putout/plugin-remove-useless-async v2.0.0
  • (@putout/plugin-remove-useless-async) drop support of putout < 7.17
  • (@putout/plugin-remove-useless-async) add support of for-await-of
  • (@putout/plugin-remove-unused-variables) add support of decorators
  • (@putout/engine-parser) add support of decorators

2020.03.18, v7.19.0

feature:

  • (putout) -r, --renamed: add ability to add "renamed" files

2020.03.17, v7.18.2

fix:

  • (putout) added
  • (@putout/engine-runner) replace: rm findVars
  • (@putout/plugin-remove-empty-pattern) putout <= 7.17

feature:

  • (@putout/engine-runner) add match
  • (package) @putout/plugin-remove-empty-pattern v3.0.1
  • (@putout/plugin-remove-empty-pattern) add support of multi elements array pattern
  • (@putout/compare) getTemplateValues: add support of __array, __

2020.03.13, v7.18.1

fix:

  • (eslint-plugin-putout) getContextOptions: remove unused
  • (@putout/eslint-config) rm brackets

feature:

  • (@putout/engine-loader) parse-rules: provide more info in validation error message
  • (@putout/plugin-convert-for-to-for-of) split into 2 files
  • (@putout/plugin-remove-unused-variables) add support of OptionalCallExpression
  • (@putout/plugin-convert-for-to-for-of) add support of n
  • (@putout/engine-runner) replace: add support of path
  • (eslint-plugin-putout) keyword-spacing: add support of switch
  • (@putout/eslint-config) space-before-blocks: add

2020.03.08, v7.18.0

feature:

  • (@putout/plugin-convert-for-to-for-of) add
  • (package) @putout/plugin-putout v5.0.0

2020.03.08, v7.17.0

feature:

  • (package) @putout/compare v4.0.1
  • (package) yargs-parser v18.1.0
  • (package) @putout/plugin-putout v5.0.0
  • (package) @putout/plugin-split-variable-declarations v2.0.0
  • (package) @putout/plugin-remove-useless-variables v4.0.0
  • (package) @putout/plugin-remove-useless-array-from v2.0.0
  • (package) @putout/plugin-remove-useless-arguments v4.0.0
  • (package) @putout/plugin-remove-nested-blocks v3.0.0
  • (package) @putout/plugin-remove-empty v5.0.0
  • (package) @putout/plugin-remove-constant-conditions v2.0.0
  • (package) @putout/plugin-merge-if-statements v3.0.0
  • (package) @putout/plugin-merge-destructuring-properties v3.0.0
  • (package) @putout/plugin-madrun v6.0.0
  • (@putout/convert-fs-to-promises) drop support of putout < 7.17
  • (package) @putout/plugin-extract-sequence-expressions v2.0.0
  • (package) @putout/plugin-extract-object-properties v3.0.0
  • (package) @putout/plugin-convert-top-level-return v3.0.0
  • (package) @putout/plugin-convert-object-assign-to-merge-spread v4.0.0
  • (package) @putout/plugin-convert-for-each-to-for-of v5.0.0
  • (package) @putout/plugin-convert-binary-expression-to-boolean v2.0.0
  • (package) @putout/plugin-apply-top-level-await v2.0.0
  • (package) @putout/plugin-apply-shorthand-properties v3.0.0
  • (package) @putout/plugin-promises v4.0.0
  • (package) @putout/plugin-add-return-await v2.0.0
  • (package) @putout/compare v4.0.1
  • (package) @putout/engine-runner v6.0.0
  • (package) @putout/operate v4.0.0
  • (putout) operate -> operator

2020.03.06, v7.16.2

feature:

  • (putout) cli: speed up, when ruler not used

2020.03.03, v7.16.1

fix:

  • (putout) eslint: replace control chars on read config error
  • (@putout/plugin-strict-mode) rm unused file putout

feature:

  • (@putout/eslint-config) no-multiple-empty-lines: maxBOF: 0
  • (@putout/compare) improve block support

2020.02.29, v7.16.0

feature:

  • (@putout/plugin-remove-useless-typeof) add
  • (@putout/plugin-remove-useless-async) add support of args, exclude arrow functions without body
  • (@putout/compare) add support of __body

2020.02.28, v7.15.0

feature:

  • (@putout/plugin-remove-useless-async) add

2020.02.28, v7.14.2

fix:

  • (putout) ignores: negative

2020.02.28, v7.14.1

fix:

  • (madrun) prepublishOnly -> madrun

2020.02.28, v7.14.0

fix:

  • (@putout/compare) rm unused try-catch

feature:

  • (@putout/plugin-remove-useless-await) add
  • (@putout/plugin-remove-skip) exclude not top level test.skip
  • (@putout/plugin-remove-only) exclude not top level test.only

2020.02.24, v7.13.4

feature:

  • (package) try-catch v3.0.0

2020.02.24, v7.13.3

fix:

  • (putout) when have eslint config error, mark it as found

2020.02.24, v7.13.2

feature:

  • (putout) add ability to show eslint config validation errors
  • (@putout/eslint-config) keyword-spacing: catch, disable no-control-regex

2020.02.18, v7.13.1

feature:

  • (@putout/plugin-convert-template-to-string) add

2020.02.17, v7.13.0

fix:

  • (@putout/pulgin-remove-useless-arguments) npmignore: add fixture

feature:

  • (package) @putout/plugin-remove-useless-arguments v3.0.1
  • (@putout/plugin-remove-useless-arguments) add support of simple arguments

2020.02.16, v7.12.2

fix:

  • (cli) logError
  • (putout) eslint: disable eslint when there is no config

feature:

  • (putout) cache: include file to cache when eslint-plugin-putout used

2020.02.15, v7.12.1

feature:

  • (putout) add ability to exclude rules with eslint plugins from cache (eslint/eslint#10712)

2020.02.14, v7.12.0

feature:

  • (package) @putout/plugin-remove-nested-blocks v2.0.0
  • (@putout/plugin-remove-nested-blocks) drop support of putout < 7
  • (@putout/plugin-remove-nested-blocks) add support of switch case

2020.02.13, v7.11.1

feature:

  • (putout) move out cli from bin

2020.02.12, v7.11.0

feature:

  • (putout) add cache

2020.02.10, v7.10.2

fix:

  • (putout) match: regexp

feature:

  • (package) yargs-parser v17.0.0

2020.02.09, v7.10.1

fix:

  • (@putout/engine-parser) custom-parser: object: get back, used in putout-editor

2020.02.09, v7.10.0

fix:

  • (@putout/engine-loader) loadPlugins: options check
  • (@putout/engine-parser) rm unused export to getParser
  • (@putout/engine-parser) custom-parser: rm unused isObject check
  • (@putout/apply-optional-chaining) function support
  • (@putout/compare) extract expression
  • (@putout/plugin-apply-top-level-await) rm unused check

feature:

  • (package) @babel/generator v7.8.4
  • (package) @babel/template v7.8.3
  • (package) @babel/parser v7.8.4
  • (@putout/engine-parser) rm nullishCoalescingOperator, optionalChaining: enabled by default (https://babeljs.io/blog/2020/01/11/7.8.0)
  • (@putout/plugin-apply-optional-chaining) add support of computed properties
  • (@putout/eslint-config) add eol-last
  • (@putout/plugin-apply-optional-chaining) add support of ifStatements
  • (@putout/engine-runner) improve expression support

2020.02.02, v7.9.1

feature:

  • (putout) parse-options: readRules: plugins: object -> array
  • (@putout/codemod-convert-tape-to-supertape) convert to replace
  • (@putout/codemod-cut-legacy) convert to include
  • (@putout/engine-runner) filter: replace -> include
  • (@putout/engine-runner) rm unused check

2020.01.28, v7.9.0

feature:

  • (package) @putout/plugin-convert-commonjs-to-esm v4.0.0
  • (package) @putout/plugin-promises v3.0.0
  • (package) @putout/engine-runner v5.0.0
  • (@putout/plugin-convert-commonjs-to-esm) replacer: add filter
  • (@putout/plugin-promises) replacer: add filter
  • (@putout/engine-runner) replacer: add support of filter

2020.01.28, v7.8.0

fix:

  • (@putout/compare) rm unused micro-memoize

feature:

  • (package) @putout/engine-runner v4.1.0
  • (package) @putout/plugin-promises v2.0.0
  • (@putout/engine-runner) replace: add support of path
  • (@putout/plugin-promises) convert-reject-to-throw: convert to replace
  • (@putout/plugin-promises) convert-useless-resolve: convert to replace
  • (@putout/engine-loader) micro-memoize -> nano-memoize
  • (@putout/engine-parser) micro-memoize -> nano-memoize: lint spead up: 40s -> 30s
  • (package) jscodeshift v0.7.0
  • (package) husky v4.2.1

2020.01.24, v7.7.1

fix:

  • (@putout/engine-runner) template: isTemplate: entry has no sense in merge visitors
  • (@putout/plugin-convert-throw) readme links

feature:

  • (package) @putout/plugin-remove-useless-spread v2.0.0
  • (@putout/plugin-remove-useless-spread) convert to replace
  • (@putout/plugin-convert-arguments-to-rest) simplify
  • (@putout/engine-parser) remove acorn version check due to using a fork with overridden version (https://github.com/acornjs/acorn/issues/862)

2020.01.21, v7.7.0

feature:

  • (package) @putout/engine-parser v1.10.0
  • (putout) add @putout/convert-throw
  • (@putout/engine-parser) add support of throw expression
  • (@putout/plugin-convert-throw) add
  • (@putout/engine-runner) replace: speed up when skip
  • (package) @putout/plugin-convert-spread-to-array-from v2.0.0
  • (@putout/plugin-convert-spread-to-array-from) convert to replace

2020.01.20, v7.6.2

feature:

  • (package) @putout/plugin-convert-spread-to-array-from v2.0.0
  • (@putout/plugin-convert-spread-to-array-from) convert to replace

2020.01.17, v7.6.1

fix:

  • feature(@putout/eslint-config) disable no-empty-pattern: no
  • (putout) parseOptions: custom optionsmore important then merged options, custom match more important then custom options

feature:

  • (@putout/eslint-config) disable no-empty-pattern: no fix

2020.01.16, v7.6.0

fix:

  • chore(madrun) :lint

feature:

  • (package) @putout/plugin-convert-commonjs-to-esm v3.0.0
  • (package) @putout/plugin-putout v4.0.0
  • (package) @putout/plugin-convert-for-each-to-for-of v4.0.0
  • (package) @putout/engine-runner v4.0.0
  • (package) @putout/operate v3.0.0
  • (package) @putout/operate v3.0.0
  • (@putout/engine-runner) replace: add ability to skip
  • (@putout/operate) replaceWith: add support of expressions
  • (@putout/plugin-putout) drop support of putout < 7.6
  • (@putout/plugin-convert-for-each-to-for-of) drop support of putout < 7.6
  • (@putout/plugin-convert-commonjs-to-esm) convert to replace

2020.01.15, v7.5.0

fix:

  • (@putout/plugin-convert-esm-to-commonjs) add support of babel 8

feature:

  • (package) @putout/plugin-convert-esm-to-commonjs v3.0.0
  • (package) @putout/engine-runner v3.7.0
  • (@putout/convert-esm-to-commonjs) replace
  • (@putout/engine-runner) move out isName, isArgs, isImports into @putout/compare
  • (@putout/compare) add isName, isArgs, isImports
  • (@putout/engine-runner) add support of __args, __imports
  • (@putout/compare) add support of __imports
  • (@putout/engine-parser) enable BABEL_TYPES_8_BREAKING
  • (@putout/engine-runner) add support of linked nodes literals
  • (@putout/compare) add ability to use linked node literals

2020.01.14, v7.4.4

fix:

  • (putout) improve globbing
  • (long-properties-destructuring) exclude ForOfStatement

feature:

  • (putout) speed up lint 5m -> 40s
  • (putout) eslint-plugin-node v11
  • (package) rm eslint-plugin-tape
  • (compare) simplify superCompare
  • (@putout/eslint-config) add padded-blocks: never'
  • (compare) add ANY_ARGS
  • (compare) recursion -> loop
  • (compare) isLinkedNode: add

2020.01.07, v7.4.3

fix:

  • (putout) parse-options: customMatch -> mergedMatch

2020.01.06, v7.4.2

fix:

  • (@putout/engine-runner) template: rm path.skip
  • (@putout/compare) log
  • (putout) --disable-all: crash when no files
  • (@putout/compare) comments
  • (@putout/engine-runner) replace: variable overwrite

feature:

  • (@putout/plugin-convert-apply-to-spread) replace
  • (package) nessy v3.0.0

2020.01.03, v7.4.1

fix:

  • (parse-match) add windows support

2020.01.03, v7.4.0

fix:

  • (package) engine
  • (babel-plugin-putout) lib

feature:

  • (@putout/plugin-remove-useless-templates) add
  • (eslint-plugin-putout) single-property-destructuring: wrap
  • (eslint-plugin-putout) new-line-function-call-arguments: wrap
  • (eslint-plugin-putout) multiple-properties-destructuring: wrap
  • (eslint-plugin-putout) long-properties-desturucturing
  • (eslint-plugin-putout) for-of-multiple-properties-destructuring: wrap
  • (eslint-plugin-putout) destructuring-as-function-argument: wrap
  • (eslint-plugin-putout) wrap: align-spaces
  • (eslint-plugin-putout) add wrap
  • (eslint-plugin-putout) rules -> lib
  • (eslint-plugin-putout) add keyword-spacing
  • (@putout/eslint-config) keyword-spacing: rm catch: doesn't supports optional catch binding
  • (@putout/plugin-remove-unused-variables) add support of optional catch binding (https://github.com/tc39/proposal-optional-catch-binding)

2019.12.27, v7.3.4

fix:

  • (putout) paths deduplications

feature:

  • (putout) move out getFiles
  • (package) jessy v3.0.0

2019.12.20, v7.3.3

fix:

  • (putout) glob

feature:

  • (package) madrun v5.2.0

2019.12.19, v7.3.2

fix:

  • (putout) file paths validation
  • (@putout/plugin-madrun) rename-eslint-to-putout: only beginning of the line
  • (@putout/plugin-madrun) rename-eslint-to-putout: exclude all but lint
  • (@putout/engine-loader) validate: plugin name with slash
  • (@putout/engine-loader) validate-rules: nested
  • (@putout/engine-runner) infinite loop: watermark: save all steps

feature:

  • (package) madrun v5.1.0
  • (putout) speed up tests
  • (babel-plugin-putout) mocha -> tape

2019.12.12, v7.3.1

fix:

  • (package) rm unused diff-match-patch

feature:

  • (@putout/engine-runner) path.remove -> watermark: speed up'

2019.12.06, v7.3.0

fix:

  • (@putout/engine-runner) rm micro-memoize
  • (@putout/engine-loader) @putout/plugin-remove-unused-variables: dependencies -> devDependnecies

feature:

  • (package) @putout/plugin-apply-destructuring v5.0.0
  • (package) @putout/engine-runner v3.4.0
  • (@putout/plugin-apply-destructuring) object: convert to replace
  • (@putout/engine-runner) replace: add support of object pattern
  • (@putout/plugin-convert-object-assign-to-merge-spread) simplify
  • (@putout/engine-runner) @babel/generator -> @putout/engine-parser
  • (compare) add regIgnore

2019.11.29, v7.2.2

fix:

  • (@putout/apply-optional-chaining) template variables

feature:

  • (package) @putout/plugin-simplify-ternary v2.0.0
  • (@putout/plugin-simplify-ternary) convert to replace
  • (@putout/compare) add ability to compare that names templates variable equail
  • (@putout/engine-runner) replace: isTemplateName

2019.11.28, v7.2.1

feature:

  • (package) @putout/plugin-remove-double-negations v2.0.0
  • (package) @putout/engine-runner v3.3.0
  • (@putout/plugin-remove-double-negations) convert to replace
  • (@putout/engine-runner) replace: add support of Identifier, IfCondition

2019.11.25, v7.2.0

fix:

  • (putout) rm direct dependency @babel/parser, use @putout/engine-parser instead

feature:

  • (package) @putout/plugin-madrun v5.0.0
  • (putout) add template from @putout/engine-parser
  • (@putout/remove-console) add support of console.dir
  • (package) nodemon v2.0.1
  • (@putout/engine-parser) add ability to reuse options in template

2019.11.19, v7.1.0

fix:

  • (@putout/plugin-merge-if-statements) dependencies -> devDependencies: eslint-plugin-putout

feature:

  • (@putout/plugin-apply-optional-chaining) add
  • (package) @putout/engine-parser v1.7.0
  • (@putout/engine-parser) template: add support of optionalChaining
  • (@putout/plugin-remove-unused-variables) add support of OptionalMemberExpression
  • (@putout/engine-parser) add support of optionalChaining
  • (@putout/remove-unused-variables) improve support of AssignmentPattern

2019.11.15, v7.0.6

fix:

  • (@putout) parseOptions: options as argument

2019.11.15, v7.0.5

fix:

  • (putout) match

2019.11.13, v7.0.4

fix:

  • (putout) help: --rulesdir
  • (putout) apply-top-level-await
  • (@putout/plugin-apply-shorthand-properties) exclude AssignmentPattern
  • (@putout/engine-parser) exclude *.spec.js

feature:

  • (@putout/engine-loader) add rules validation
  • (@putout/engine-runner) debug namespaces
  • (@putout/engine-parser) add tenko (esprima) support (pvdz/tenko#6)

2019.11.11, v7.0.3

fix:

  • (@putout/plugin-remove-empty) multiple ImportSpecifiers

feature:

  • (package) chalk v3.0.0
  • (@putout/compare) add _OBJECTTYPE, _ARRAYTYPE
  • (package) @putout/plugin-remove-empty-pattern v2.0.0

2019.11.07, v7.0.2

fix:

  • (putout) eslint: disable dot files ignore

feature:

  • (package) @putout/compare v3.1.0
  • (@putout/compare) add parseTemplate
  • (package) @putout/plugin-madrun v4.0.0

2019.11.06, v7.0.1

feature:

  • (package) @putout/plugin-apply-destructuring v4.0.0
  • (@putout/plugin-apply-destructuring) drop support of node < 7: use __object, __array
  • (package) putout v7.0.0
  • (package) @putout/plugin-remove-empty v4.0.0
  • (package) putout v7.0.0
  • (package) putout v7.0.0

2019.11.06, v7.0.0

feature:

  • (package) @putout/plugin-remove-useless-arguments v2.0.0
  • (package) @putout/plugin-convert-apply-to-spread v3.0.0
  • (package) @putout/plugin-remove-empty v4.0.0
  • (package) @putout/plugin-apply-shorthand-properties v2.0.0
  • (package) @putout/plugin-convert-for-each-to-for-of v3.0.0
  • (package) @putout/plugin-remove-console v3.0.0
  • (package) @putout/plugin-putout v3.0.0
  • (package) @putout/plugin-convert-to-arrow-function v2.0.0
  • (package) @putout/plugin-convert-object-assign-to-merge-spread v3.0.0
  • (package) @putout/plugin-remove-useless-variables v3.0.0
  • (package) @putout/plugin-madrun v4.0.0
  • (@putout/plugin-remove-useless-arguments) drop support of putout <7
  • (@putout/plugin-remove-empty) drop support of putout <7
  • (@putout/plugin-remove-console) drop support of putout <7
  • (@putout/plugin-putout) drop support of putout <7
  • (@putout/plugin-convert-to-arrow-function) drop support of putout <7
  • (@putout/plugin-convert-object-assign-to-merge-spread) drop support of putout <7
  • (@putout/plugin-remove-useless-variables) drop support of putout < 7
  • (@putout/plugin-madrun) drop support of putout < 7
  • (@putout/plugin-remove-empty-pattern) drop support of putout < 7
  • (@putout/plugin-convert-for-each-to-for-of) drop support of putout < 7
  • (@putout/plugin-convert-apply-to-spread) drop support of putout <7
  • (@putout/apply-shorthand-properties) drop support of putout < 7
  • (package) @putout/engine-runner v3.0.0
  • (package) @putout/operate v2.0.0
  • (@putout/engine-runner) add support of __object, __array
  • (package) @putout/operate v2.0.0
  • (package) @putout/compare v3.0.0
  • (package) @putout/compare v3.0.0
  • (@putout/compare) add support of __object, __array, __args
  • (@putout/apply-array-destructuring) exclude nested

2019.11.03, v6.22.0

feature:

  • (package) @putout/plugin-remove-process-exit v3.0.0
  • (@putout/plugin-remove-process-exit) convert to replace

2019.11.03, v6.21.0

fix:

  • (@putout/engine-runner) exclude as string

feature:

  • (package) @putout/plugin-convert-math-pow v4.0.0
  • (@putout/plugin-convert-math-pow) convert to replace
  • (package) @babel/types v7.6.3

2019.11.01, v6.20.0

fix:

  • (@putout/engine-runner) replace plugins

feature:

  • (package) @putout/plugin-apply-destructuring v3.0.0
  • (@putout/plugin-apply-destructuring) convert to replace
  • (package) @putout/plugin-merge-destructuring-properties v2.0.0

2019.11.01, v6.19.0

fix:

  • (@putout/plugin-remove-debugger) quotes

feature:

  • (package) @putout/plugin-remove-skip v3.0.0
  • (package) @putout/plugin-remove-only v4.0.0
  • (package) @putout/engine-runner v2.0.0
  • (package) @putout/compare v2.0.0
  • (package) @putout/compare v2.0.0
  • (@putout/engine-runner) change template variables type
  • (@putout/compare) change template variables type
  • (@putout/plugin-remove-only) convert to replace plugin type
  • (@putout/plugin-remove-skip) convert to replace plugin type

2019.11.01, v6.18.0

fix:

  • (@putout/engine-runner) rm BlockStatement

feature:

  • (package) @putout/plugin-remove-only v3.0.0
  • (@putout/plugin-remove-only) convert to replace
  • (@putout/engine-parser) add ability to get expression
  • (@putout/engine-runner) replace: add ability to use a couple vars
  • (@putout/engine-parser) add template.ast.fresh, which do not use memoization

2019.10.31, v6.17.0

feature:

  • (package) @putout/plugin-remove-debugger v4.0.0
  • (@putout/engine-runner) replace: add support of variables
  • (@putout/engine-runner) replace: add ability to remove
  • (@putout/plugin-apply-shorthand-properties) exclude CAMEL_CASE constants
  • (@putout/engine-runner) add replace plugins
  • (@putout/plugin-madrun) add: remove putout

2019.10.27, v6.16.1

feature:

  • (package) yargs-parser v16.0.0

2019.10.25, v6.16.0

fix:

  • (@putout/engine-loader) rules options
  • (npmignore) .spec.js

feature:

  • (package) @putout/plugin-madrun v3.0.0
  • (@putout/plugin-madrun) add-madrun: .madrun.js
  • (package) madrun v4.0.0
  • (@putout/eslint-config) add support of object-curly-spacing
  • (@putout/plugin-convert-to-arrow-function) exclude prototype
  • (@putout/engine-loader) speed up loading according to rules

2019.10.12, v6.15.1

fix:

  • (putout) eslint
  • (@putout/plugin-strict-mode) add once
  • (babel-plugin-putout) strict-mode

2019.10.12, v6.15.0

fix:

  • (@putout/plugin-strict-mode) add

feature:

  • (package) @putout/plugin-merge-destructuring-properties v2.0.0
  • (@putout/plugin-merge-destructuring-properties) generate -> compare
  • (@putout/compare) add ability to ignore raw values
  • (@putout/plugin-apply-top-level-await) add
  • (@putout/plugin-madrun) add run

2019.10.12, v6.14.1

feature:

  • (package) @putout/plugin-apply-top-level-await v1.0.1

2019.10.12, v6.14.0

fix:

  • (@putout/plugin-remove-double-negations) rm eslint

feature:

  • (@putout/apply-top-level-await) add
  • (package) putout v6.13.0

2019.10.11, v6.13.0

fix:

  • (@putout/plugin-remove-useless-escape) no raw
  • (@putout/test) noTransform: second arg

feature:

  • (@putout/convert-to-arrow-function) add
  • (@putout/test) transform: simplify
  • (@putout/engine-parser) @putout/recast -> recast

2019.10.07, v6.12.1

feature:

  • (package) yargs-parser v15.0.0

2019.10.04, v6.12.0

fix:

  • (@putout/plugin-remove-empty) report

feature:

  • (putout) add ability to resolve eslint plugins (#9)
  • (@putout/plugin-remove-unused-variables) add support of DoWhileStatement
  • (@putout/plugin-remove-empty) remove-empty-block: add support of empty alternate of IfConditionStatement
  • (@putout/operate) toExpression: add support of ObjectProperty
  • (@putout/formatt-codeframe) add ability to show rule
  • (@putout/operate) add toExpression
  • (@putout/plugin-extract-sequance) add support of multiple layers (#11)

2019.10.02, v6.11.0

feature:

  • (@putout/plugin-remove-useless-escape) add

2019.10.02, v6.10.2

feature:

  • (@putout/plugin-extract-sequence-expressions) add support of ReturnStatement (#11)

2019.10.02, v6.10.1

fix:

  • (@putout/remove-useless-arguments) rm unused

feature:

  • (package) @putout/plugin-convert-apply-to-spread v2.0.0
  • (@putout/plugin-convert-apply-to-spread) add support of null
  • (@putout/operate) add findBinding

2019.10.01, v6.10.0

feature:

  • (@putout/plugin-remove-useless-arguments) add

2019.10.01, v6.9.1

fix:

  • (@putout/engine-runner) rm redundant compare
  • (@putout/compare) false properties

feature:

  • (operate) add support of compareAll, compareAny

2019.09.30, v6.9.0

feature:

  • (package) @putout/plugin-extract-object-properties v2.0.0
  • (@putout/plugins-simplify-ternary) generate -> compare
  • (package) @putout/engine-parser v1.2.0
  • (@putout/compare) add
  • (@putout/engine-runner) add micro-memoize
  • (@putout/engine-runner) add mem

2019.09.28, v6.8.0

fix:

  • (@putout/engine-parser) recast -> @putout/recast
  • (@putout/engine-parser) recast source
  • (@putout/engine-parser) acorn
  • (@putout/plugin-convert-spread-to-array) report

feature:

  • (@putout/plugin-promises) add
  • (@putout/engine-parser) acorn v7.1.0
  • (@putout/engine-parser) add recast from npm

2019.09.28, v6.7.1

feature:

  • (@putout/plugin-remove-useless-spread) for-of
  • (@putout/apply-shorthand-properties) add support of names overlap

2019.09.28, v6.7.0

feature:

  • (@putout/plugin-remove-useless-array-from) add
  • (@putout/engine-loader) add ability to pass options without enabled flag

2019.09.28, v6.6.1

feature:

  • (package) @putout/engine-runner v1.4.0
  • (@putout/engine-runner) add cache to generate

2019.09.28, v6.6.0

fix:

  • chore(@putout/plugin-react-hooks) add prefix _

feature:

  • (@putout/plugin-remove-useless-spread) mv out from default install
  • (@putout/plugin-convert-spread-to-array-from) add
  • (@putout/plugin-apply-shorthand-properties) add support names overlap handling
  • (@putout/plugin-remove-useless-spread) exclude: call, return
  • (package) putout v6.5.1

2019.09.26, v6.5.1

fix:

  • (@putout/engine-runner) npmignore: add *.spec.js

feature:

  • (@putout/plugin-apply-shorthand-properties) add options
  • (package) @putout/plugin-remove-empty v3.0.0
  • (@putout/plugin-remove-empty) import: add ability to pass options
  • (@putout/engine-runner) add ability to pass options to filter
  • (@putout/test) add transformWithOptions, noTransformWithOptions
  • (@putout/plugin-apply-shorthand-properties) exclude ImportSpecifier

2019.09.26, v6.5.0

fix:

  • (@putout/engine-loader) dependencies
  • (@putout/engine-parser) dependencies
  • (@putout/plugin-apply-shorthand-properties) avoid destructuring

feature:

  • (@putout/remove-useless-spread) add

2019.09.26, v6.4.0

feature:

  • (@putout/test) add noReport
  • (@putout/plugin-apply-shorthand-properties) add

2019.09.26, v6.3.1

fix:

  • (putout) -um: expand glob
  • (@putout/plugin-add-return-await) references -> bindings
  • (@putout/plugin-add-return-await) filter: path -> boolean

feature:

  • (@putout/engine-runner) add debug

2019.09.25, v6.3.0

fix:

  • (package) dependencies

feature:

  • (putout) add @putout/add-return-await
  • (@putout/engine-runner) template: add support of awaitOutsideFunction
  • (package) putout v6.2.0
  • (@putout/plugin-madrun) add-madrun-to-lint: exclude "putout -um"

2019.09.25, v6.2.0

feature:

  • (putout) add ability to work with modified, untracked git files
  • (codemods) add convert-fs-to-promises
  • (@putout/engine-runner) logs
  • (package) eslint-plugin-putout v2.0.0
  • (package) eslint-plugin-node v10.0.0
  • (package) eslint v6.4.0
  • (package) nyc v14.1.1
  • (package) madrun v3.0.5
  • (package) eslint-plugin-node v10.0.0
  • (package) eslint v6.4.0

2019.09.18, v6.1.0

feature:

  • (@putout/engine-runner) add

2019.09.16, v6.0.0

feature:

  • (putout) add @putout/engine-parser, @putout/engine-loader

2019.09.12, v5.28.2

fix:

  • (putout) find: merge template visitors

2019.09.12, v5.28.1

fix:

  • (putout) traverse: merge visitors: shebang

2019.09.12, v5.28.0

feature:

  • (package) @putout/plugin-convert-esm-to-commonjs v2.0.0
  • (@putout/plugin-convert-esm-to-commonjs) include
  • (@putout/plugin-convert-top-level-return) include
  • (@putout/eslint-config) keyword-spacing: no space after catch

2019.09.12, v5.27.0

feature:

  • (package) @putout/plugin-remove-process-exit v2.0.0
  • (@putout/plugin-remove-process-exit) template

2019.09.11, v5.26.0

feature:

  • (package) @putout/plugin-convert-for-each-to-for-of v2.0.0
  • (@putout/plugin-convert-for-each-to-for-of) include

2019.09.11, v5.25.0

feature:

  • (package) @putout/plugin-convert-math-pow v3.0.0
  • (@putout/plugin-convert-math-pow) include

2019.09.11, v5.24.0

feature:

  • (putout) plugin: include: add filter support

2019.09.11, v5.23.0

feature:

  • (package) @putout/plugin-remove-skip v2.0.0
  • (@putout/plugin-remove-skip) include

2019.09.11, v5.22.1

fix:

  • (putout) plugin: include, exclude: array -> function

2019.09.10, v5.22.0

feature:

  • (package) @putout/plugin-remove-only v2.0.0
  • (@putout/plugin-remove-only) include

2019.09.10, v5.21.0

feature:

  • (package) @putout/plugin-remove-debugger v3.0.0
  • (putout) plugins: add support of include

2019.09.10, v5.20.0

feature:

  • (putout) template: "__": string literals only
  • (package) eslint-plugin-putout v2.0.0
  • (package) madrun v3.0.2
  • (package) putout v5.19.0

2019.09.10, v5.19.0

feature:

  • (package) @putout/plugin-merge-if-statements v2.0.0
  • (@putout/plugin-merge-if-statement) template

2019.09.10, v5.18.2

feature:

  • (putout) rules: exclude: add ability to pass string or array

2019.09.10, v5.18.1

fix:

  • (putout) exclude only templates

2019.09.10, v5.18.0

feature:

  • (putout) add ability to exclude a couple templates

2019.09.10, v5.17.0

feature:

  • (putout) add support of exclude template plugin option
  • (putout) add support of exclude

2019.09.10, v5.16.0

feature:

  • (putout) find: add support of template
  • (package) fullstore v2.0.2

2019.09.09, v5.15.1

feature:

  • (package) @putout/plugin-remove-useless-variables v2.0.0
  • (@putout/plugin-remove-useless-variables) template
  • (@putout/test) add ability to pass rules
  • (madrun) convert-lint-lib: template

2019.09.08, v5.15.0

fix:

  • (@putout/plugin-putout) convert-find-to-traverse: template

feature:

  • (package) @putout/plugin-remove-console v2.0.0: templates
  • (putout) template: add support of literal "__"

2019.09.08, v5.14.1

fix:

  • (putout) slim: @babel/parser for templates

2019.09.08, v5.14.0

fix:

  • (putout) template: multiple, cache: speed up 500ms -> 0.008ms

feature:

  • (package) @putout/plugin-convert-commonjs-to-esm v2.0.0
  • (@putout/plugin-convert-commonjs-to-esm) template

2019.09.08, v5.13.3

fix:

  • (putout) template: null

feature:

  • (package) @putout/plugin-convert-top-level-return v2.0.0
  • (@putout/plugin-convert-top-level-return) template

2019.09.08, v5.13.2

feature:

  • (package) @putout/plugin-convert-object-assign-to-merge-spread v2.0.0
  • (@putot/plugin-convert-object-assign-to-merge-spread) template

2019.09.08, v5.13.1

feature:

  • (package) @putout/plugin-remove-debugger v2.0.0
  • (@putout/plugin-remove-debugger) template

2019.09.08, v5.13.0

feature:

  • (package) @putout/plugin-convert-math-pow v2.0.0
  • (@putout/plugin-convert-math-pow) traverse: template

2019.09.07, v5.12.1

feature:

  • (package) @putout/plugin-putout v2.0.0
  • (package) @putout/plugin-madrun v2.0.0

2019.09.07, v5.12.0

fix:

  • feature(@putout/plugin-madrun) add add--lint

feature:

  • (putout) traverse: add template
  • (package) putout v5.11.2
  • (@putout/operate) add isModuleExports
  • (@putout/plugin-madrun) add add-fix-lint

2019.09.07, v5.11.2

feature:

  • (package) yargs-parser v14.0.0
  • (putout) eslint-plugin-node v10.0.0
  • (madrun) add-function: add support of CallExpression

2019.09.02, v5.11.1

fix:

  • (npmignore) slim

2019.09.02, v5.11.0

feature:

  • (putout) add ability to provide a build no parsers

2019.08.30, v5.10.4

fix:

  • (putout) keep dist only

2019.08.30, v5.10.3

fix:

  • (putout) acorn plugins (#acornjs/acorn/issues/862)

feature:

  • (@putout/plugin-convert-object-assign-to-merge-spread) add support of not empty objects as first argument

2019.08.30, v5.10.2

fix:

  • (webpack) slim: acorn, espree

2019.08.29, v5.10.1

fix:

  • (putout) slim: esprima

2019.08.29, v5.10.0

feature:

  • (putout) add slim builds
  • (package) madrun v3.0.0
  • (@putout/plugin-madrun) add support of lib only lint

2019.08.26, v5.9.0

feature:

  • (eslint) add support of custom parsers
  • (@putout/plugin-remove-unused-variables) add support of Function declared and used as an array item
  • (@putout/plugin-remove-useless-variables) exclude React from useless variables list

2019.08.23, v5.8.0

fix:

  • (@putout/formatter-progress) max: 99% -> 100%
  • (eslint) add support of eslint parsing error

feature:

  • (putout) improve eslint errors handling

2019.08.20, v5.7.1

fix:

  • feature(run-plugins) complexity on multiple rounds: quadratic -> linear

feature:

  • (packages) eslint v6.2.0
  • (package) eslint v6.2.0
  • (@putout/plugin-remove-unused-private-fields) add support of anonymous class expression
  • (@putout/plugin-remove-unused-private-fields) add support of ClassExpression
  • (run-plugins) complexity on multiple fix rounds: quadratic -> linear
  • (package) eslint-plugin-putout v9.1.0
  • (package) eslint-plugin-putout v2.0.0
  • (package) @putout/eslint-config v2.0.0
  • (@putout/eslint-config) add support of ES2020

2019.08.16, v5.7.0

feature:

  • (putout) run-plugins: move cache one level up
  • (putout) process-file: add ability to cut brackets from parser errors

2019.08.16, v5.6.0

fix:

  • test(putout) run-

feature:

  • (putout) show parser errors as rules errors

2019.08.15, v5.5.0

feature:

  • (putout) show codeframe on --raw

2019.08.15, v5.4.0

feature:

  • (putout) improve error message, add codeframe when --raw flag used

2019.08.15, v5.3.6

fix:

  • (putout) process-file: log, ruler

2019.08.14, v5.3.5

feature:

  • (putout) mv out process-file

2019.08.14, v5.3.4

feature:

  • (putout) extend acorn options

2019.08.14, v5.3.3

fix:

  • (putout) exclude wrap-plugin for browser build

feature:

  • (@putout/plugin-strict-mode) add support of flow

2019.08.14, v5.3.2

fix:

  • (package) dependencies -> devDependencies: babel-plugin-transform-inline-consecutive-adds

feature:

  • (package) eslint v6.1.0
  • (package) acorn v7.0.0

2019.08.13, v5.3.1

fix:

  • feature(putout) wrap plugin: speed up: no need to transform in , traverse already transformed

feature:

  • (putout) wrap plugin: speed up: no need to transform in fix, traverse already transformed
  • (eslint-plugin-putout) add for-of-multiple-properties-destructuring
  • (@putout/plugin-remove-useless-variables) add support of for-of
  • (package) putout v5.3.0

2019.08.12, v5.3.0

feature:

  • (putout) ruler: add ability to set on/off, when disable/enable
  • (putout) recast v0.18.2

2019.08.09, v5.2.1

fix:

  • (putout) state validation

2019.08.09, v5.2.0

feature:

  • (putout) add ability to enable/disable rules using on/off
  • (putout) parse-plugin-names: add ability to pass an array

2019.08.09, v5.1.0

feature:

  • (putout) add ability to pass plugin options via rules

2019.08.09, v5.0.1

fix:

  • (putout) get-relative-path -> path.relative: determine relative path for ignore and match on windows (#7)

2019.08.08, v5.0.0

feature:

  • (putout) move babel, codeshift into plugins section

2019.08.07, v4.72.1

fix:

  • (putout) improve jscodeshift support

2019.08.07, v4.72.0

feature:

  • (putout) jscodeshift: add support of options

2019.08.07, v4.71.0

feature:

  • (putout) add support of jscodeshift codemods

2019.08.07, v4.70.0

fix:

  • (@putout/plugin-madrun) add-madrun-to-lint: str check
  • (@putotu/plugin-remove-useless-variables) npmignore: fixture
  • (eslint-plugin-putout) single-property-destructuring: rename

feature:

  • (putout) eslint: add support of namespaced plugins
  • (@putout/plugin-remove-useless-variables) add support of await Promise.resolve

2019.08.06, v4.69.1

fix:

  • (putout) add esprima into bundle

2019.08.06, v4.69.0

fix:

  • (@putout/plugin-madrun) add madrun to lint: exist
  • (@putout/plugin-madrun types

feature:

  • (putout) add support of esprima
  • (@putout/plugin-madrun) add-madrun-to-lint: add support of StringLiteral

2019.08.05, v4.68.2

feature:

  • (putout) get-plugins: speed up
  • (@putout/plugin-madrun) rename-eslint-to-putout: exclude calls with rulesdir
  • (@putout/plugin-madrun) add rename-eslint-to-putout
  • (package) eslint-plugin-node v9.1.0
  • (@putout/plugin-madrun) add-madrun-to-lint: add support of TemplateLiteral with expression

2019.08.05, v4.68.1

fix:

  • (putout) pluginCache -> cache

2019.08.05, v4.68.0

feature:

  • (putout) add ability to disable plugins cache

2019.08.05, v4.67.0

feature:

  • (putout) embed acorn, espree

2019.08.02, v4.66.0

fix:

  • feature(@putout/eslint-config) disable require-atomic-updates: false positives most part of time, non fixeble

feature:

  • (putout) add ability to always read config from home directory if it exists
  • (codemods) add cut-legacy
  • (@putout/plugin-remove-useless-variables) add: remove
  • (@putout/eslint-config) disable require-atomic-updates: false positives most part of time, non fixeble

2019.08.02, v4.65.2

fix:

  • (putout) exit

2019.08.01, v4.65.1

fix:

  • (putout) run-babel-plugins: ":" -> "/"

feature:

  • (putout) babel: speed up: disable code generation

2019.07.31, v4.65.0

feature:

  • (putout) load-plugins: speed up: add cache
  • (putout) getFormatter -> once(getFormatter): speed up
  • (package) eslint-plugin-node v9.1.0
  • (package) eslint v6.1.0

2019.07.30, v4.64.0

feature:

  • (putout) add support of eslint

2019.07.27, v4.63.2

fix:

  • (@putout/plugin-putout) convert-replace-with: add support of replaceWithMultiple
  • (@putout/plugin-convert-top-level-return) replaceWith
  • (putout) get back strict mode processing
  • (putout) get back shebang check

2019.07.26, v4.63.1

fix:

  • (@putout/plugin-convert-top-level-return) add support of ReturnStatement argument

feature:

  • (putout) run-babel-plugins: avoid print when no babel plugins

2019.07.26, v4.63.0

feature:

  • (putout) estree parsers: add support of interpreter directive

2019.07.26, v4.62.0

feature:

  • (@putout/plugin-conert-top-level-return) add

2019.07.26, v4.61.0

fix:

  • (putout) babel plugins: position
  • (eslintrc) overrides does not supported by eslint
  • (@putout/plugin-extract-sequence-epxressions) add support of WhileStatement
  • (@putout/eslint-config) rm overrides: does not supported by eslint
  • (@putout/eslint-config) no-unneeded-ternary: default-assignment: defaultAssignment

feature:

  • (putout) rm shebang check
  • (putout) improve directives support
  • (@putout/eslint-config) overrids "bin": disable rules: no-console, no-process-exit
  • (@putout/eslint-config) no-unneeded-ternary: default-assignment: false

2019.07.24, v4.60.0

fix:

  • (eslint-config) prefer-const: destructuring-all

feature:

  • (@putout/plugin-simplify-ternary) add
  • (@putotu/plugin-extract-sequence-expressions) add support of for
  • (package) eslint-plugin-putout v1.9.1
  • (package) eslint-plugin-node v9.1.0
  • (package) eslint v6.1.0

2019.07.23, v4.59.2

fix:

  • (putout) parse-options: no name

feature:

  • (@putout/plugin-madrun) add add-madrun-to-lint
  • (@putout/plugin-madrun) add convert lint:lib

2019.07.23, v4.59.1

fix:

  • (putout) parse-options: get options from: cwd -> dirname
  • (@putout/plugin-putout) mv out replaceWith from traverse

2019.07.23, v4.59.0

feature:

  • (putout) add ability to use await outside function

2019.07.22, v4.58.1

fix:

  • (putout) parseMatch
  • (@putout/plugin-convert-for-each-to-for-of) same name

2019.07.22, v4.58.0

feature:

  • (putout) simplify parseOptions

2019.07.22, v4.57.0

fix:

  • (eslint-plugin-putout) putout: options

feature:

  • (eslint-plugin-putout) simplify putout.getOptions
  • (putout) add --rulesdir
  • (eslint-plugin-putout) eslint

2019.07.21, v4.56.0

feature:

  • (putout) getOptions
  • (package) eslint v6.1.0
  • (@putout/plugin-madrun) add convert-run-argument
  • (eslint-plugin-putout) add ability to use putout as eslint plugin

2019.07.21, v4.55.0

fix:

  • (babel-plugin-putout) unused variable

feature:

  • (eslint-plugin-putout) add ability to use putout as eslint plugin
  • (@putout/eslint-config) add quote-props
  • (eslint-config) add no-unneeded-ternary

2019.07.18, v4.54.0

fix:

  • (@putout/plugin-strict-mode) add: literal -> directive
  • (putout) client build: disable babelPlugins for client side

feature:

  • (putout) add merge
  • (babel-plugin-putout) add
  • (package) eslint-plugin-node v9.1.0
  • (putout) add transform

2019.07.18, v4.53.0

fix:

  • (@putout/plugin-extract-sequence-expressions) add support of CallExpressions callee
  • (eslint-plugin-putout) rm unused @babel/types

feature:

  • (putout) add support of babel plugins (babel/babel#10231)
  • (eslint-plugin-putout) new-line-function-call-arguments: relay less on function-paren-newline

2019.07.10, v4.52.3

fix:

  • (putout) default options: madrun/* -> madrun
  • (@putout/plugin-extract-sequence-expressions) rm unused

2019.07.09, v4.52.2

feature:

  • (package) deepmerge v4.0.0
  • (@putout/plugin-remove-empty) remove-empty-block: add support of CallExpression in IfStatement test
  • (@putout/plugin-extract-sequence-expressions) add support of ArrowFunctionExpressions with SequenceExpression body

2019.07.08, v4.52.1

fix:

  • (putout) --disable

2019.07.08, v4.52.0

fix:

  • (@putout/plugin-split-variable-declarations) exclude ExportNamedDeclaration

feature:

  • (@putout/plugin-remove-unreachable-code) add

2019.07.05, v4.51.0

fix:

  • (putout) parentPath removed
  • (@putout/plugin-convert-for-each-to-for-of) add support of IfCondition

feature:

  • (@putout/plugin-remove-unused-variables) add support of FunctionExpression in ConditionalExpression
  • (@putout/plugin-remove-unused-variables) add support of ForInStatement

2019.07.05, v4.50.0

feature:

  • (putout) custom-parser: babel: disable estree when flow used

2019.07.05, v4.49.0

feature:

  • (putout) improve solidity, decrease fixes count: run fixes while traversing merged visitors, when in --fix mode'

2019.07.05, v4.48.2

fix:

  • (@putout/plugin-extract-object-properties) scope.uid check
  • (@putout/plugin-extract-object-properties) getAllBindings -> expandPath.bindings
  • (@putout/plugin-extract-object-properties) check all bindings, not only current

feature:

  • (putout) show all rules, when --enable, --disable has no args

2019.07.04, v4.48.1

fix:

  • (putout) dist: disable minification

2019.07.04, v4.48.0

feature:

  • (@putout/plugin-remove-double-negations) add
  • (@putout/plugin-remove-empty) remove-empty-block: add support of negation
  • (@putout/plugin-merge-if-statements) add support of inner else
  • (@putout/plugin-merge-if-statements) add support of an empty block

2019.07.04, v4.47.0

fix:

  • (putout) match .ts -> .ts$

feature:

  • (@putout/plugin-merge-if-statements) add
  • (package) eslint-plugin-node v9.1.0
  • (package) eslint v6.0.1

2019.07.03, v4.46.2

fix:

  • (@putout/plugin-remove-empty) remove-empty-block: else if
  • (putout) enable/disable: parse
  • (@putout/plugin-extract-object-properties) rm unused
  • (@putout/plugin-putout) convert-find-to-traverse: traverse not last expression in function

feature:

  • (@putout/plugin-extract-object-properties) add support of different deep

2019.07.03, v4.46.1

fix:

  • (putout) match: "bin" -> "bin/"

feature:

  • (@putout/plugin-convert-binary-expression-to-boolean) exclude bitwise operator
  • (@putout/plugin-remove-unused-variables) add support of InterfaceDeclaration/TSInterfaceDeclaration in flow/typescript

2019.07.03, v4.46.0

feature:

  • (putout) add ability to determine jsx
  • (@putout/plugin-remove-unused-variables) add support of ClassDeclaration in ExportNamedDeclaration
  • (@putout/plugin-remove-unused-variables) add support of TSExpressionWithTypeArguments
  • (@putout/plugin-remove-unused-variables) add support of QualifiedTypeIdentifier

2019.07.02, v4.45.0

feature:

  • (putout) add ability to optionally disable jsx/enable flow

2019.07.02, v4.44.0

fix:

  • (convert-esm-to-commonjs): add empty imports
  • (@putout/operate) when replaceWithMultiple used do not use replaceWith
  • (@putout/plugin-convert-for-each-to-for-of) replaceWithMultiple: condition

feature:

  • (putout) disable "strict-mode/add" for typescript
  • (package) eslint-plugin-node v9.1.0
  • (package) eslint v6.0.1

2019.07.01, v4.43.0

feature:

  • (putout) add ability to enable, disable, enable-all and disable-all rules from cli

2019.07.01, v4.42.0

fix:

  • (@putout/plugin-convert-apply-to-spread) rm quotes

feature:

  • (putout) add ability to handle overlapped plugins: missing node
  • (@putout/plugin-remove-unused-variables) add support of named FunctionExpression in ReturnStatement
  • (package) eslint-plugin-node v9.1.0
  • (package) eslint v6.0.1

2019.07.01, v4.41.0

feature:

  • (@putout/convert-for-each-to-for-of) add support of empty return
  • (@putout/operate) add
  • (@putout/plugin-convert-for-each-to-for-of) add support of indexes

2019.07.01, v4.40.0

feature:

  • (putout) operate: add ability to return result from operate.replaceWith
  • (@putout/plugin-convert-for-each-to-for-of) add support of ReturnStatement

2019.06.29, v4.39.0

fix:

  • (@putout/plugin-convert-for-each-to-for-of) ts: for-of does not support typeAnnotation
  • feature(@putout/test) add support of .ts files as fixtures

feature:

  • (putout) enable typescript only for .ts files
  • (package) eslint v6.0.1
  • (@putout/plugin-remove-empty) add support of empty consequent block, and not empty alternate block if IfStatement
  • (@putout/plugin-remove-unused-variables) add support of TSInterfaceDeclaration, TSMethodSignature
  • (package) eslint-plugin-node v9.1.0
  • (package) eslint v6.0.1
  • (package) eslint-plugin-node v9.1.0
  • (package) eslint v6.0.1
  • (@putout/test) add support of .ts files as fixtures
  • (@putout/plugin-convert-for-each-to-for-of) exclude var variables with bound names
  • (@putout/plugin-convert-for-each-to-for-of) remove nested block
  • (@putout/plugin-convert-for-each-to-for-of) add support of context argument
  • (@putout/plugin-convert-for-each-to-for-of) exclude map chaining
  • (@putout/plugin-remove-unused-variables) add support of TSQualifiedName
  • (@putout/plugin-remove-unused-variables) add support of TSTypeReference

2019.06.28, v4.38.0

fix:

  • (@putout/plugin-putout) replace-with: exists

feature:

  • (@putout/plugin-putout) add ability to convert replaceWithMultiple

2019.06.27, v4.37.1

fix:

  • (@putout/plugin-split-variable-declarations) comments

feature:

  • (putout) operate: replaceWithMultiple: add support of current node comments

2019.06.27, v4.37.0

feature:

  • (@putout/plugin-remove-unused-variables) add support of GenericTypeAnnotation
  • (putout) add support of flow, typescript
  • (putout) add support of jsx

2019.06.27, v4.36.1

fix:

  • (putout) recast: repo -> tar

feature:

  • (@putout/plugin-remove-useless-variables) add support of not const assignments

2019.06.27, v4.36.0

feature:

  • (@putout/plugin-apply-destructuring) add support of logical expressions
  • (putout) add fork of recast, while merged benjamn/recast#609

2019.06.26, v4.35.0

fix:

  • (eslint-config) get back function-parent-newline
  • (eslint-config) rm function-paren-newline

feature:

  • (putout) operate: replaceWith: add ability to preserve loc
  • (@putout/plugin-apply-destructuring) add support of multiplevariables
  • (@putout/plugin-remove-unused-variables) add support of AssignmentPattern in function arguments
  • (@putout/plugin-remove-useless-variables) add support of ExportNamedDeclaration
  • (@putout/plugin-remove-unused-variables) add support of FunctionExpression in NewExpression
  • (eslint-plugin-putout) add new-line-function-call-arguments

2019.06.25, v4.34.0

feature:

  • (@putout/plugin-convert-for-each-to-for-of) add

2019.06.25, v4.33.0

fix:

  • (putout) operate: replaceWithMultiple: handle empty array case

feature:

  • (@putout/plugin-remove-nested-blocks) add

2019.06.25, v4.32.3

feature:

  • (putout) speed up visitors merge

2019.06.24, v4.32.2

fix:

  • feature(putout) increase fixCount to 2 in library version

feature:

  • (putout) increase fixCount to 2 in library version
  • (@putout/eslint-config) add nonblock-statement-body-position
  • (@putout/eslint-config) add no-else-return

2019.06.24, v4.32.1

fix:

  • (putout) remove empty imports (#5)
  • (@putout/plugin-split-variable-declaration) variables -> Variables
  • (@putout/plugin-remove-unused-variables) improve support of ClassExpression
  • (@putout/plugin-remove-useless-variables) exclude ObjectPattern argument
  • (@putout/plugin-extract-object-properties) report: object -> Object
  • (@putout/plugin-extract-object-properties) duplicate property name
  • (@putout/plugin-remove-empty) remove-empty-block: add same path twice

feature:

  • (@putout/plugin-remove-unused-variables) add support of YieldExpression, AwaitExpression
  • (package) eslint-plugin-node v9.1.0
  • (@putout/plugin-remove-unused-variables) add support of Function in VariableDeclarator, AssignmentExpression
  • (package) eslint-plugin-node v9.1.0
  • (@putout/plugin-remove-unused-variables) add support of Function as argument of CallExpression
  • (@putout/plugin-remove-unused-variables) get-vars: ArrowFunctionExpression, FunctionDeclaration -> Function
  • (package) eslint-plugin-node v9.1.0
  • (package) eslint-plugin-node v9.1.0
  • (@putout/plugin-remove-unused-variables) add support of ClassExpression
  • (@putout/plugin-remove-unused-variables) add support of nested arguments
  • (@putout/plugin-remove-empty) add support of .min in empty import
  • (package) eslint-plugin-node v9.1.0
  • (@putout/plugin-remove-unused-variables) add support of export anonymous class
  • (package) eslint-plugin-node v9.1.0
  • (@putout/plugin-convert-commonjs-to-esm) add support of relative paths

2019.06.19, v4.32.0

fix:

  • (@putout/plugin-apply-destructuring) npmignore: add fixture, *.spec.js

feature:

  • (putout) add support of numericSeparator

2019.06.19, v4.31.0

fix:

  • feature(@putout/eslint-config) add function-paren-newline, space-infix-ops
  • (pascal-to-camel) isBig

feature:

  • (putout) speed up: add ability to merge visitors
  • (@putout/eslint-config) add function-paren-newline, space-infix-ops
  • (package) eslint-plugin-node v9.1.0

2019.06.18, v4.30.0

fix:

  • (@putout/plugin-convert-commonjs-to-esm) npmignore
  • (@putout/plugin-convert-esm-to-commonjs) npmignore
  • (@putout/plugin-remove-process-exit) eslint-plugin-putout: dependency -> devDependency
  • (@putout/plugin-remove-console) eslint-plugin-putout: dependency -> devDependency
  • (@putout/plugin-convert-esm-to-commonjs) eslint-plugin-putout: dependency -> devDependency
  • (@putout/plugin-extract-object-properties) add support of no destructuring
  • (@putout/plugin-extract-object-properties) different function arguments

feature:

  • (putout) add bundle dist/putout.js
  • (@putout/plugin-remove-unused-expressions) add support of Literal

2019.06.14, v4.29.0

feature:

  • (@putout/plugin-extract-object-properties) add

2019.06.14, v4.28.2

fix:

  • (putout) formatter

2019.06.14, v4.28.1

feature:

  • (@putout/plugin-putout) add convert-babel-types

2019.06.14, v4.28.0

feature:

  • (@putout/plugin-extract-sequance-expressions) add ability to keep comments

2019.06.14, v4.27.1

feature:

  • (@putout/plugin-putout) covert-replace-with

2019.06.13, v4.27.0

fix:

  • (@putout/plugin-convert-commonjs-to-esm) preserve comments

feature:

  • (putout) operate: insertAfter

2019.06.12, v4.26.0

fix:

  • (@putout/plugin-extract-sequence-expressions) remove redundant binaryExpression

feature:

  • (putout) add operate

2019.06.12, v4.25.0

fix:

  • (@putout/plugin-convert-commonjs-to-esm) rm console.log

feature:

  • (@putout/plugin-extract-sequence-expressions) add
  • (@putout/plugin-convert-commonjs-to-esm) exclude sequence expressions
  • (@putout/plugin-convert-commonjs-to-esm) add support of named exports

2019.06.12, v4.24.1

fix:

  • (putout) merge config

feature:

  • (@putout/plugin-convert-commonjs-to-esm) exclude non-literal require arguments

2019.06.12, v4.24.0

feature:

  • (@putout/convert-commonjs-to-esm) add
  • (eslint-config) add no-extra-parens
  • (package) eslint 6.0.0-rc
  • (@putout/plugin-remove-unused-variables) add support of export default anonymous function

2019.06.07, v4.23.5

fix:

  • (@putout/plugin-remove-unused-variables) unused variable on the left of AssignmentPattern in ObjectProperty

feature:

  • (custom-parser) babel: add importMeta
  • (convert-pascal-to-camel) add
  • (@putout/plugin-remove-unused-variables) improve support of Property of ObjectPattern in FunctionDeclaration/ArrowFunctionExpression
  • (eslint-plugin-putout) multiple-properties-destructuring: add option minProperties (#3)

2019.05.18, v4.23.4

fix:

  • (putout) places check -> input/output check

2019.05.18, v4.23.3

feature:

  • (package) find-up v4.0.0

2019.05.18, v4.23.2

fix:

  • (putout) --: write all files -> write only fixed files

2019.05.14, v4.23.1

feature:

  • (package) recast v0.18.0
  • (package) espree v6

2019.04.24, v4.23.0

feature:

  • (parse-match) add ability to merge much rules
  • (package) nyc v14.0.0

2019.04.11, v4.22.0

feature:

  • (@putout/plugin-remove-boolean-from-logical-expressions) add

2019.04.11, v4.21.0

feature:

  • (@putout/plugin-convert-binary-expression-to-boolean) add

2019.04.08, v4.20.0

feature:

  • (putout) add ability to use return push in traverse
  • (@putout/plugin-remove-constant-conditions) add support of same identificators
  • (@putout/plugin-remove-unused-variables) add support of ObjectMethod params

2019.04.02, v4.19.0

fix:

  • (@putout/plugin-remove-empty-pattern) report

feature:

  • (@putout/plugin-putout) add
  • (@putout/eslint-config) padding-line-between-statements: add empty line before if condition
  • (@putout/plugin-remove-empty-pattern) add support of function argument
  • (@putout/plugin-remove-empty) add support of css

2019.03.28, v4.18.1

fix:

  • (putout) printOptions: disable objectCurlySpacing
  • (@putout/plugin-remove-unused-variables) remove ImportDeclaration -> remove specifier of ImportDeclaration

feature:

  • (@putout/plugin-remove-empty) add support of imports
  • (@putout/plugin-remove-unused-variables) add support of ImportDeclaration
  • (eslint-config) add keyword-spacing

2019.03.27, v4.18.0

feature:

  • (putout) add support of dynamicImport

2019.03.22, v4.17.0

feature:

  • (@putout/plugin-convert-object-assign-to-merge-spread) add
  • (traverse) move out RestElement, SpreadElement to get-vars

2019.03.22, v4.16.2

fix:

  • (@putout/formatter-dump) return
  • (@putout/plugin-remove-constant-conditions) exclude else

feature:

  • (package) array-union v2.0.0
  • (@putout/plugin-remove-unused-variables) add support of AssignmentPattern in Destructuring
  • (@putout/plugin-remove-constant-condition) add support of else if

2019.03.20, v4.16.1

fix:

  • (putout) add -f, --format

2019.03.20, v4.16.0

fix:

  • test(@putout/formatter-codeframe) fixture
  • test(@putout/plugin-remove-unused-variables) fixture
  • test(@putout/formatter-json) fixture

feature:

  • (@putout/plugin-remove-constant-condition) add

2019.03.19, v4.15.1

feature:

  • (eslint-config) add arrow-parens

2019.03.19, v4.15.0

fix:

  • (@putout/plugin-remove-unused-variables) ObjectMethod
  • (eslint-plugin-putout) multiple-properties-destructuring: exclude ForOfStatement
  • (@putout/formatter-dump) duplicate output

feature:

  • (@putout/formatter-codeframe) add
  • (@putout/formatter-eslint) add
  • (@putout/formatter-json) export jsonFormatter

2019.03.18, v4.14.0

feature:

  • (@putout/formatter-json) add

2019.03.15, v4.13.0

fix:

  • (@putout/formatter-progress) dependencies: add @putout/formatter-dump

feature:

  • (putout) add support of acorn

2019.03.14, v4.12.0

feature:

  • (putout) add formatter progress

2019.03.13, v4.11.2

fix:

  • (putout) absent dependency
  • (formatter) dump/stream: output check

2019.03.13, v4.11.1

fix:

  • (putout) report: places check
  • (@putout/test) format: name
  • (multiple-properties-destructuring) two properties on a same line

2019.03.13, v4.11.0

feature:

  • (putout) add support of custom formatters: dump, stream
  • (@putout/test) add support of noTransform
  • (eslint-config) add support of globalReturn

2019.03.12, v4.10.0

fix:

  • (@putout/plugin-remove-useless-variables) name
  • (@putout/plugin-remove-useless-variables) handle id, init not identifiers

feature:

  • (putout) pretify -> report
  • (putout) add report-find
  • (putout) add report-end
  • (@putout/remove-useless-variables) add support of uppercase
  • (@putout/remove-useless-variables) add support of destructuring
  • (@putout/plugin-convert-apply-to-spread) add support of this and nested MemberExpressions
  • (@putout/plugin-remove-useless-variables) exclude shorthand variables

2019.03.06, v4.9.0

fix:

  • (eslint-plugin-putout) long-properties-destructuring: add support of RestElement
  • (@putout/plugin-convert-arguments-to-rest) "rest" -> rest parameters
  • (@putout/plugin-remove-empty) block: missing return when tryStatement used

feature:

  • (@putout/plugin-remove-useless-variables) add
  • (@putout/plugin-remove-empty) block: add support of try catch
  • (@putout/plugin-remove-unused-variables) add support of ExpressionStatement

2019.03.06, v4.8.1

fix:

  • (putout) support of "."

2019.03.05, v4.8.0

feature:

  • (@putout/plugin-remove-unused-expressions) add
  • (@putotu/plugin-remove-unused-variables) add support of ObjectExpression in ExportDefaultDeclaration
  • (@putout/plugin-remove-unused-variables) add support of ClassDeclaration in ExportDefaultDeclaration
  • (@putotu/plugin-remove-unused-variables) condition isObjectExpression -> traverse ObjectExpression
  • (putout) isTemplateLiteral checks -> TemplateLiteral key
  • (putout) add support of TemplateLiteral in ConditionalExpression
  • (@putout/plugin-remove-unused-variables) add support of Identifier in JSXSpreadAttribute
  • (@putout/plugin-remove-unused-variables) add support of marking as used elements before RestElement when destructuring used as a function param
  • (@putout/plugin-remove-unused-variables) add support of specifiers in ExportNamedDeclaration
  • (@putout/plugin-remove-unused-variables) add support of TemplateLiteral in JSXExpressionContainer
  • (@putout/plugin-remove-unused-variables) add support of JSXSpreadAttribute

2019.02.28, v4.7.1

fix:

  • (putout) renamed: convert-arguments-to-spread -> convert-arguments-to-rest

2019.02.28, v4.7.0

fix:

  • (putout) get config from bottom directory -> get config from current directory
  • (npmignore) add *.md

feature:

  • (putout) ignore: add node_modules
  • (@putout/plugin-remove-unused-variables) add support of VariableDeclaration in ExportNamedDeclaration
  • (eslint-plugin-putout) add long-properties-destructuring
  • (@putout/plugin-convert-apply-to-spread) add support of context switch in apply

2019.02.28, v4.6.0

feature:

  • (@putout/plugin-convert-arguments-to-spread) add

2019.02.27, v4.5.0

fix:

  • (eslint-plugin-putout) JSX support

feature:

  • (@putout/plugin-convert-apply-to-spread) add
  • (eslintrc) add sourceType, ecmaFeatures

2019.02.26, v4.4.1

fix:

  • (putout) version
  • (@putout/plugin-react-hooks) convert-import-component-to-use-state: Component

2019.02.26, v4.4.0

feature:

  • (@putout/plugin-convert-math-pow) add
  • (@putout/plugin-react-hooks) remove-this: rm addition check
  • (@putout/plugin-remove-unused-variables) add support of identifiers in SwitchCase test

2019.02.22, v4.3.2

fix:

  • (putout) apply changes

2019.02.22, v4.3.1

fix:

  • (run-plugins) add early return when no need to apply changes
  • docs(changelog) rm

2019.02.22, v4.3.0

feature:

  • (putout) add support of --fix-count

2019.02.21, v4.2.2

fix:

  • (putout) move madrun on top of plugins

feature:

  • (@putout/plugin-madrun) rename-series-to-run

2019.02.21, v4.2.1

fix:

  • ((putout) read package.json if .putout.json not found: default match doesn't work without package.json dirname
  • (eslint-plugin-putout) multiple-properties-destructuring: more then 1 -> more then 2 properties
  • (@putout/eslint-config) rm object-property-newline

feature:

  • (plugin-madrun) call-series -> call-run
  • (eslint-plugin-putout) add support of multiple-properties-destructuring
  • (eslint-config) add object-property-newline

2019.02.20, v4.2.0

feature:

  • (putout) babel: enable allowReturnOutsideFunction
  • (@putout/plugin-madrun) convert-redrun-to-series -> call-series: add npm
  • (@putout/plugin-madrun) add support of redrun args
  • (eslint-config) add linebreak-style
  • (@putout/plugin-madrun) add convert-redrun-to-series

2019.02.19, v4.1.2

fix:

  • (putout) remove plugin remove-empty-pattern

feature:

  • (get-plugins) optimize: paths

2019.02.19, v4.1.1

fix:

  • (putout) putout .
  • (eslint-plugin-putout) one-line-destructuring: exclude default assignment of property

feature:

  • (@putout/plugin-remove-console) add support of console.time, console.timeEnd

2019.02.18, v4.1.0

fix:

  • (@putout/plugin-strict-mode) npmignore: .spec.js
  • (@putout/plugin-strict-mode) npmignore: fixture
  • (putout) when find error - exit 1
  • (putout) remove align-spaces

feature:

  • (@putout/plugin-strict-mode) add
  • (eslint-config) add lines-around-directives

2019.02.17, v4.0.3

fix:

  • (npmignore) yarn-error.log
  • (putout) merge match: user match first

feature:

  • (eslint-plugin-putout) add align-spaces
  • (eslint-plugin-putout) add destructuring-as-function-argument

2019.02.17, v4.0.2

fix:

  • (putout) remove-only, remove-skip: enabled only for test, .spec.js

2019.02.16, v4.0.1

fix:

  • (package) dependencies: @putout/plugin-madrun

2019.02.16, v4.0.0

fix:

  • (@putout/plugin-remove-unused-variables) Identifiers in IfStatement

feature:

  • (@putout/plugin-apply-destructuring) add support of array destructuring
  • (@putout/plugin-remove-empty) join with @putout/plugin-remove-empty-pattern
  • (putout) set defaults for bin
  • (putout) remove support of putout section of package.json
  • (putout) rm --config
  • (eslint-config) prefer-destructuring: AssignmentExpression: disable object
  • (eslint-config) prefer-destructuring
  • (putout) madrun v2.0.0

2019.02.15, v3.24.0

feature:

  • (package) madrun v2.0.0
  • (putout) add @putout/plugin-madrun

2019.02.15, v3.23.0

fix:

  • (@putout/plugin-madrun) add .spec.js to ignore
  • (@putout/test) report/reportCode: disable

feature:

  • (@putout/plugin-madrun) add
  • (putout) move out prettify from bin

2019.02.14, v3.22.0

fix:

  • (@putout/plugin-react-hooks) convert-state-to-hooks: @babel/template -> putout
  • (npmignore) add fixture
  • (putout) merge plugins: core, userland -> userland, core

feature:

  • (@putout/plugin-remove-unused-private-fields) add
  • (react-hooks) findClass -> traverseClass
  • (@putout/plugin-react-hooks) add
  • (plugin-remove-unused-variables) add support of Identifier in ExportDefault declaration

2019.02.12, v3.21.0

feature:

  • (putout) add ability to call push, instead of return places

2019.02.11, v3.20.1

fix:

  • (putout) get-plugin: node_modules search
  • (@putout/test) rm rules

feature:

  • (@putout/test) add support of rules property of plugin

2019.02.11, v3.20.0

feature:

  • (get-plugins) add support of rules
  • (plugin-remove-only) redrun -> madrun

2019.02.08, v3.19.0

feature:

  • (putout) add support of custom parser
  • (eslint-config) add no-multi-spaces

2019.02.07, v3.18.0

feature:

  • (putout) add support of parser
  • (plugin-remove-unused-variables) split AssignmentExpression and assignmentPattrn
  • (eslint-plugin-putout) one-line-destructuring: condition -> selector

2019.02.04, v3.17.3

feature:

  • (get-vars) scopeBlocks -> scope.uid
  • (package) yargs-parser v13.0.0
  • (plugin-remove-empty) @putout/eslint-config -> eslint-plugin-putout
  • (plugin-remove-empty) redrun -> madrun
  • (plugin-remove-empty-pattern) redrun -> madrun

2019.02.01, v3.17.2

fix:

  • (eslint-plugin-putout) recommended
  • (eslint-plugin-putout) one-line-destructuring: false positive
  • chore() rm "\n"
  • (apply-destructuring) ObjectPattern as id, Literal as property

feature:

  • (package) yargs-parser v12.0.0
  • (eslint-config) no-trailing-space
  • (eslint-config) add comma-dangle
  • (putout) add eslint-plugin-node
  • (eslint-plugin-putout) add
  • (eslintrc) add no-var, prefer-const
  • (plugin-apply-destructuring) add support of VariableDeclaration kinds different then const (var, let)
  • (plugin-merge-destructuring) do not merge variables with different kinds

2019.01.28, v3.17.1

fix:

  • (putout) template -> generate

2019.01.28, v3.17.0

fix:

  • (plugin-merge-destructuring-properties) overwrite property

feature:

  • (putout) add @babel/generator

2019.01.28, v3.16.0

fix:

  • (merge-destructuring-properties) rm recast

feature:

  • (plugin-apply-destructuring) add
  • (plugin-merge-destructuring-properties) add

2019.01.28, v3.15.2

fix:

  • (putout) call plugin.: with place -> with item

feature:

  • (convert-esm-to-commonjs) add support of same name of imported and local
  • (plugin-convert-esm-to-commonjs) add support of CallExpression in ExportDefaultDeclaration

2019.01.27, v3.15.1

fix:

  • (package) dependencies: add @putout/plugin-convert-esm-to-commonjs

2019.01.27, v3.15.0

feature:

  • (plugin-convert-esm-to-commonjs) add
  • (eslint-config) add no-useless-rename

2019.01.27, v3.14.0

fix:

  • (plugin-remove-empty) package: description

feature:

  • (putout) add @babel/template
  • (plugin-remove-unused-variables) redrun -> madrun
  • (plugin-remove-unused-variables) BinaryExpression: add support of TemplateLiteral
  • (putout) add support of madrun

2019.01.24, v3.13.2

fix:

  • (putout) dependencies: @babel/parser

2019.01.23, v3.13.1

fix:

  • (custom-parser) @babel/parser: jsx

2019.01.23, v3.13.0

feature:

  • (putout) add support of @babel/parser
  • (putout) move out espree to custom-parser

2019.01.23, v3.12.0

feature:

  • (putout) add support of a no loc nodes
  • (putout) decrease leak of a path
  • (plugin-remove-unused-variables) use Map instead of Loc
  • (@putout/plugin-remove-unused-variables) @babel -> putout

2019.01.22, v3.11.0

fix:

  • feature(putout) remove recast-
  • (plugin-remove-skip) @putout/test: dependencies -> devDependencies

feature:

  • (putout) remove recast-fix
  • (@putout/plugin-remove-unused-variables) add ability to not relate on loc while searching and removing variables
  • (@putout/test) add support of plugins as second argument of transform

2019.01.21, v3.10.0

fix:

  • feature(@putout/test) add ability to check that report, find and functions exists

feature:

  • (plugin-remove-empty-pattern) add
  • (plugin-remove-empty) @babel/types -> putout.types
  • (eslintrc) implicit-error-line-break
  • (eslintrc) add arrow-spacing
  • (@putout/test) add ability to check that report, find and fix functions exists
  • (plugin-remove-skip) @babel/types -> putout
  • (plugin-remove-only) @babel/types -> putout.types

2019.01.18, v3.9.0

fix:

  • (eslintrc) .eslintrc.js -> .eslintrc.json
  • chore(split-variable-declaration-) add " "

feature:

  • (putout) add traverse, types to exports
  • (package) eslint -> jsonlint
  • (plugin-split-variable-declarations) set loc to work good with @putout/plugin-remove-unused-variables
  • (@putout/test) transform: add support of plugins
  • (package) add @putout/eslint-config

2019.01.16, v3.8.0

fix:

  • (plugin-remove-unused-variables) ClassDeclaration: add support of bubling
  • (putout) exit on parse error -> log on proceed

feature:

  • (plugin-remove-unused-variables) add support of jsx
  • (putout) add support of jsx
  • (plugin-remove-unused-variables) add support of ObjectExpression in arguments of NewExpression
  • (plugin-remove-unused-variables) add support of AssignmentPattern in ObjectExpression
  • (plugin-remove-unused-variables) add support of ClassDeclaration

2019.01.15, v3.7.2

fix:

  • (get-plugins) plugins load

2019.01.15, v3.7.1

fix:

  • (get-plugins) disable codemod

2019.01.15, v3.7.0

feature:

  • (putout) read config not directory containing file not cwd

2019.01.15, v3.6.3

fix:

  • (putout) position in files with shebang

2019.01.14, v3.6.2

fix:

  • (putout) relative path

2019.01.14, v3.6.1

fix:

  • (putout) argv: number

feature:

  • (plugin-remove-unused-variables) add traverse
  • (plugin-remove-unused-variables) ObjectExpression add support of computed key

2019.01.14, v3.6.0

feature:

  • (putout) move plugins init to bin

2019.01.14, v3.5.1

fix:

  • (get-plugins) plugins merge
  • (putout) : false by default

2019.01.14, v3.5.0

feature:

  • (putout) add @putout/plugin-remove-empty

2019.01.13, v3.4.2

fix:

  • (package) add once

feature:

  • (plugin-convert-tape-to-supertape) add support of tryToTape

2019.01.13, v3.4.1

fix:

  • (putout) rm console.log

2019.01.13, v3.4.0

feature:

  • (putout) add support of codemods

2019.01.13, v3.3.5

fix:

  • (putout) ExportDefaultDeclaration (benjamn/recast/pull/561)

feature:

  • (@putout/test) no report messages

2019.01.13, v3.3.4

fix:

  • (putout) getMessage -> report
  • (@putout/test) message -> report

feature:

  • (@putout/test) add support of reportCode
  • (@putout/test) add support of transformCode

2019.01.13, v3.3.3

fix:

  • (putout) add print options: single quotes

feature:

  • (test) messages: add support of array
  • (package) add @putout/test
  • (@putout/test) add
  • (package) add supertape from npm

2019.01.12, v3.3.2

fix:

  • (putout) unused variables -> errors

feature:

  • (package) rm unused rendy
  • (plugin-remove-console) simplified tests
  • (putout) add support of ArrayExpression in AssignmentPattern
  • (plugin-remove-unused-variabled) add support of ExportNamedDeclaration

2019.01.11, v3.3.1

fix:

  • (putout) preventUsingEsprima

feature:

  • (package) recast v0.17.1
  • (plugin-remove-unused-variables) add support of ExportDefaultDeclaration
  • (putout) add sourceType: "module"

2019.01.11, v3.3.0

fix:

  • (split-variable-declaration) add null-literal support

feature:

  • (putout) plugin: find(ast) -> find(ast, {traverse, types})
  • (putout) plugin: message -> getMessage

2019.01.10, v3.2.0

feature:

  • (plugin-remove-console) add

2019.01.10, v3.1.0

feature:

  • (plugin-split-variable-declarations) add

2019.01.10, v3.0.0

fix:

  • (plugin-remove-only) description
  • feature(putout) change plugin structure: find,

feature:

  • (parse-match) move out from bin/putout.js
  • (putout) add support of match/ignore
  • (putout) add plugin name in errors output
  • (plugin-remove-skip) add
  • (putout) add ability to set config path
  • (putout) cherow -> espree: comments support
  • (putout) disable by default rules: remove-only, remove-process-exit
  • (plugin-remove-unused-variables) move out from putout
  • (plugin-remove-only) move out from putout
  • (remove-process-exit) isStringLiteralValue -> isStringLiteral
  • (putout) add support of plugins load
  • (plugin-remove-debugger) move out from putout
  • (putout) full plugin names
  • (rm-process-exit) add
  • (putout) convert repo to monorepo
  • (putout) change plugin structure: find, fix
  • (putout) add ability to load plugins
  • (putout) add ability to load config file .putout.json
  • (get-plugins) add support of rules
  • (putout) .putout.json -> putout.json
  • (putout) add support of only
  • (get-vars) rm setLoc

2019.01.04, v2.26.0

feature:

  • (putout) add ability to remove debugger statement

2019.01.04, v2.25.0

fix:

  • (putout) shebang, strict mode

feature:

  • (putout) add support of TemplateLiteral in ArrayExpression
  • (putout) move out message from bin

2019.01.04, v2.24.1

fix:

  • (cut-shebang) additional new line

2019.01.03, v2.24.0

feature:

  • (putout) useParamsBeforeLastUsed: add support of AssignmentPattern in
  • (puttou) add support of SpreadElement in ArrayExpression
  • (putout) add support of ThrowStatement
  • (putout) add ability to use nested properties in ObjectExpression

2019.01.03, v2.23.0

fix:

  • chore(get-vars) fixture: alphabet order

feature:

  • (putout) FunctionDeclaration: add support of useParamsBeforeLastUsed
  • (putout) add support of TemplateLiteral in LogicalExpression
  • (putout) useParamsBeforeLastUsed: add support of ObjectPattern
  • (putout) add support of TaggedTemplateExpression

2019.01.02, v2.22.0

feature:

  • (putout) AssignmentExpressions: add support of TemplateLiteral
  • (putout) add support of UpdateExpression

2019.01.02, v2.21.0

feature:

  • (putout) FunctionDeclaration: add support of AssignmentPattern in params

2019.01.01, v2.20.0

feature:

  • (get-vars) add ability to use traverse ObjectExpression with ObjectPattern
  • (remove-unused) add loc when error

2019.01.01, v2.19.0

feature:

  • (putout) AssignExpression: add support of ObjectExpression in the right
  • (putout) add support of SwitchStatement

2019.01.01, v2.18.7

feature:

  • (get-vars) add support of one unused variable in ArrayPattern id of VariableDeclarator

2018.12.31, v2.18.6

feature:

  • (get-vars) add support of ObjectExpression in body of ArrowFunctionExpression

2018.12.31, v2.18.5

fix:

  • (putout) exit

2018.12.31, v2.18.4

feature:

  • (putout) ConditionalExpression: add support of consequent, alternate

2018.12.31, v2.18.3

fix:

  • (putout) removing an element from ArrayPattern

2018.12.29, v2.18.2

feature:

  • (package) add estree-to-babel

2018.12.29, v2.18.1

fix:

  • (putout) add @babel/parser back

2018.12.29, v2.18.0

feature:

  • (putout) @babel/parser -> cherow

2018.12.28, v2.17.2

fix:

  • (putout) do not try to remove empty for-of statement
  • chore(putout) add comment to fixStrictMode

2018.12.27, v2.17.1

fix:

  • (putout) strict mode

2018.12.27, v2.17.0

feature:

  • (get-vars) rm isVariableDeclaration(left) check from ForOfStatement
  • (get-vars) ArrowFunctionExpression: rm isObjectPattern condition
  • (putout) add support of empty body in ForOfStatement

2018.12.27, v2.16.0

feature:

  • (putout) add support of NewExpression

2018.12.27, v2.15.0

fix:

  • (putout) error message

feature:

  • (putout) add support of ForOfStatement with empty body

2018.12.26, v2.14.0

feature:

  • (putout) add support of ArrayPattern in VariableDeclarator

2018.12.26, v2.13.1

fix:

  • (putout) crash on removing unused ArrowFunctionExpression param

2018.12.25, v2.13.0

fix:

  • (putout) strict mode
  • (putout) some variable names on same scope level

feature:

  • (putout) add support of destructuring in params of ArrowFunctionExpression
  • (get-vars) add support of destructuring in params
  • (putout) add ability to ignore params before last used

2018.12.25, v2.12.0

feature:

  • (putout) add support of TemplateLiteral in ArrowFunctionExpression

2018.12.25, v2.11.1

fix:

  • (putout) --help

2018.12.25, v2.11.0

fix:

  • docs(readme) --

feature:

  • (putout) add --help, --version

2018.12.25, v2.10.1

fix:

  • (putout) add "\n" in output

2018.12.24, v2.10.0

feature:

  • (putout) add support of assignment expression

2018.12.24, v2.9.0

feature:

  • (putout) add support of Identifier in init of VariableDeclarator

2018.12.24, v2.8.0

feature:

  • (putout) add support of SpreadElement in CallExpression

2018.12.24, v2.7.1

fix:

  • (putout) crash when no unused

2018.12.24, v2.7.0

fix:

  • (putout) dependencies

feature:

  • (putout) show file name

2018.12.24, v2.6.1

fix:

  • (putout) double semicoln in strict mode

2018.12.24, v2.6.0

feature:

  • (putout) add support of globs
  • (putout) add support of array-expression
  • (putout) add support of unary-expression
  • (package) add eslint-plugin-tape

2018.12.24, v2.5.0

feature:

  • (get-vars) add support of logical-expression
  • (putout) add support of member expression properties

2018.12.23, v2.4.0

feature:

  • (get-vars) add support of ObjectExpression in ReturnStatement
  • (get-vars) add support of TemplateLiteral in ReturnStatement
  • (get-vars) fn calls horthand vars
  • (package) test:diff

2018.12.22, v2.3.0

fix:

  • (get-vars) VariableDeclarator: path.traverse -> id.traverse

feature:

  • (get-vars) add support of TemplateLiteral

2018.12.22, v2.2.0

feature:

  • (get-vars) add support of IfStatement

2018.12.21, v2.1.1

feature:

  • (putout) disabled return an array of .tokens on the root AST node

2018.12.21, v2.1.0

fix:

  • test(putout) fn vars
  • test(putout) arrow-vars-

feature:

  • (putout) add support of destructuring nested object
  • (putout) get-vars: remove declaration when destructured value not used

2018.12.07, v2.0.0

fix:

  • (putout) remove unused destructured variables

feature:

  • (putout) add support of fn-call-vars
  • (package) espree -> @babel/parser
  • (putout) count -> declared, used
  • (package) espree v5.0.0

2018.12.06, v1.6.0

feature:

  • (putout) add support of desctrucuring variable declaration
  • (putout) add ability to process bin files

2018.12.05, v1.5.0

fix:

  • (putout) no root vars
  • (putout) variables with same name in different scopes

feature:

  • (putout) add ability to align spaces
  • (putout) add raw-full

2018.12.05, v1.4.0

fix:

  • (putout) showRaw: input

feature:

  • (putout) add support of argument destructurisation

2018.12.04, v1.3.3

fix:

  • (putout) vars -> raw

2018.12.04, v1.3.2

fix:

  • (putout) undeclared-vars

2018.12.04, v1.3.1

fix:

  • (get-unused) called

2018.12.04, v1.3.0

feature:

  • (putout) add support of object spread

2018.12.04, v1.2.2

feature:

  • (putout) add support of object properties

2018.12.04, v1.2.1

fix:

  • (putout) fn-args-vars

feature:

  • (putout) add for-of support

2018.12.04, v1.2.0

feature:

  • (package) add support of called but not defined functions

2018.12.04, v1.1.1

fix:

  • (get-vars) first use of a function

2018.12.03, v1.1.0

feature:

  • (putout) add support of unused arguments
  • (puttout) add support of shorthand properties

2018.11.30, v1.0.1

fix:

  • (package) bin

feature:

  • (putout) add