Closed renovate[bot] closed 5 years ago
:construction_worker: This PR has received other commits, so Renovate will stop updating it to avoid conflicts or other problems. If you wish to abandon your changes and have Renovate start over you may click the "rebase" checkbox in the PR body/description.
This PR contains the following updates:
^3.5.0
->^4.2.0
^3.19.0
->^5.15.2
^12.0.0
->^17.1.0
^2.2.3
->^6.2.1
^6.10.3
->^7.12.4
^2.4.0
->^5.0.0
^3.5.3
->^6.0.2
Release Notes
chaijs/chai
### [`v4.2.0`](https://togithub.com/chaijs/chai/releases/4.2.0) [Compare Source](https://togithub.com/chaijs/chai/compare/4.1.2...4.2.0) This is a minor release. Thank you to all of our contributors and users! ### New Features - feat(assertions): add 'still' language chain ([#1194](https://togithub.com/chaijs/chai/issues/1194); [@ScottRudiger](https://togithub.com/ScottRudiger)) - .lengthOf for Maps and Sets ([#1110](https://togithub.com/chaijs/chai/issues/1110), [#1131](https://togithub.com/chaijs/chai/issues/1131); [@asbish](https://togithub.com/asbish)) - feat: Add the assert.fail([message]) interface ([#1116](https://togithub.com/chaijs/chai/issues/1116), [#1117](https://togithub.com/chaijs/chai/issues/1117); [@s-leroux](https://togithub.com/s-leroux)) ### Bug Fixes - fix: remove Chai frames from `.deep.equal` stack ([#1124](https://togithub.com/chaijs/chai/issues/1124); [@meeber](https://togithub.com/meeber)) - add 'catch' keyword to proxyExcludedKeys ([#1050](https://togithub.com/chaijs/chai/issues/1050), [#1101](https://togithub.com/chaijs/chai/issues/1101); [@generalandrew](https://togithub.com/generalandrew)) - property assertion should only accept strings if nested ([#1043](https://togithub.com/chaijs/chai/issues/1043), [#1044](https://togithub.com/chaijs/chai/issues/1044); [@solodynamo](https://togithub.com/solodynamo)) - fix: Make tests pass with `--use_strict` ([#1034](https://togithub.com/chaijs/chai/issues/1034), [#1040](https://togithub.com/chaijs/chai/issues/1040); [@shvaikalesh](https://togithub.com/shvaikalesh)) ### Performance - perf: Optimize proxify and stringDistance ([#1098](https://togithub.com/chaijs/chai/issues/1098); [@sophiebits](https://togithub.com/sophiebits)) - fix: Avoid repeated String#slice calls in stringDistance ([#1095](https://togithub.com/chaijs/chai/issues/1095); [@bmeurer](https://togithub.com/bmeurer)) ### Style - Fix typos and remove trailing whitespaces ([#1042](https://togithub.com/chaijs/chai/issues/1042); [@simonewebdesign](https://togithub.com/simonewebdesign)) - Remove unnecessary code ([#1049](https://togithub.com/chaijs/chai/issues/1049); [@abetomo](https://togithub.com/abetomo)) - Fix variable declaration ([#1048](https://togithub.com/chaijs/chai/issues/1048); [@abetomo](https://togithub.com/abetomo)) ### Tests - test(assert): increase coverage ([#1084](https://togithub.com/chaijs/chai/issues/1084), [#1085](https://togithub.com/chaijs/chai/issues/1085); [@brutalcrozt](https://togithub.com/brutalcrozt)) - test: stop modifying globals in Proxy tests ([#1144](https://togithub.com/chaijs/chai/issues/1144); [@meeber](https://togithub.com/meeber)) ### Docs - Fix unbalanced quotes in assert.notInclude example ([#1200](https://togithub.com/chaijs/chai/issues/1200); [@haykam821](https://togithub.com/haykam821)) - docs: fix bad `.string` example ([#1156](https://togithub.com/chaijs/chai/issues/1156), [#1157](https://togithub.com/chaijs/chai/issues/1157); [@meeber](https://togithub.com/meeber)) - fixed package npm url ([#1151](https://togithub.com/chaijs/chai/issues/1151); [@wadie](https://togithub.com/wadie)) - Spelling ([#1145](https://togithub.com/chaijs/chai/issues/1145); [@jsoref](https://togithub.com/jsoref)) - docs: corrected spelling ([#1141](https://togithub.com/chaijs/chai/issues/1141); [@Powell-v2](https://togithub.com/Powell-v2)) - docs: fix wrong `.property` chaining examples ([#193 (comment)](https://togithub.com/chaijs/chai/issues/193#issuecomment-360334369), [#1130](https://togithub.com/chaijs/chai/issues/1130); [@meeber](https://togithub.com/meeber)) - docs: improve throws examples ([#1113](https://togithub.com/chaijs/chai/issues/1113); [@ColinEberhardt](https://togithub.com/ColinEberhardt)) - Fix typos ([#1107](https://togithub.com/chaijs/chai/issues/1107); [@tbroadley](https://togithub.com/tbroadley)) - docs: correct `.ok` description ([#1047](https://togithub.com/chaijs/chai/issues/1047); [@shvaikalesh](https://togithub.com/shvaikalesh)) ### Chores - chore: update package-lock.json ([#1198](https://togithub.com/chaijs/chai/issues/1198); [@meeber](https://togithub.com/meeber)) - Update mocha to the latest version ([#1127](https://togithub.com/chaijs/chai/issues/1127)) - chore: update dependencies ([#1157](https://togithub.com/chaijs/chai/issues/1157); [@meeber](https://togithub.com/meeber)) - Update browserify to the latest version ([#1135](https://togithub.com/chaijs/chai/issues/1135)) - chore: update Node versions in Travis config ([#1126](https://togithub.com/chaijs/chai/issues/1126); [@meeber](https://togithub.com/meeber)) - chore: remove Opera from Sauce config ([#1125](https://togithub.com/chaijs/chai/issues/1125); [@meeber](https://togithub.com/meeber)) - chore: update dependencies ([#1118](https://togithub.com/chaijs/chai/issues/1118); [@meeber](https://togithub.com/meeber)) - chore: update dependencies ([#1074](https://togithub.com/chaijs/chai/issues/1074); [@meeber](https://togithub.com/meeber)) - Chore: change coverage service (coverall to codecov) ([#927](https://togithub.com/chaijs/chai/issues/927), [#1073](https://togithub.com/chaijs/chai/issues/1073); [@brutalcrozt](https://togithub.com/brutalcrozt)) - chore: add package-lock.json ([#1013](https://togithub.com/chaijs/chai/issues/1013); [@meeber](https://togithub.com/meeber)) ### [`v4.1.2`](https://togithub.com/chaijs/chai/releases/4.1.2) [Compare Source](https://togithub.com/chaijs/chai/compare/4.1.1...4.1.2) This release fixes a bug when running in certain environments, and includes a few minor documentation fixes. ### Bug Fixes - fix: update `deep-eql` to version 3.0.0 ([#1020](https://togithub.com/chaijs/chai/issues/1020)) - fix: replace code causing breakage under strict CSP ([#1032](https://togithub.com/chaijs/chai/issues/1032); [@Alhadis](https://togithub.com/Alhadis)) ### Docs - docs: add missing assert parameters ([#1017](https://togithub.com/chaijs/chai/issues/1017), [#1023](https://togithub.com/chaijs/chai/issues/1023); [@Hpauric](https://togithub.com/Hpauric)) - docs: update year in license file ([#1025](https://togithub.com/chaijs/chai/issues/1025); [@yanca018](https://togithub.com/yanca018)) ### [`v4.1.1`](https://togithub.com/chaijs/chai/releases/4.1.1) [Compare Source](https://togithub.com/chaijs/chai/compare/4.1.0...4.1.1) This release includes a few bug and documentation fixes. ### Bug Fixes - fix: `.instanceof` to allow DOM interfaces in IE11 ([#1000](https://togithub.com/chaijs/chai/issues/1000), [#1008](https://togithub.com/chaijs/chai/issues/1008); [@meeber](https://togithub.com/meeber)) - fix: `.include` to work with all objects ([#1009](https://togithub.com/chaijs/chai/issues/1009), [#1012](https://togithub.com/chaijs/chai/issues/1012); [@meeber](https://togithub.com/meeber)) ### Docs - fix: correct hasAnyKeys comment error ([#1014](https://togithub.com/chaijs/chai/issues/1014); [@zenHeart](https://togithub.com/zenHeart)) - docs: re-indent hasAnyKeys code ([#1016](https://togithub.com/chaijs/chai/issues/1016); [@keithamus](https://togithub.com/keithamus)) ### [`v4.1.0`](https://togithub.com/chaijs/chai/releases/4.1.0) [Compare Source](https://togithub.com/chaijs/chai/compare/4.0.2...4.1.0) This release includes one new feature and a few bug fixes. ### New Features - Add ES6 collection support to include() ([#970](https://togithub.com/chaijs/chai/issues/970), [#994](https://togithub.com/chaijs/chai/issues/994); [@shvaikalesh](https://togithub.com/shvaikalesh)) ### Bug Fixes - Allow dates for isBelow and isAbove assertions ([#980](https://togithub.com/chaijs/chai/issues/980), [#990](https://togithub.com/chaijs/chai/issues/990); [@v1adko](https://togithub.com/v1adko)) - fix: check target's type in `.property` assertion ([#992](https://togithub.com/chaijs/chai/issues/992); [@meeber](https://togithub.com/meeber)) ### Chores - Add a missing var keyword found by lgtm.com ([#988](https://togithub.com/chaijs/chai/issues/988); [@samlanning](https://togithub.com/samlanning)) - refactor: `expectTypes` to access `ssfi` flag ([#993](https://togithub.com/chaijs/chai/issues/993); [@meeber](https://togithub.com/meeber)) - Create CODEOWNERS ([#1004](https://togithub.com/chaijs/chai/issues/1004); [@keithamus](https://togithub.com/keithamus)) ### [`v4.0.2`](https://togithub.com/chaijs/chai/releases/4.0.2) [Compare Source](https://togithub.com/chaijs/chai/compare/4.0.1...4.0.2) We have another bugfix release, addressing some issues for WebPack 1 users. ### Bug Fixes - Revert getting version information from package.json, some bundler tools like Webpack do not come default with json loaders despite Node being able to handle this. This change moves back to hardcoding the version number in the codebase. ([#985](https://togithub.com/chaijs/chai/issues/985), [#986](https://togithub.com/chaijs/chai/pull/986)) ### [`v4.0.1`](https://togithub.com/chaijs/chai/releases/4.0.1) [Compare Source](https://togithub.com/chaijs/chai/compare/4.0.0...4.0.1) ### 4.0.1 Of course, any major release cannot go without a quick bugfix release shortly after - and here's ours! ### Bug Fixes - Remove package.json `browser` field which was mistakenly added, and caused bundler tools like Browserify or Webpack to fail as it attempted to rebundle an already bundled file. ([#978](https://togithub.com/chaijs/chai/issues/978), [#982](https://togithub.com/chaijs/chai/pull/982)) ### [`v4.0.0`](https://togithub.com/chaijs/chai/releases/4.0.0) [Compare Source](https://togithub.com/chaijs/chai/compare/3.5.0...4.0.0) ### 4.0.0 4.0 has been a huge undertaking by the chai community! A lot has changed to ensure Chai 4 is a stable, reliable, well documented codebase. Here are just some of the major improvements: - almost all documentation has been rewritten, with detailed instructions on how assertions work, which flags they can be combined with and the best practices for how to use them. - deep equality has been rewritten from the ground up to support ES6 types like `Map` and `Set`, and better support existing types. It is now also much, much faster than before and allows us to bring some great improvements in upcoming releases. - we have made sure the `deep` flag now _only ever does deep equality_. Beforehand, it would sometimes also be used to test nested properties (for example `expect(foo).to.have.deep.property('bar.baz')`. For nested assertions, please now use the `.nested` flag. - many assertions have become more strict, which means you get better error messages explaining where things have gone wrong. For the most part, this wont mean error messages where there weren't error messages before, but it will mean better error messages to replace the, sometimes cryptic, default `TypeError` messages. - we've added detections and helpful error messages for common mistakes and typos. The error messages will, in some cases, point you to documentation or in other cases suggest alternatives. These messages will continue to be improved in future releases, so let us know if you have any suggestions! ### Breaking Changes - We no longer support Node v0.10 and v0.12 (since their LTS has ended) _(PRs: [#816](https://togithub.com/chaijs/chai/issues/816), [#901](https://togithub.com/chaijs/chai/issues/901))_ - Instead of allowing the user to write the path of a property, **now the deep flag performs a deep equality comparison when used with the `.property` assertion**. If you want the old behavior of using the dot or bracket notation to denote the property you want to assert against **you can use the new `.nested` flag**. _(Related Issues: [#745](https://togithub.com/chaijs/chai/issues/745), [#743](https://togithub.com/chaijs/chai/issues/743), PRs: [#758](https://togithub.com/chaijs/chai/issues/758), [#757](https://togithub.com/chaijs/chai/issues/757))_ ```js const obj = {a: 1}; // The `.deep` flag now does deep equality comparisons expect({foo: obj}).to.have.deep.property('foo', {a: 1}); // Use the `nested` flag if you want to assert against a nested property using the bracket or dot notation expect({foo: obj}).to.have.nested.property('foo.a', 1); // You can also use both flags combined const obj2 = {a: {b: 2}}; expect({foo: obj2}).to.have.deep.nested.property('foo.a', {b: 2}); ``` Please notice that the old methods which used the old behavior of the `deep` flag on the `assert` interface have been renamed. They all have had the `deep` word changed by the `nested` word. If you want to know more about this please take a look at [#757](https://togithub.com/chaijs/chai/issues/757). - Previously, `expect(obj).not.property(name, val)` would throw an Error if `obj` didn't have a property named `name`. This change causes the assertion to pass instead. The `assert.propertyNotVal` and `assert.deepPropertyNotVal` assertions were renamed to `assert.notPropertyVal` and `assert.notDeepPropertyVal`, respectively. _(Related Issues: [#16](https://togithub.com/chaijs/chai/issues/16), [#743](https://togithub.com/chaijs/chai/issues/743), [#758](https://togithub.com/chaijs/chai/issues/758))_ - You can now use the `deep` flag for the `.include` assertion in order to perform a `deep` equality check to see if something is included on the `target`. Previously, `.include` was using strict equality (`===`) for non-negated property inclusion, but `deep` equality for negated property inclusion and array inclusion. **This change causes the .include assertion to always use strict equality unless the deep flag is set.** Please take a look [at this comment](https://togithub.com/chaijs/chai/issues/743#issuecomment-235763477) if you want to know more about it. _(Related Issues: [#743](https://togithub.com/chaijs/chai/issues/743), PRs: [#760](https://togithub.com/chaijs/chai/issues/760), [#761](https://togithub.com/chaijs/chai/issues/761))_ ```js const obj = {a: 1}; expect([obj]).to.deep.include({a:1}); expect({foo: obj}).to.deep.include({foo: {a:1}}); ``` - Fix unstable behavior of the `NaN` assertion. Now we use the suggested ES6 implementation. The new implementation is now more correct, strict and simple. While the old one threw false positives, the new implementation only checks if something is `NaN` (or not if the `.not` flag is used) and nothing else. _(Related Issues: [#498](https://togithub.com/chaijs/chai/issues/498), [#682](https://togithub.com/chaijs/chai/issues/682), [#681](https://togithub.com/chaijs/chai/issues/681), PRs: [#508](https://togithub.com/chaijs/chai/issues/508))_ ```js // Only `NaN` will be considered to be `NaN` and nothing else expect(NaN).to.be.NaN; // Anything that is not `NaN` cannot be considered as `NaN` expect('randomString').not.to.be.NaN; expect(true).not.to.be.NaN; expect({}).not.to.be.NaN; expect(4).not.to.be.NaN; ``` - The Typed Array types are now truncated if they're too long (in this case, if they exceed the `truncateThreshold` value on the `config`). _(Related Issues: [#441](https://togithub.com/chaijs/chai/issues/441), PRs: [#576](https://togithub.com/chaijs/chai/issues/576))_ ```js var arr = []; for (var i = 1; i <= 1000; i++) { arr.push(i); } // The assertion below will truncate the diff shown and the enormous typed array will be shown as: // [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ... ] instead of printing the whole typed array chai.expect(new Float32Array(100)).to.equal(1); ``` - The assertions: `within`, `above`, `least`, `below`, `most`, `increase`, `decrease` will throw an error if the assertion's target or arguments are not numbers. _(Related Issues: [#691](https://togithub.com/chaijs/chai/issues/691), PRs: [#692](https://togithub.com/chaijs/chai/issues/692), [#796](https://togithub.com/chaijs/chai/issues/796))_ ```js // These will throw errors, for example: expect(null).to.be.within(0, 1); expect(null).to.be.above(10); expect(null).to.be.at.least(20); expect(null).to.be.below(20); expect(null).to.be.at.most(20); expect(null).to.increase.by(20); expect(null).to.decrease.by(20); // This will not: expect('string').to.have.a.lengthOf.at.least(3); ``` - Previously, `expect(obj).not.ownProperty(name, val)` would throw an Error if obj didn't have an own property (non-inherited) named name. This change causes the assertion to pass instead. (Related Issues: [#795](https://togithub.com/chaijs/chai/issues/795), #, PRs: [#744](https://togithub.com/chaijs/chai/issues/744), [#810](https://togithub.com/chaijs/chai/issues/810))\* ```js expect({ foo: 'baz' }).to.not.have.own.property('quux', 'baz'); ``` - The `.empty` assertion will now throw when it is passed non-string primitives and functions _(PRs: [#763](https://togithub.com/chaijs/chai/issues/763), [#812](https://togithub.com/chaijs/chai/issues/812))_ ```js // These will throw TypeErrors: expect(Symbol()).to.be.empty; expect(function() {}).to.be.empty; expect(true).to.be.empty; expect(1).to.be.empty ``` - Assertion subject (`obj`) changes when using `ownProperty` or `own.property` and thus enables chaining. _(Related Issues: [#281](https://togithub.com/chaijs/chai/issues/281), PRs: [#641](https://togithub.com/chaijs/chai/issues/641))_ ```js expect({val: 20}).to.have.own.property('val').above(10); ``` - The `.change`, `.increase`, and `.decrease` assertions changed from chainable method assertions to method assertions. They don't have any chaining behavior, and there's no generic semantic benefit to chaining them. _(Related Issues: [#917](https://togithub.com/chaijs/chai/issues/917), PRs: [#925](https://togithub.com/chaijs/chai/issues/925))_ // This will not work anymore because there is no benefit to chaining these assertions: expect(function() {}).to.change.by(2) expect(function() {}).to.increase.by(2) expect(function() {}).to.decrease.by(2) - The `utils` (second argument passed to the `chai.use` callback function) no longer exports the `getPathValue` function. If you want to use that please use the [`pathval`](https://togithub.com/chaijs/pathval) module, which is what chai uses internally now. _(Related Issues: [#457](https://togithub.com/chaijs/chai/issues/457), [#737](https://togithub.com/chaijs/chai/issues/737), PRs: [#830](https://togithub.com/chaijs/chai/issues/830))_ - (_For plugin authors_) Throw when calling `_super`on `overwriteMethod`if the method being overwritten is `undefined`. Currently if the method you are trying to overwrite is not defined and your new method calls `_super` it will throw an `Error`._(Related Issues: [#467](https://togithub.com/chaijs/chai/issues/467), PRs: [#528](https://togithub.com/chaijs/chai/issues/528))_ Before this change, calling `_super` would simply return `this`. ```js // Considering the method `imaginaryMethod` does not exist, this would throw an error for example: chai.use(function (chai, utilities) { chai.Assertion.overwriteMethod('imaginaryMethod', function (_super) { return function () { _super.apply(this, arguments); } }); }); // This will throw an error since you are calling `_super` which should be a method (in this case, the overwritten assertion) that does not exist expect('anything').to.imaginaryMethod(); ``` - (_For plugin authors_) Now `showDiff` is turned on by default whenever the `showDiff` flag is anything other than `false`. This issue will mostly affect plugin creators or anyone that made extensions to the core, since this affects the `Assertion.assert` method. _(Related Issues: [#574](https://togithub.com/chaijs/chai/issues/574), PRs: [#515](https://togithub.com/chaijs/chai/issues/515))_ ```js // Now whenever you call `Assertion.assert` with anything that is not false for the `showDiff` flag it will be true // The assertion error that was thrown will have the `showDiff` flag turned on since it was not passed to the `assert` method try { new chai.Assertion().assert( 'one' === 'two' , 'expected #{this} to equal #{exp}' , 'expected #{this} to not equal #{act}' , 'one' , 'two' ); } catch(e) { assert.isTrue(e.showDiff); } // The assertion error that was thrown will have the `showDiff` flag turned off since here we passed `false` explicitly try { new chai.Assertion().assert( 'one' === 'two' , 'expected #{this} to equal #{exp}' , 'expected #{this} to not equal #{act}' , 'one' , 'two' , false ); } catch(e) { assert.isFalse(e.showDiff); } ``` ### New Features - Throw when non-existent property is read. _(Related Issues: [#407](https://togithub.com/chaijs/chai/issues/407), [#766](https://togithub.com/chaijs/chai/issues/766) PRs: [#721](https://togithub.com/chaijs/chai/issues/721), [#770](https://togithub.com/chaijs/chai/issues/770))_ **This is a potentially breaking change. Your build will fail if you have typos in your property assertions** Before `4.x.x` when using property assertions they would not throw an error if you wrote it incorrectly. The example below, for example, would pass: ```js expect(true).to.be.ture; // Oops, typo, now Chai will throw an Error ``` Since this implementation depends on ES6 `Proxies` it will only work on platforms that support it. **This property can be enabled (default) or disabled through the `config.useProxy` property**, for example: ```js chai.config.useProxy = false; // disable use of Proxy ``` - Add fix suggestions when accessing a nonexistent property in proxy mode. _(Related Issues: [#771](https://togithub.com/chaijs/chai/issues/771), PRs: [#782](https://togithub.com/chaijs/chai/issues/782))_ When a nonexistent property is accessed in proxy mode, Chai will compute [the levenshtein distance](http://www.levenshtein.net) to all possible properties in order to suggest the best fix to the user. ```js expect(false).to.be.fals; // Error: Invalid Chai property: fals. Did you mean "false"? expect('foo').to.be.undefind; // Error: Invalid Chai property: undefind. Did you mean "undefined"? // If the Levenshtein distance between the word and any Chai property is greater than 4, no fix will be suggested expect('foo').to.be.fdsakfdsafsagsadgagsdfasf // error thrown, no fix suggested ``` - When non-chainable methods (including overwritten non-chainable methods) are used incorrectly an error will be thrown with a helpful error message. _(PRs: [#789](https://togithub.com/chaijs/chai/issues/789))_ ```js expect(true).to.equal.true; // Invalid Chai property: equal.true. See docs for proper usage of "equal". ``` - Add a new configuration setting that describes which keys will be ignored when checking for non-existing properties on an assertion before throwing an error. Since this implementation depends on ES6 `Proxies` it will only work on platforms that support it. Also, if you disable `config.useProxy`, this setting will have no effect. _(Related Issues: [#765](https://togithub.com/chaijs/chai/issues/765), PRs: [#774](https://togithub.com/chaijs/chai/issues/774))_ ```js chai.config.proxyExcludedKeys.push('nonExistingProp'); expect('my string').to.nonExistingProp; // This won't throw an error now ``` - Add script that registers should as a side-effect. _(Related Issues: [#594](https://togithub.com/chaijs/chai/issues/594), [#693](https://togithub.com/chaijs/chai/issues/693) PRs: [#604](https://togithub.com/chaijs/chai/issues/604))_ ```js // You can now write: import 'chai/should'; // as opposed to: import {should} from 'chai'; should(); ``` You can also register should via a `mocha` option: `mocha --require chai/should`. - The `change` assertion accepts a function as object. _(Related Issues: [#544](https://togithub.com/chaijs/chai/issues/544), PRs: [#607](https://togithub.com/chaijs/chai/issues/607))_ ```js // Now you can also check if the return value of a function changes, for example assert.increases( someOperation, () => getSomething().length ) ``` - You can also assert for a delta using the `by` assertion alongside the `change`, `increase` and `decrease` assertions. _(Related Issues: [#339](https://togithub.com/chaijs/chai/issues/339), PRs: [#621](https://togithub.com/chaijs/chai/issues/621))_ ```js // You can use `.by` to assert the amount you want something to change var obj = { val: 10 }; var increaseByTwo = function() { obj.val += 2 }; var decreaseByTwo = function() { obj.val -= 2 }; var increaseByThree = function() { obj.val += 3 }; expect(increaseByThree).to.change(obj, 'val').by(3); expect(increaseByTwo).to.increase(obj, 'val').by(2); expect(decreaseByTwo).to.decrease(obj, 'val').by(2); // Please notice that if you want to assert something did change but not by some amount you need to use `.not` **after** the `change` related assertion // Take a look at the examples below: expect(increaseByThree).to.change(obj, 'val').but.not.by(5) expect(increaseByTwo).to.increase(obj, 'val').but.not.by(1) expect(decreaseByTwo).to.decrease(obj, 'val').but.not.by(1) ``` - The `.keys` assertion can now operate on `map`s and `set`s. _(Related Issues: [#632](https://togithub.com/chaijs/chai/issues/632), PRs: [#633](https://togithub.com/chaijs/chai/issues/633), [#668](https://togithub.com/chaijs/chai/issues/668))_ ```js // The `.keys` assertion now works on `map`s and `set`s natively, like the examples below: expect(new Map([[{objKey: 'value'}, 'value'], [1, 2]])).to.contain.key({objKey: 'value'}); expect(new Map([[{objKey: 'value'}, 'value'], [1, 2]])).to.contain.any.keys([{objKey: 'value'}, {anotherKey: 'anotherValue'}]); expect(new Map([['firstKey', 'firstValue'], [1, 2]])).to.contain.all.keys('firstKey', 1); expect(new Set([['foo', 'bar'], ['example', 1]])).to.have.any.keys('foo'); // You can also use `.deep` when asserting agains `Map`s and `Set`s expect(new Map([[{objKey: 'value'}, 'value'], [1, 2]])).to.contain.any.deep.keys([{objKey: 'value'}, {anotherKey: 'anotherValue'}]); expect(new Map([['firstKey', 'firstValue'], [1, 2]])).to.contain.all.deep.keys('firstKey', 1); expect(new Set([['foo', 'bar'], ['example', 1]])).to.have.any.deep.keys('foo'); ``` - Add compatibility with strict mode. _(Related Issues: [#578](https://togithub.com/chaijs/chai/issues/578), PRs: [#665](https://togithub.com/chaijs/chai/issues/665))_ ```js // This means you can now run your code with the `--use_strict` flag on Node // If want to understand more about this please read the issue related to this change ``` - Add `does` and `but` as new no-op assertion. _(Related Issues: [#700](https://togithub.com/chaijs/chai/issues/700), [#339](https://togithub.com/chaijs/chai/issues/339) PRs: [#621](https://togithub.com/chaijs/chai/issues/621), [#701](https://togithub.com/chaijs/chai/issues/701))_ ```js // You can now write assertions forming phrases with these two new words: expect(increaseByThree).to.change(obj, 'val').but.not.by(5); expect(foobar).to.have.property("baz").which.does.not.have.property("thing"); ``` - Allow `use` to be imported using new ES6 module syntax. _(Related Issues: [#718](https://togithub.com/chaijs/chai/issues/718), PRs: [#724](https://togithub.com/chaijs/chai/issues/724))_ ```js // You can now import `use` using the ES6 module syntax, like the example below: import sinonChai from "sinon-chai"; import {expect, use} from "chai"; use(sinonChai); ``` You can also use `require` alongside the new ES6 destructuring feature: ```js const sinonChai = require('sinon-chai'); const {expect, use} = require("chai"); use(sinonChai); ``` - Add ordered flag for members assertion. _(Related Issues: [#717](https://togithub.com/chaijs/chai/issues/717), PRs: [#728](https://togithub.com/chaijs/chai/issues/728))_ ```js // You can now use the `ordered` flag to assert the order of elements when using the `members` assertion: expect([1, 2, 3]).to.include.ordered.members([1, 2]); // This passes expect([1, 2, 3]).to.include.ordered.members([2, 3]); // This will fail! Read the docs to know more. ``` - Add `.own` flag to `.property` assertion. It does the same thing as `.ownProperty` and cannot be used alongisde the new `.nested` flag. _(Related Issues: [#795](https://togithub.com/chaijs/chai/issues/795), PRs: [#810](https://togithub.com/chaijs/chai/issues/810))_ ```js expect({a: 1}).to.have.own.property('a'); // The example below will thrown an Error expect({a: {b: 1}}).to.have.own.nested.property('a.b', 1); ``` - Add `.deep` support to `.property` assertion. _(Related Issues: [#795](https://togithub.com/chaijs/chai/issues/795), PRs: [#810](https://togithub.com/chaijs/chai/issues/810))_ ```js expect({ foo: { bar: 'baz' } }).to.have.deep.own.property('foo', { bar: 'baz' }); expect({ foo: { bar: { baz: 'quux' } } }).to.have.deep.nested.property('foo.bar', { baz: 'quux' }); ``` - The `.empty` assertion will now work with ES6 collections _(PRs: [#763](https://togithub.com/chaijs/chai/issues/763), [#812](https://togithub.com/chaijs/chai/issues/812), [#814](https://togithub.com/chaijs/chai/issues/814))_ Please notice that this assertion will throw an error when it is passed a `WeakMap` or `WeakSet`. ```js expect(new Set()).to.be.empty; expect(new Map()).to.be.empty; // The examples below will throw a TypeError: expect(new WeakSet()).to.be.empty; expect(new WeakMap()).to.be.empty; ``` - Add script that registers `should` as a side-effect. This change allows you to register `should` via a mocha option by using: `mocha spec.js -r chai/register-should` and also allows you to register the testing style globally. _(Issues: [#693](https://togithub.com/chaijs/chai/issues/693), PRs: [#868](https://togithub.com/chaijs/chai/issues/868))_ ```js require('chai/register-should'); // Using Should style ``` - Add script that registers `assert` as a side-effect. This change allows you to register `assert` via a mocha option by using: `mocha spec.js -r chai/register-assert` _(Issues: [#693](https://togithub.com/chaijs/chai/issues/693), PRs: [#868](https://togithub.com/chaijs/chai/issues/868), [#872](https://togithub.com/chaijs/chai/issues/872))_ ```js require('chai/register-assert'); // Using Assert style ``` - Add script that registers `expect` as a side-effect. This change allows you to register `expect` via a mocha option by using: `mocha spec.js -r chai/register-expect` _(Issues: [#693](https://togithub.com/chaijs/chai/issues/693), PRs: [#868](https://togithub.com/chaijs/chai/issues/868), [#872](https://togithub.com/chaijs/chai/issues/872))_ ```js require('chai/register-expect'); // Using Expect style ``` - When the `length` assertion is chained directly off of an uninvoked method, it references `function`'s built-in `length` property instead of Chai's `length` assertion. This commit adds a guard to Chai methods to detect this problem and throw a helpful error message that advises the user on how to correct it. _(Issues: [#684](https://togithub.com/chaijs/chai/issues/684), [#841](https://togithub.com/chaijs/chai/issues/841), PRs: [#897](https://togithub.com/chaijs/chai/issues/897))_ - Allows the `lockSsfi` flag to be set when creating new Assertion. This flag controls whether or not the given `ssfi` flag should retain its current value, even as assertions are chained off of this object. This is usually set to `true` when creating a new assertion from within another assertion. It's also temporarily set to `true` before an overwritten assertion gets called by the overwriting assertion. _(Issues: [#878](https://togithub.com/chaijs/chai/issues/878), [#904](https://togithub.com/chaijs/chai/issues/904), PRs: [#922](https://togithub.com/chaijs/chai/issues/922))_ ```js // This will lock the stack stack function from this line on // The SSFI is the reference to the starting point for removing irrelevant frames from the stack trace new Assertion(obj, msg, ssfi, true).to.have.property('length') ``` - The `nestedInclude`, `deepNestedInclude`, `ownInclude` and `deepOwnInclude` assertions and there negated pairs were added to the `assert` interface. _(Issues: [#905](https://togithub.com/chaijs/chai/issues/905), PRs: [#964](https://togithub.com/chaijs/chai/issues/964))_ ```js // '[]' and '.' in property names can be escaped using double backslashes. assert.nestedInclude({'.a': {'b': 'x'}}, {'\\.a.[b]': 'x'}); assert.notNestedInclude({'.a': {'b': 'x'}}, {'\\.a.b': 'y'}); assert.deepNestedInclude({a: {b: [{x: 1}]}}, {'a.b[0]': {x: 1}}); assert.notDeepNestedInclude({a: {b: [{x: 1}]}}, {'a.b[0]': {y: 1}}); assert.ownInclude({ a: 1 }, { a: 1 }); assert.notOwnInclude({ a: 1 }, { b: 2 }); assert.deepOwnInclude({a: {b: 2}}, {a: {b: 2}}); assert.notDeepOwnInclude({a: {b: 2}}, {a: {c: 3}}); ``` ### Bug Fixes - Fix missing msg argument for change related assertions. _(Related Issues: None, PRs: [#606](https://togithub.com/chaijs/chai/issues/606))_ - The addMethod function returns a new assertion with flags copied over instead of `this`. _(Related Issues: [#562](https://togithub.com/chaijs/chai/issues/562), [#684](https://togithub.com/chaijs/chai/issues/684), [#723](https://togithub.com/chaijs/chai/issues/723), PRs: [#642](https://togithub.com/chaijs/chai/issues/642), [#660](https://togithub.com/chaijs/chai/issues/660))_ - Fix stacktraces for overwritten properties and methods. _(Related Issues: [#659](https://togithub.com/chaijs/chai/issues/659), [#661](https://togithub.com/chaijs/chai/issues/661))_ - Fix bug when testing Symbol equality with should syntax. _(Related Issues: [#669](https://togithub.com/chaijs/chai/issues/669), PRs: [#672](https://togithub.com/chaijs/chai/issues/672))_ - Fix bug when asserting some valid ES6 keys. _(Related Issues: [#674](https://togithub.com/chaijs/chai/issues/674), PRs: [#676](https://togithub.com/chaijs/chai/issues/676))_ - Fix bug caused when custom inspect method is used and this method calls stylize. _(PRs: [#680](https://togithub.com/chaijs/chai/issues/680))_ - Fix ownProperty on objects with no prototype. _(Related Issues: [#688](https://togithub.com/chaijs/chai/issues/688), PRs: [#689](https://togithub.com/chaijs/chai/issues/689))_ - Fix swapped expected and actual results for the `.members` assertion. _(Related Issues: [#511](https://togithub.com/chaijs/chai/issues/511), PRs: [#702](https://togithub.com/chaijs/chai/issues/702))_ - Fix `same.members` to properly handle duplicates by treating each one as a unique member. _(Related Issues: [#590](https://togithub.com/chaijs/chai/issues/590), PRs: [#739](https://togithub.com/chaijs/chai/issues/739))_ - Fix deep.have.same.members() that was not printing a diff. _(PRs: [#509](https://togithub.com/chaijs/chai/issues/509))_ - Diff will be shown for assert's equal and notEqual methods. _(Related Issues: [#790](https://togithub.com/chaijs/chai/issues/790), PRs: [#794](https://togithub.com/chaijs/chai/issues/794))_ - The `overwriteMethod`, `overwriteProperty`, `addChainableMethod`, `overwriteChainableMethod` functions will return new assertion with flags copied over instead of this. _(Related Issues: [#562](https://togithub.com/chaijs/chai/issues/562), [#642](https://togithub.com/chaijs/chai/issues/642), [#791](https://togithub.com/chaijs/chai/issues/791), PRs: [#799](https://togithub.com/chaijs/chai/issues/799))_ - Proxy-related implementation frames were showing up in the stack traces for failed property assertions. Now we remove them by setting the proxy getter (instead of the property getter) as the starting point to remove all implementation frames. _(PRs: [#884](https://togithub.com/chaijs/chai/issues/884))_ - Negated `keys` assertions will now consider size of sets. _(Related Issues: [#919](https://togithub.com/chaijs/chai/issues/919), PRs: [#924](https://togithub.com/chaijs/chai/issues/924))_ - Whenever passed something that is not an instance of a function, the instanceof assertion will now throw an error informing the user that he should pass a constructor to this assertion, but instead he has passedeslint/eslint
### [`v5.15.2`](https://togithub.com/eslint/eslint/releases/v5.15.2) [Compare Source](https://togithub.com/eslint/eslint/compare/v5.15.1...v5.15.2) - [`29dbca7`](https://togithub.com/eslint/eslint/commit/29dbca73d762a809adb2f457b527e144426d54a7) Fix: implicit-arrow-linebreak adds extra characters (fixes [#11268](https://togithub.com/eslint/eslint/issues/11268)) ([#11407](https://togithub.com/eslint/eslint/issues/11407)) (Mark de Dios) - [`5d2083f`](https://togithub.com/eslint/eslint/commit/5d2083fa3e14c024197f6c386ff72237a145e258) Upgrade: eslint-scope@4.0.3 ([#11513](https://togithub.com/eslint/eslint/issues/11513)) (Teddy Katz) - [`a5dae7c`](https://togithub.com/eslint/eslint/commit/a5dae7c3d30231c2f5f075d98c2c8825899bab16) Fix: Empty glob pattern incorrectly expands to "/\*\*" ([#11476](https://togithub.com/eslint/eslint/issues/11476)) (Ben Chauvette) - [`448e8da`](https://togithub.com/eslint/eslint/commit/448e8da94d09b397e98ffcb6f22b55a578ef79c1) Chore: improve crash reporting (fixes [#11304](https://togithub.com/eslint/eslint/issues/11304)) ([#11463](https://togithub.com/eslint/eslint/issues/11463)) (Alex Zherdev) - [`0f56dc6`](https://togithub.com/eslint/eslint/commit/0f56dc6d9eadad05dc3d5c9d1d9ddef94e10c5d3) Chore: make config validator params more consistent ([#11435](https://togithub.com/eslint/eslint/issues/11435)) (薛定谔的猫) - [`d6c1122`](https://togithub.com/eslint/eslint/commit/d6c112289f0f16ade070865c8786831b7940ca79) Docs: Add working groups to maintainer guide ([#11400](https://togithub.com/eslint/eslint/issues/11400)) (Nicholas C. Zakas) - [`5fdb4d3`](https://togithub.com/eslint/eslint/commit/5fdb4d3fb01b9d8a4c2dff71ed9cddb2f8feefb0) Build: compile deps to ES5 when generating browser file (fixes [#11504](https://togithub.com/eslint/eslint/issues/11504)) ([#11505](https://togithub.com/eslint/eslint/issues/11505)) (Teddy Katz) - [`06fa165`](https://togithub.com/eslint/eslint/commit/06fa1655c3da8394ed9144d727115fc434b0416f) Build: update CI testing configuration ([#11500](https://togithub.com/eslint/eslint/issues/11500)) (Reece Dunham) - [`956e883`](https://togithub.com/eslint/eslint/commit/956e883c21fd9f393bf6718d032a4e2e53b33f22) Docs: Fix example in no-restricted-modules docs ([#11454](https://togithub.com/eslint/eslint/issues/11454)) (Paul O’Shannessy) - [`2c7431d`](https://togithub.com/eslint/eslint/commit/2c7431d6b32063f74e3837ee727f26af215eada7) Docs: fix json schema example dead link ([#11498](https://togithub.com/eslint/eslint/issues/11498)) (kazuya kawaguchi) - [`e7266c2`](https://togithub.com/eslint/eslint/commit/e7266c2478aff5d66e7859313feb49e3a129f85e) Docs: Fix invalid JSON in "Specifying Parser Options" ([#11492](https://togithub.com/eslint/eslint/issues/11492)) (Mihira Jayasekera) - [`6693161`](https://togithub.com/eslint/eslint/commit/6693161978a83e0730d5ea0fecdb627c5a2acdfd) Sponsors: Sync README with website (ESLint Jenkins) - [`62fee4a`](https://togithub.com/eslint/eslint/commit/62fee4a976897d158c8c137339728cd280333286) Chore: eslint-config-eslint enable comma-dangle functions: "never" ([#11434](https://togithub.com/eslint/eslint/issues/11434)) (薛定谔的猫) - [`34a5382`](https://togithub.com/eslint/eslint/commit/34a53829e7a63ff2f6b371d77ce283bbdd373b91) Build: copy bundled espree to website directory ([#11478](https://togithub.com/eslint/eslint/issues/11478)) (Pig Fang) - [`f078f9a`](https://togithub.com/eslint/eslint/commit/f078f9a9e094ec00c61a6ef1c9550d017631e69a) Chore: use "file:" dependencies for internal rules/config ([#11465](https://togithub.com/eslint/eslint/issues/11465)) (Teddy Katz) - [`0756128`](https://togithub.com/eslint/eslint/commit/075612871f85aa04cef8137bd32247e128ad600b) Docs: Add `visualstudio` to formatter list ([#11480](https://togithub.com/eslint/eslint/issues/11480)) (Patrick Eriksson) - [`44de9d7`](https://togithub.com/eslint/eslint/commit/44de9d7e1aa2fcae475a97b8f597b7d8094566b2) Docs: Fix typo in func-name-matching rule docs ([#11484](https://togithub.com/eslint/eslint/issues/11484)) (Iulian Onofrei) ### [`v5.15.1`](https://togithub.com/eslint/eslint/releases/v5.15.1) [Compare Source](https://togithub.com/eslint/eslint/compare/v5.15.0...v5.15.1) - [`fe1a892`](https://togithub.com/eslint/eslint/commit/fe1a892f85b09c3d2fea05bef011530a678a6af5) Build: bundle espree (fixes [eslint/eslint.github.io#546](https://togithub.com/eslint/eslint.github.io/issues/546)) ([#11467](https://togithub.com/eslint/eslint/issues/11467)) (薛定谔的猫) - [`458053b`](https://togithub.com/eslint/eslint/commit/458053b0b541f857bf233dacbde5ba80681820f8) Fix: avoid creating invalid regex in no-warning-comments (fixes [#11471](https://togithub.com/eslint/eslint/issues/11471)) ([#11472](https://togithub.com/eslint/eslint/issues/11472)) (Teddy Katz) ### [`v5.15.0`](https://togithub.com/eslint/eslint/releases/v5.15.0) [Compare Source](https://togithub.com/eslint/eslint/compare/v5.14.1...v5.15.0) - [`4088c6c`](https://togithub.com/eslint/eslint/commit/4088c6c9d4578cd581ce8ff4385d90b58a75b755) Build: Remove path.resolve in webpack build ([#11462](https://togithub.com/eslint/eslint/issues/11462)) (Kevin Partington) - [`ec59ec0`](https://togithub.com/eslint/eslint/commit/ec59ec09c8d001b8c04f9edc09994e2b0d0af0f9) New: add rule "prefer-named-capture-group" (fixes [#11381](https://togithub.com/eslint/eslint/issues/11381)) ([#11392](https://togithub.com/eslint/eslint/issues/11392)) (Pig Fang) - [`a44f750`](https://togithub.com/eslint/eslint/commit/a44f75073306e5ea4e6722654009a99884fbca4f) Upgrade: eslint-scope@4.0.2 ([#11461](https://togithub.com/eslint/eslint/issues/11461)) (Teddy Katz) - [`d3ce611`](https://togithub.com/eslint/eslint/commit/d3ce611e1c705440ccbcae357f2194134d026541) Sponsors: Sync README with website (ESLint Jenkins) - [`ee88475`](https://togithub.com/eslint/eslint/commit/ee884754e4111e11994ff0df3f0c29e43e1dc3f2) Chore: add utils for rule tests ([#11453](https://togithub.com/eslint/eslint/issues/11453)) (薛定谔的猫) - [`d4824e4`](https://togithub.com/eslint/eslint/commit/d4824e46d7a6ca1618454d3c6198403382108123) Sponsors: Sync README with website (ESLint Jenkins) - [`6489518`](https://togithub.com/eslint/eslint/commit/64895185bde5233223648bcaf46f8deb72c9fb55) Fix: no-extra-parens crash when code is "((let))" ([#11444](https://togithub.com/eslint/eslint/issues/11444)) (Teddy Katz) - [`9d20de2`](https://togithub.com/eslint/eslint/commit/9d20de2b0ac756bd62888119b8e08c7441d8a5aa) Sponsors: Sync README with website (ESLint Jenkins) - [`3f14de4`](https://togithub.com/eslint/eslint/commit/3f14de458ba120e9c013f5fc7c6fe3e9b40c1460) Sponsors: Sync README with website (ESLint Jenkins) - [`3d6c770`](https://togithub.com/eslint/eslint/commit/3d6c7709d47e047b25d91ca1a77d6dab92313061) Sponsors: Sync README with website (ESLint Jenkins) - [`de5cbc5`](https://togithub.com/eslint/eslint/commit/de5cbc526b30405e742b35d85d04361529d49ed4) Update: remove invalid defaults from core rules (fixes [#11415](https://togithub.com/eslint/eslint/issues/11415)) ([#11427](https://togithub.com/eslint/eslint/issues/11427)) (Teddy Katz) - [`eb0650b`](https://togithub.com/eslint/eslint/commit/eb0650ba20cf9f9ad78dbaccfeb7e0e7ab56e31d) Build: fix linting errors on master ([#11428](https://togithub.com/eslint/eslint/issues/11428)) (Teddy Katz) - [`5018378`](https://togithub.com/eslint/eslint/commit/5018378131fd5190bbccca902c0cf4276ee1581a) Chore: enable require-unicode-regexp on ESLint codebase ([#11422](https://togithub.com/eslint/eslint/issues/11422)) (Teddy Katz) - [`f6ba633`](https://togithub.com/eslint/eslint/commit/f6ba633f56eca6be20fc4b0d9496a78b9498d578) Chore: lint all files in the repo at the same time ([#11425](https://togithub.com/eslint/eslint/issues/11425)) (Teddy Katz) - [`8f3d717`](https://togithub.com/eslint/eslint/commit/8f3d71754932669332ad7623bcc4c1aef3897125) Docs: Add non-attending TSC member info ([#11411](https://togithub.com/eslint/eslint/issues/11411)) (Nicholas C. Zakas) - [`ce0777d`](https://togithub.com/eslint/eslint/commit/ce0777da5bc167fe0c529158fd8216d3eaf11565) Docs: use more common spelling ([#11417](https://togithub.com/eslint/eslint/issues/11417)) (薛定谔的猫) - [`b9aabe3`](https://togithub.com/eslint/eslint/commit/b9aabe34311f6189b87c9d8a1aa40f3513fed773) Chore: run fuzzer along with unit tests ([#11404](https://togithub.com/eslint/eslint/issues/11404)) (Teddy Katz) - [`db0c5e2`](https://togithub.com/eslint/eslint/commit/db0c5e2a7f894b7cda71007b0ba43d7814b3fb2e) Build: switch from browserify to webpack (fixes [#11366](https://togithub.com/eslint/eslint/issues/11366)) ([#11398](https://togithub.com/eslint/eslint/issues/11398)) (Pig Fang) ### [`v5.14.1`](https://togithub.com/eslint/eslint/releases/v5.14.1) [Compare Source](https://togithub.com/eslint/eslint/compare/v5.14.0...v5.14.1) - [`1d6e639`](https://togithub.com/eslint/eslint/commit/1d6e63930073e79e52890f552cc6e9a0646b7fb4) Fix: sort-keys throws Error at SpreadElement (fixes [#11402](https://togithub.com/eslint/eslint/issues/11402)) ([#11403](https://togithub.com/eslint/eslint/issues/11403)) (Krist Wongsuphasawat) ### [`v5.14.0`](https://togithub.com/eslint/eslint/releases/v5.14.0) [Compare Source](https://togithub.com/eslint/eslint/compare/v5.13.0...v5.14.0) - [`85a04b3`](https://togithub.com/eslint/eslint/commit/85a04b319e6dfde1458174cd1d8c9e7d33da0871) Fix: adds conditional for separateRequires in one-var (fixes [#10179](https://togithub.com/eslint/eslint/issues/10179)) ([#10980](https://togithub.com/eslint/eslint/issues/10980)) (Scott Stern) - [`0c02932`](https://togithub.com/eslint/eslint/commit/0c02932f1b2e2a85809e84617efa1b8836c19cfb) Upgrade: espree@5.0.1 ([#11401](https://togithub.com/eslint/eslint/issues/11401)) (Ilya Volodin) - [`104ae88`](https://togithub.com/eslint/eslint/commit/104ae881d0b21e9c64e006b2a2c21535cef0ad28) Docs: Update governance doc with reviewers status ([#11399](https://togithub.com/eslint/eslint/issues/11399)) (Nicholas C. Zakas) - [`ab8ac6a`](https://togithub.com/eslint/eslint/commit/ab8ac6adaaf7a88e160899e7f438a4cfd655eb6e) Fix: Support boundary spread elements in sort-keys ([#11158](https://togithub.com/eslint/eslint/issues/11158)) (Jakub Rożek) - [`a23d197`](https://togithub.com/eslint/eslint/commit/a23d1975d48841eafdead1a1357e2af842f688bc) New: add allowSingleLineBlocks opt. to padded-blocks rule (fixes [#7145](https://togithub.com/eslint/eslint/issues/7145)) ([#11243](https://togithub.com/eslint/eslint/issues/11243)) (richie3366) - [`e25e7aa`](https://togithub.com/eslint/eslint/commit/e25e7aa3ea1e8c9b3cd3242acda6d4a5572c2c6a) Fix: comma-spacing ignore comma before closing paren (fixes [#11295](https://togithub.com/eslint/eslint/issues/11295)) ([#11374](https://togithub.com/eslint/eslint/issues/11374)) (Pig Fang) - [`a1f7c44`](https://togithub.com/eslint/eslint/commit/a1f7c44ea9efbd9393889c1cc91b74260e0a8e02) Docs: fix space-before-blocks correct code for "classes": "never" ([#11391](https://togithub.com/eslint/eslint/issues/11391)) (PoziWorld) - [`14f58a2`](https://togithub.com/eslint/eslint/commit/14f58a2bec4d6aade0de22771c378b86b1e51959) Docs: fix grammar in object-curly-spacing docs ([#11389](https://togithub.com/eslint/eslint/issues/11389)) (PoziWorld) - [`d3e9a27`](https://togithub.com/eslint/eslint/commit/d3e9a27bbba30008a610df59e82b7192f0ecc3a3) Docs: fix grammar in “those who says” ([#11390](https://togithub.com/eslint/eslint/issues/11390)) (PoziWorld) - [`ea8e804`](https://togithub.com/eslint/eslint/commit/ea8e8045ba0e6c1e1015104346af962f3e16fd81) Docs: Add note about support for object spread (fixes [#11136](https://togithub.com/eslint/eslint/issues/11136)) ([#11395](https://togithub.com/eslint/eslint/issues/11395)) (Steven Thomas) - [`95aa3fd`](https://togithub.com/eslint/eslint/commit/95aa3fdb392d265e6c3d813d54076458e88e7ad8) Docs: Update README team and sponsors (ESLint Jenkins) - [`51c4972`](https://togithub.com/eslint/eslint/commit/51c497298a15ad296a2b1f8fc397df687976b836) Update: Behavior of --init (fixes [#11105](https://togithub.com/eslint/eslint/issues/11105)) ([#11332](https://togithub.com/eslint/eslint/issues/11332)) (Nicholas C. Zakas) - [`ad7a380`](https://togithub.com/eslint/eslint/commit/ad7a38097c32a91e5a831ef1bc8933601532576c) Docs: Update README team and sponsors (ESLint Jenkins) - [`550de1e`](https://togithub.com/eslint/eslint/commit/550de1e611a1e9af873bcb18d74cf2056e8d2e1b) Update: use `default` keyword in JSON schema (fixes [#9929](https://togithub.com/eslint/eslint/issues/9929)) ([#11288](https://togithub.com/eslint/eslint/issues/11288)) (Pig Fang) - [`983c520`](https://togithub.com/eslint/eslint/commit/983c5201210d7a4ffab0b3d05ab9919c0754e5ca) Update: Use 'readonly' and 'writable' for globals (fixes [#11359](https://togithub.com/eslint/eslint/issues/11359)) ([#11384](https://togithub.com/eslint/eslint/issues/11384)) (Nicholas C. Zakas) - [`f1d3a7e`](https://togithub.com/eslint/eslint/commit/f1d3a7ee7c82365989e219b1dae379f08f6dd526) Upgrade: some deps (fixes [#11372](https://togithub.com/eslint/eslint/issues/11372)) ([#11373](https://togithub.com/eslint/eslint/issues/11373)) (薛定谔的猫) - [`3e0c417`](https://togithub.com/eslint/eslint/commit/3e0c4176eff085498b813f8ba1732d7ed6ee44f8) Docs: Fix grammar in “there’s nothing prevent you” ([#11385](https://togithub.com/eslint/eslint/issues/11385)) (PoziWorld) - [`de988bc`](https://togithub.com/eslint/eslint/commit/de988bc909b491366ad0cd9bc83f4d6de42d041a) Docs: Fix grammar: Spacing improve -> Spacing improves ([#11386](https://togithub.com/eslint/eslint/issues/11386)) (PoziWorld) - [`1309dfd`](https://togithub.com/eslint/eslint/commit/1309dfdebb5595460b79dcac20df6a1f109e7566) Revert "Build: fix test failure on Node 11 ([#11100](https://togithub.com/eslint/eslint/issues/11100))" ([#11375](https://togithub.com/eslint/eslint/issues/11375)) (薛定谔的猫) - [`1e56897`](https://togithub.com/eslint/eslint/commit/1e56897db3e254e0aef6d2fe3274157fc379c79e) Docs: “the function actually use”: use -> uses ([#11380](https://togithub.com/eslint/eslint/issues/11380)) (PoziWorld) - [`5a71bc9`](https://togithub.com/eslint/eslint/commit/5a71bc95a7e961b1b1b77022645e0bd9cdd08dc0) Docs: Update README team and sponsors (ESLint Jenkins) - [`82a58ce`](https://togithub.com/eslint/eslint/commit/82a58ce26b282fd80335b3ac4fc88f21266c3ba1) Docs: Update README team and sponsors (ESLint Jenkins) - [`546d355`](https://togithub.com/eslint/eslint/commit/546d355ace65631e27de859baea3ffcc50e0ad2c) Docs: Update README with latest sponsors/team data ([#11378](https://togithub.com/eslint/eslint/issues/11378)) (Nicholas C. Zakas) - [`c0df9fe`](https://togithub.com/eslint/eslint/commit/c0df9febb7c7e045ababc10b88dbcbb3f28c724c) Docs: `...` is not an operator ([#11232](https://togithub.com/eslint/eslint/issues/11232)) (Felix Kling) - [`7ecfdef`](https://togithub.com/eslint/eslint/commit/7ecfdefaeadb772f8b96ffe37c4a2c97fde0da16) Docs: update typescript parser (refs [#11368](https://togithub.com/eslint/eslint/issues/11368)) ([#11369](https://togithub.com/eslint/eslint/issues/11369)) (薛定谔的猫) - [`3c90dd7`](https://togithub.com/eslint/eslint/commit/3c90dd7e25cf97833deddb11cfbc107a5663ac08) Update: remove prefer-spread autofix (fixes [#11330](https://togithub.com/eslint/eslint/issues/11330)) ([#11365](https://togithub.com/eslint/eslint/issues/11365)) (薛定谔的猫) - [`5eb3121`](https://togithub.com/eslint/eslint/commit/5eb3121b82c1837da0c3021b7d9384bb30832e36) Update: add fixer for `prefer-destructuring` (fixes [#11151](https://togithub.com/eslint/eslint/issues/11151)) ([#11301](https://togithub.com/eslint/eslint/issues/11301)) (golopot) - [`173eb38`](https://togithub.com/eslint/eslint/commit/173eb38cdb3e4673cba947521f27158828186d77) Docs: Clarify ecmaVersion doesn't imply globals (refs [#9812](https://togithub.com/eslint/eslint/issues/9812)) ([#11364](https://togithub.com/eslint/eslint/issues/11364)) (Keith Maxwell) - [`84ce72f`](https://togithub.com/eslint/eslint/commit/84ce72fdeba082b7b132e4ac6b714fb1a93831b7) Fix: Remove extraneous linefeeds in `one-var` fixer (fixes [#10741](https://togithub.com/eslint/eslint/issues/10741)) ([#10955](https://togithub.com/eslint/eslint/issues/10955)) (st-sloth) - [`389362a`](https://togithub.com/eslint/eslint/commit/389362a06ac6601512b872d3e843c7371f2a1bcc) Docs: clarify motivation for no-prototype-builtins ([#11356](https://togithub.com/eslint/eslint/issues/11356)) (Teddy Katz) - [`533d240`](https://togithub.com/eslint/eslint/commit/533d240b0811f663494cb213b06cc9e51e1ff2d0) Update: no-shadow-restricted-names lets unassigned vars shadow undefined ([#11341](https://togithub.com/eslint/eslint/issues/11341)) (Teddy Katz) - [`d0e823a`](https://togithub.com/eslint/eslint/commit/d0e823aef196a6564c87a78b72c1ef980ce67af9) Update: Make --init run js config files through linter (fixes [#9947](https://togithub.com/eslint/eslint/issues/9947)) ([#11337](https://togithub.com/eslint/eslint/issues/11337)) (Brian Kurek) - [`92fc2f4`](https://togithub.com/eslint/eslint/commit/92fc2f4f3faf8aeaae8a8e71db0de405404fb6c3) Fix: CircularJSON dependency warning (fixes [#11052](https://togithub.com/eslint/eslint/issues/11052)) ([#11314](https://togithub.com/eslint/eslint/issues/11314)) (Terry) - [`4dd19a3`](https://togithub.com/eslint/eslint/commit/4dd19a3c4c037adc860a65e96f2ba3eeccace1de) Docs: mention 'prefer-spread' in docs of 'no-useless-call' ([#11348](https://togithub.com/eslint/eslint/issues/11348)) (Klaus Meinhardt) - [`4fd83d5`](https://togithub.com/eslint/eslint/commit/4fd83d5ec47a6a7b81cd8801c3bd63d2Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "
rebase!
".:ghost: Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot. View repository job log here.