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:
- 7368c1f1b @putout/cli-cache: use data field (https://github.com/jaredwray/cacheable/tree/main/packages/file-entry-cache#setting-additional-meta-data)

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: __type_params

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: __type_params

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: __type_params: 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 __filesystem_name
- 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 "__putout_processor_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:
- edc1b7407 package: @putout/plugin-apply-optional-chaining v4.0.0
- e3cc9b343 @putout/plugin-apply-optional-chaining: drop support of 🐊 < 31
- 06882f62c @putout/plugin-apply-optional-chaining: __a && __a.__b.__c
- d4c233352 @putout/eslint: prepare for ESLint v9 (https://eslint.org/blog/2023/07/eslint-v8.45.0-released/#exporting-of-new-legacyeslint-class)
- 293bcbfac package: hermes-parser v0.15.1

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:
- 3df1f30b6 package: @typescript-eslint/eslint-plugin v6.0.0
- 92c747b33 putout: codemods: exclude files/directories started with "."
- f248abd67 package: @typescript-eslint/parser v6.0.0 (https://typescript-eslint.io/blog/announcing-typescript-eslint-v6/)

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 __args__a
- 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:
- 74c8915be eslint-plugin-putout: update API (https://eslint.org/blog/2023/05/eslint-v8.40.0-released/)
- ee1534466 package: @putout/plugin-eslint-plugin v1.0.0
- 220500e1a putout: configuration: eslint -> eslint/
- ee06778c5 package: @putout/plugin-eslint-plugin v1.0.0
- 3d5c2487a plugin-eslint-plugin: add
- 61b17bcc9 eslint: add support of new API (https://eslint.org/blog/2023/05/eslint-v8.40.0-released/)
- fea803ee2 @putout/plugin-eslint-plugin: add

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:
- @putout/eslint-config: add config from npm (https://eslint.org/blog/2023/02/eslint-v8.35.0-released/)
- package: @putout/plugin-tape v10.0.0
- @putout/plugin-tape: jest: add
- @putout/plugin-tape: drop support of 🐊 < 28
- @putout/plugin-apply-destructuring: drop useless match

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 __identifier__a
- @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: __jsx_attributes: 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 __jsx_attributes: shorten code
- @putout/compare: __jsx_attributes: add support of any count
- @putout/compare: add support of __jsx_attributes
- @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 -> __jsx_children

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: __jsx_children: improve support
- @putout/compare: improve support of jsx expressions
- @putout/compare: improve __jsx_children 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 __args__a (#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:
- (putout) freeze @putout/plugin-eslint@4.1.0
- (@putout/test) description: add 🐊
- (@putout/test) processor: UPDATE


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:
- (putout) add support of .mts, .cts (https://devblogs.microsoft.com/typescript/announcing-typescript-4-7-beta/#new-file-extensions)
- (@putout/processor-javascript) add support of .cts, .mts


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:
- (package) @putout/plugin-remove-duplicate-keys v3.0.0
- (@putout/plugin-typescript) add remove-duplicate-exports
- (@putout/plugin-remove-duplicate-keys) drop support of Putout < 25
- (@putout/plugin-github) set-node-version: update to v18 (https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V18.md#18.0.0)


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:
- (@putout/plugin-declare-undefined-variables) wrap: add returns
- (eslint-plugin-putout) putout: add ability to remove parent, it makes recast go crazy (https://github.com/eslint/eslint/blob/v8.4.0/lib/linter/linter.js#L964)
- (eslint-plugin-putout) putout: use generate, when recast cannot print


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:
- (package) @putout/plugin-merge-duplicate-imports v4.0.0
- (@putout/plugin-merge-duplicate-imports) drop support of putout < 21
- (@putout/plugin-merge-duplicate-imports) add support of ImportSpecifier importKind (https://babeljs.io/blog/2021/10/29/7.16.0#typescript-45-features-13802httpsgithubcombabelbabelpull13802-13838httpsgithubcombabelbabelpull13838)
- (@putout/plugin-apply-filter-boolean) add support of find


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:
- (putout) loader: add support of node v16.12 (https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V16.md#16.12.0)
- (@putout/plugin-declare-undefined-variables) add support of stream
- (@putout/plugin-declare-undefined-variables) add support of module
- (eslint-plugin-putout) no-unresolved: disable for TS
- (@putout/plugin-convert-generic-to-shorthand) exclude TSUnionType


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:
- (package) eslint v8.0.1 (https://eslint.org/blog/2021/10/eslint-v8.0.0-released)


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:
- (@putout/plugin-apply-filter-boolean) add
- (eslint-plugin-putout) rm category (https://eslint.org/blog/2021/08/eslint-v8.0.0-beta.1-released)
- (package) ts-morph v12.0.0


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:
- (@putout/cli-match) add: use with --match [pattern]
- (@putout/engine-loader) improve error message when "rules" used instead of "match"
- (eslint-plugin-putout) @babel/eslint-parser v7.15.0 (https://babeljs.io/blog/2021/07/26/7.15.0#preparing-babeleslint-parser-for-babel-8-13398httpsgithubcombabelbabelpull13398)
- (@putout/engine-parser) babel: plugins: rm topLevelAwait: enabled by default (https://babeljs.io/blog/2021/07/26/7.15.0)


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:
- (@putout/plugin-putout) check-replace-code: double semi
- (@putout/plugin-putout) check-replace-code: compare args order
- (@putout/processor-markdown) load unified with simport sometimes doesn't work on node v14, use dynamic import (https://github.com/coderaiser/estrace/runs/3143243819?check_suite_focus=true)
- (@putout/plugin-apply-eary-return) >14 -> >=14


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:
- (putout) ignore: add build (https://create-react-app.dev/docs/production-build#static-file-caching)


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:
- (putout) add ability to use as loader (https://github.com/coderaiser/putout#using-putout-as-loader)
- (@putout/plugin-simplify-assignment) add


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:
- feature(@putout/plugin-reuse-duplicate-init) add support of the same paths with changed values
- feature(@putout/plugin-tape) declare-stub: speed up search of "test" declaration (https://github.com/jamiebuilds/babel-handbook/blob/master/translations/en/plugin-handbook.md#do-not-traverse-when-manual-lookup-will-do)
- feature(@putout/plugin-tape) declare-stub: getAllBindings -> hasBinding



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:
- (package) eslint v7.3.1 (https://eslint.org/blog/2020/06/eslint-v7.3.1-released)
- (@putout/plugin-convert-object-assign-to-merge-spread) spread


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 __args_a 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: __args__a
- (@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 __OBJECT_TYPE, __ARRAY_TYPE
- (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

