From 9eadbf1bffa58977b91c5b84f9afbcebc1d644a3 Mon Sep 17 00:00:00 2001 From: Steven Lambert <2433219+straker@users.noreply.github.com> Date: Tue, 30 Jul 2024 08:45:55 -0600 Subject: [PATCH 01/21] chore: merge master into develop (#4546) From 72e269f1e6d6039e70e614005f04ebfd3fe5aca5 Mon Sep 17 00:00:00 2001 From: Andre Wachsmuth Date: Tue, 30 Jul 2024 16:48:34 +0200 Subject: [PATCH 02/21] fix(axe.d.ts): add typings for preload options object (#4543) Adds the TypeScript typings for passing an object to the `preload` setting for `axe.run`, as documented here: https://www.deque.com/axe/core-documentation/api-documentation/#preload-configuration-details > Specifying an object ```js axe.run( { preload: { assets: ['cssom'], timeout: 50000 } }, (err, results) => { // ... } ); ``` Co-authored-by: Andre Wachsmuth --- axe.d.ts | 6 +++++- typings/axe-core/axe-core-tests.ts | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/axe.d.ts b/axe.d.ts index 5c4197a872..47bca29ff0 100644 --- a/axe.d.ts +++ b/axe.d.ts @@ -143,10 +143,14 @@ declare namespace axe { iframes?: boolean; elementRef?: boolean; frameWaitTime?: number; - preload?: boolean; + preload?: boolean | PreloadOptions; performanceTimer?: boolean; pingWaitTime?: number; } + interface PreloadOptions { + assets: string[]; + timeout?: number; + } interface AxeResults extends EnvironmentData { toolOptions: RunOptions; passes: Result[]; diff --git a/typings/axe-core/axe-core-tests.ts b/typings/axe-core/axe-core-tests.ts index 1b8a9fda60..43a1286ff0 100644 --- a/typings/axe-core/axe-core-tests.ts +++ b/typings/axe-core/axe-core-tests.ts @@ -35,6 +35,13 @@ axe.run( console.log(error || results); } ); +// axe.run preload: boolean +axe.run({ preload: false }); +axe.run({ preload: true }); +// axe.run preload: options +axe.run({ preload: { assets: ['cssom'] } }); +axe.run({ preload: { assets: ['cssom'], timeout: 50000 } }); + export async function runAsync() { await axe.run('main'); // Single selector await axe.run(['main']); // Array of one selector From a2833e17d2b4dadb3d74c41821809ef6b0106bec Mon Sep 17 00:00:00 2001 From: Dan Bjorge Date: Wed, 7 Aug 2024 16:40:31 -0400 Subject: [PATCH 03/21] test: add workaround for target-size test failure in Firefox 131 nightly (#4557) Refs: #4556 --- test/integration/rules/runner.js | 61 +++++++++++++++++--------------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/test/integration/rules/runner.js b/test/integration/rules/runner.js index 0110f03cd8..a1234ffeda 100644 --- a/test/integration/rules/runner.js +++ b/test/integration/rules/runner.js @@ -110,34 +110,39 @@ before(done => { fixture.innerHTML = testObj.content; waitForFrames(fixture, () => { - axe.run( - fixture, - { - /** - * The debug flag helps log errors in a fairly detailed fashion, - * when tests fail in webdriver - */ - debug: true, - performanceTimer: false, - runOnly: { type: 'rule', values: [ruleId] } - }, - (err, r) => { - // assert that there are no errors - if error exists a stack trace is logged. - const errStack = err && err.stack ? err.stack : ''; - assert.isNull(err, 'Error should be null. ' + errStack); - // assert that result is defined - assert.isDefined(r, 'Results are defined.'); - // assert that result has certain keys - assert.hasAnyKeys(r, ['incomplete', 'violations', 'passes']); - // assert incomplete(s) does not have error - r.incomplete.forEach(incomplete => { - assert.isUndefined(incomplete.error); - }); - // flatten results - results = flattenResult(r); - done(); - } - ); + // The setTimeout is a workaround for a Firefox bug. See: + // - https://github.com/dequelabs/axe-core/issues/4556 + // - https://bugzilla.mozilla.org/show_bug.cgi?id=1912115 + setTimeout(() => { + axe.run( + fixture, + { + /** + * The debug flag helps log errors in a fairly detailed fashion, + * when tests fail in webdriver + */ + debug: true, + performanceTimer: false, + runOnly: { type: 'rule', values: [ruleId] } + }, + (err, r) => { + // assert that there are no errors - if error exists a stack trace is logged. + const errStack = err && err.stack ? err.stack : ''; + assert.isNull(err, 'Error should be null. ' + errStack); + // assert that result is defined + assert.isDefined(r, 'Results are defined.'); + // assert that result has certain keys + assert.hasAnyKeys(r, ['incomplete', 'violations', 'passes']); + // assert incomplete(s) does not have error + r.incomplete.forEach(incomplete => { + assert.isUndefined(incomplete.error); + }); + // flatten results + results = flattenResult(r); + done(); + } + ); + }, 0); }); }); runTest(testObj, 'passes'); From cb801601c59c3aab09fc383515805a205f8309f6 Mon Sep 17 00:00:00 2001 From: Steven Lambert <2433219+straker@users.noreply.github.com> Date: Wed, 28 Aug 2024 08:27:31 -0600 Subject: [PATCH 04/21] docs: fix example tests (#4564) When I updated https://github.com/dequelabs/axe-core/pull/4548 to latest it caused the qunit tests to fail. Turns out that [qunitjs](https://www.npmjs.com/package/qunitjs) has been deprecated and is now called just `qunit`, and `grunt-contrib-qunit` [has issues](https://github.com/gruntjs/grunt-contrib-qunit/issues/209) if not using latest qunit. Once upgraded I was able to get the tests passing but only in headed mode. That was because puppeteer [is now headless by default](https://github.com/gruntjs/grunt-contrib-qunit/blob/main/docs/qunit-options.md#puppeteer), so passing the `ignoreDefaultArgs` param and the `--headless` arg was causing the issue. `jest_react` was also failing and after trying to fix it with it's current dependencies @dbjorge suggested it would be better to just change it over to `@react/testing-library`. It also means we can support react 18 in the examples too. --- doc/examples/jest_react/jest.setup.js | 4 ---- doc/examples/jest_react/link.test.js | 12 ++++-------- doc/examples/jest_react/package.json | 22 +++++++++------------- doc/examples/qunit/Gruntfile.js | 7 +------ doc/examples/qunit/package.json | 8 ++++---- doc/examples/qunit/test/test.html | 4 ++-- 6 files changed, 20 insertions(+), 37 deletions(-) delete mode 100644 doc/examples/jest_react/jest.setup.js diff --git a/doc/examples/jest_react/jest.setup.js b/doc/examples/jest_react/jest.setup.js deleted file mode 100644 index c07c082506..0000000000 --- a/doc/examples/jest_react/jest.setup.js +++ /dev/null @@ -1,4 +0,0 @@ -const Enzyme = require('enzyme'); -const Adapter = require('@wojtekmaj/enzyme-adapter-react-17'); - -Enzyme.configure({ adapter: new Adapter() }); diff --git a/doc/examples/jest_react/link.test.js b/doc/examples/jest_react/link.test.js index d9bd25271f..3fafe01690 100644 --- a/doc/examples/jest_react/link.test.js +++ b/doc/examples/jest_react/link.test.js @@ -1,16 +1,12 @@ import React from 'react'; -import { mount, render } from 'enzyme'; +import { render } from '@testing-library/react'; import axe from 'axe-core'; import Link from './link'; test('Link has no axe violations', done => { - const fixture = document.createElement('div'); - document.body.appendChild(fixture); - - const linkComponent = mount( - axe website, - { attachTo: fixture } + const { container } = render( + axe website ); const config = { @@ -19,7 +15,7 @@ test('Link has no axe violations', done => { 'link-in-text-block': { enabled: false } } }; - axe.run(fixture, config, (err, { violations }) => { + axe.run(container, config, (err, { violations }) => { expect(err).toBe(null); expect(violations).toHaveLength(0); done(); diff --git a/doc/examples/jest_react/package.json b/doc/examples/jest_react/package.json index 0a67634b91..b4b104f089 100644 --- a/doc/examples/jest_react/package.json +++ b/doc/examples/jest_react/package.json @@ -12,20 +12,16 @@ "test": "jest" }, "devDependencies": { - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", - "axe-core": "^4.6.2", - "enzyme": "^3.11.0", - "jest": "^29.3.1", - "jest-environment-jsdom": "^29.3.1", - "react": "^17.0.2", - "react-dom": "^17.0.2" + "@babel/preset-env": "^7.25.3", + "@babel/preset-react": "^7.24.7", + "@testing-library/jest-dom": "^6.4.8", + "@testing-library/react": "^16.0.0", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "react": "^18.3.1", + "react-dom": "^18.3.1" }, "jest": { - "testEnvironment": "jsdom", - "setupFilesAfterEnv": [ - "/jest.setup.js" - ] + "testEnvironment": "jsdom" } } diff --git a/doc/examples/qunit/Gruntfile.js b/doc/examples/qunit/Gruntfile.js index bc50188c67..19c11eedf5 100644 --- a/doc/examples/qunit/Gruntfile.js +++ b/doc/examples/qunit/Gruntfile.js @@ -8,12 +8,7 @@ module.exports = function (grunt) { all: ['test/**/*.html'], options: { puppeteer: { - ignoreDefaultArgs: true, - args: [ - '--headless', - '--disable-web-security', - '--allow-file-access-from-files' - ] + args: ['--disable-web-security', '--allow-file-access-from-files'] }, timeout: 10000 } diff --git a/doc/examples/qunit/package.json b/doc/examples/qunit/package.json index 68c36555dc..4cd12bc766 100644 --- a/doc/examples/qunit/package.json +++ b/doc/examples/qunit/package.json @@ -13,9 +13,9 @@ }, "devDependencies": { "axe-core": "^4.6.2", - "grunt": "^1.5.3", - "grunt-contrib-qunit": "^5.1.1", - "puppeteer": "^19.5.0", - "qunitjs": "^2.0.1" + "grunt": "^1.6.1", + "grunt-contrib-qunit": "^10.1.1", + "puppeteer": "^23.1.0", + "qunit": "^2.22.0" } } diff --git a/doc/examples/qunit/test/test.html b/doc/examples/qunit/test/test.html index e7a3acbb5c..49c28f9f12 100644 --- a/doc/examples/qunit/test/test.html +++ b/doc/examples/qunit/test/test.html @@ -6,10 +6,10 @@ - + From 3534e7200926694f7455beb78f9deb1c286a4c43 Mon Sep 17 00:00:00 2001 From: Steven Lambert <2433219+straker@users.noreply.github.com> Date: Tue, 3 Sep 2024 10:00:56 -0600 Subject: [PATCH 05/21] test: ignore windowHeight in partialRun tests (#4571) This should fix the issue with the tests failing on`windowHeight` being different between two consecutive runs. I also added a deep axe-core results compare function that can do two significant things for us when comparing result objects. First it can ignore keys (like `timestamp`) so we don't have to always set it equal to each other in the tests. Second is that instead of dumping the entire result objects when a value is different this will output they key path and the values that are different which make debugging a lot easier. ``` Expected result.testEnvironment.windowHeight to equal "948" but got "896" ``` --- .../full/run-partial/after-method.js | 11 +-- .../run-partial/context-size-focusable.js | 11 +-- .../full/run-partial/page-level.js | 11 +-- test/testutils.js | 81 +++++++++++++++++++ 4 files changed, 99 insertions(+), 15 deletions(-) diff --git a/test/integration/full/run-partial/after-method.js b/test/integration/full/run-partial/after-method.js index 88fdfdd6fa..b2908ffcba 100644 --- a/test/integration/full/run-partial/after-method.js +++ b/test/integration/full/run-partial/after-method.js @@ -22,9 +22,9 @@ describe('run-partial, after-method', function () { var axeRunPartialResult = results[0]; var axeRunResult = results[1]; assert.lengthOf(axeRunPartialResult.violations, 0); - axeRunPartialResult.testEnvironment = axeRunResult.testEnvironment; - axeRunPartialResult.timestamp = axeRunResult.timestamp; - assert.deepEqual(axeRunPartialResult, axeRunResult); + axe.testUtils.resultsDeepEqual(axeRunPartialResult, axeRunResult, [ + 'testEnvironment' + ]); done(); }) .catch(done); @@ -51,8 +51,9 @@ describe('run-partial, after-method', function () { assert.lengthOf(nodes, 1); assert.deepEqual(nodes[0].target, ['#frame1', 'h3']); - axeRunPartialResult.timestamp = axeRunResult.timestamp; - assert.deepEqual(axeRunPartialResult, axeRunResult); + axe.testUtils.resultsDeepEqual(axeRunPartialResult, axeRunResult, [ + 'testEnvironment' + ]); done(); }) .catch(done); diff --git a/test/integration/full/run-partial/context-size-focusable.js b/test/integration/full/run-partial/context-size-focusable.js index 03c56ca095..b761b02c5e 100644 --- a/test/integration/full/run-partial/context-size-focusable.js +++ b/test/integration/full/run-partial/context-size-focusable.js @@ -25,9 +25,9 @@ describe('run-partial, context-size-focusable', function () { var axeRunPartialResult = results[0]; var axeRunResult = results[1]; assert.lengthOf(axeRunPartialResult.violations, 0); - axeRunPartialResult.testEnvironment = axeRunResult.testEnvironment; - axeRunPartialResult.timestamp = axeRunResult.timestamp; - assert.deepEqual(axeRunPartialResult, axeRunResult); + axe.testUtils.resultsDeepEqual(axeRunPartialResult, axeRunResult, [ + 'testEnvironment' + ]); done(); }) .catch(done); @@ -54,8 +54,9 @@ describe('run-partial, context-size-focusable', function () { assert.deepEqual(nodes[0].target, ['#fail1', 'html']); assert.deepEqual(nodes[1].target, ['#fail2', 'iframe', 'html']); - axeRunPartialResult.timestamp = axeRunResult.timestamp; - assert.deepEqual(axeRunPartialResult, axeRunResult); + axe.testUtils.resultsDeepEqual(axeRunPartialResult, axeRunResult, [ + 'testEnvironment' + ]); done(); }) .catch(done); diff --git a/test/integration/full/run-partial/page-level.js b/test/integration/full/run-partial/page-level.js index 589058efc2..2761211fb1 100644 --- a/test/integration/full/run-partial/page-level.js +++ b/test/integration/full/run-partial/page-level.js @@ -31,9 +31,9 @@ describe('run-partial, page-level', function () { var axeRunResult = results[1]; assert.lengthOf(axeRunPartialResult.incomplete, 0); assert.lengthOf(axeRunPartialResult.passes, 0); - axeRunPartialResult.timestamp = axeRunResult.timestamp; - axeRunPartialResult.testEnvironment = axeRunResult.testEnvironment; - assert.deepEqual(axeRunPartialResult, axeRunResult); + axe.testUtils.resultsDeepEqual(axeRunPartialResult, axeRunResult, [ + 'testEnvironment' + ]); done(); }) .catch(done); @@ -60,8 +60,9 @@ describe('run-partial, page-level', function () { assert.lengthOf(nodes, 1); assert.deepEqual(nodes[0].target, ['html']); - axeRunPartialResult.timestamp = axeRunResult.timestamp; - assert.deepEqual(axeRunPartialResult, axeRunResult); + axe.testUtils.resultsDeepEqual(axeRunPartialResult, axeRunResult, [ + 'testEnvironment' + ]); done(); }) .catch(done); diff --git a/test/testutils.js b/test/testutils.js index fe4d38fee0..634718a003 100644 --- a/test/testutils.js +++ b/test/testutils.js @@ -708,4 +708,85 @@ var commons; fixtureNode.appendChild(child.cloneNode(true)); } } + + testUtils.resultsDeepEqual = ( + obj1, + obj2, + ignoredPaths = [], + keyPath = 'result' + ) => { + // timestamp should always be ignored + if (keyPath === 'result') { + ignoredPaths.push('timestamp'); + } + + const typeObj1 = getType(obj1); + const typeObj2 = getType(obj2); + + axe.utils.assert( + typeObj1 === typeObj2, + `Expected type of ${keyPath} to equal ${typeObj1} but got ${typeObj2}` + ); + + if (typeObj1 === 'object') { + const res1Keys = Object.keys(obj1); + const res2Keys = Object.keys(obj2); + + axe.utils.assert( + res1Keys.length === res2Keys.length && + res1Keys.every(key => res2Keys.includes(key)), + `Expected ${keyPath} to have keys "${JSON.stringify(res1Keys)}" but got "${JSON.stringify(res2Keys)}"` + ); + + for (const key of res1Keys) { + if (ignoredPaths.includes(key)) { + continue; + } + + testUtils.resultsDeepEqual( + obj1[key], + obj2[key], + ignoredPaths, + `${keyPath}.${key}` + ); + } + } else if (typeObj1 === 'array') { + axe.utils.assert( + obj1.length === obj2.length, + `Expected ${keyPath} to have length of "${obj1.length}" but got "${obj2.length}"` + ); + + for (let i = 0; i < obj1.length; i++) { + testUtils.resultsDeepEqual( + obj1[i], + obj2[i], + ignoredPaths, + `${keyPath}[${i}]` + ); + } + } else { + axe.utils.assert( + obj1 === obj2, + `Expected ${keyPath} to equal "${obj1}" but got "${obj2}"` + ); + } + }; + + function isObject(obj) { + return obj && typeof obj === 'object' && !Array.isArray(obj); + } + + function getType(obj) { + if (isObject(obj)) { + return 'object'; + } + if (Array.isArray(obj)) { + return 'array'; + } + if (obj === null) { + return 'null'; + } + + return typeof obj; + } })(); From 8dd91f7726d035d4610106d3c063de47b9633466 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 10:12:58 -0600 Subject: [PATCH 06/21] chore: bump the npm-low-risk group across 1 directory with 18 updates (#4568) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the npm-low-risk group with 18 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@axe-core/webdriverjs](https://github.com/dequelabs/axe-core-npm) | `4.9.1` | `4.10.0` | | [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) | `7.24.7` | `7.25.2` | | [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) | `7.24.7` | `7.25.4` | | [@babel/runtime-corejs3](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime-corejs3) | `7.24.7` | `7.25.6` | | [chai](https://github.com/chaijs/chai) | `4.4.1` | `4.5.0` | | [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) | `3.37.1` | `3.38.1` | | [emoji-regex](https://github.com/mathiasbynens/emoji-regex) | `10.3.0` | `10.4.0` | | [eslint](https://github.com/eslint/eslint) | `9.6.0` | `9.9.1` | | [globals](https://github.com/sindresorhus/globals) | `15.7.0` | `15.9.0` | | [husky](https://github.com/typicode/husky) | `9.0.11` | `9.1.5` | | [karma](https://github.com/karma-runner/karma) | `6.4.3` | `6.4.4` | | [lint-staged](https://github.com/lint-staged/lint-staged) | `15.2.7` | `15.2.9` | | [mocha](https://github.com/mochajs/mocha) | `10.5.2` | `10.7.3` | | [prettier](https://github.com/prettier/prettier) | `3.3.2` | `3.3.3` | | [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.22.0` | `4.24.0` | | [start-server-and-test](https://github.com/bahmutov/start-server-and-test) | `2.0.4` | `2.0.5` | | [typescript](https://github.com/Microsoft/TypeScript) | `5.5.2` | `5.5.4` | | [uglify-js](https://github.com/mishoo/UglifyJS) | `3.18.0` | `3.19.3` | Updates `@axe-core/webdriverjs` from 4.9.1 to 4.10.0
Release notes

Sourced from @​axe-core/webdriverjs's releases.

Release 4.10.0

What's Changed

New Contributors

Full Changelog: https://github.com/dequelabs/axe-core-npm/compare/v4.9.1...v4.10.0

Changelog

Sourced from @​axe-core/webdriverjs's changelog.

4.10.0 (2024-08-16)

Bug Fixes

Features

Commits

Updates `@babel/core` from 7.24.7 to 7.25.2
Release notes

Sourced from @​babel/core's releases.

v7.25.2 (2024-07-30)

:bug: Bug Fix

Committers: 2

v7.25.1 (2024-07-28)

:bug: Bug Fix

  • babel-plugin-transform-function-name
  • babel-plugin-transform-react-constant-elements
    • #16582 fix plugin-transform-react-constant-elements transform JSXFrament but not add JSXExpressionContainer (@​keiseiTi)
  • babel-traverse

:house: Internal

Committers: 4

v7.25.0 (2024-07-26)

Thanks @​davidtaylorhq and @​slatereax for your first PR!

You can find the release blog post with some highlights at https://babeljs.io/blog/2024/07/26/7.25.0.

:eyeglasses: Spec Compliance

  • babel-helpers, babel-plugin-proposal-explicit-resource-management, babel-runtime-corejs3
  • babel-plugin-transform-typescript
    • #16602 Ensure enum members syntactically determinable to be strings do not get reverse mappings (@​liuxingbaoyu)

:rocket: New Feature

  • babel-helper-create-class-features-plugin, babel-helper-function-name, babel-helper-plugin-utils, babel-helper-wrap-function, babel-plugin-bugfix-safari-class-field-initializer-scope, babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression, babel-plugin-transform-classes, babel-plugin-transform-function-name, babel-preset-env, babel-traverse, babel-types
  • babel-helper-hoist-variables, babel-helper-plugin-utils, babel-plugin-proposal-async-do-expressions, babel-plugin-transform-modules-systemjs, babel-traverse
  • babel-helper-create-class-features-plugin, babel-helper-module-transforms, babel-helper-plugin-utils, babel-helper-split-export-declaration, babel-plugin-transform-classes, babel-traverse, babel-types
  • babel-helper-create-class-features-plugin, babel-helper-environment-visitor, babel-helper-module-transforms, babel-helper-plugin-utils, babel-helper-remap-async-to-generator, babel-helper-replace-supers, babel-plugin-bugfix-firefox-class-in-computed-class-key, babel-plugin-bugfix-v8-static-class-fields-redefine-readonly, babel-plugin-transform-async-generator-functions, babel-plugin-transform-classes, babel-traverse

... (truncated)

Changelog

Sourced from @​babel/core's changelog.

v7.25.2 (2024-07-30)

:bug: Bug Fix

v7.25.1 (2024-07-28)

:bug: Bug Fix

  • babel-plugin-transform-function-name
  • babel-plugin-transform-react-constant-elements
    • #16582 fix plugin-transform-react-constant-elements transform JSXFrament but not add JSXExpressionContainer (@​keiseiTi)
  • babel-traverse

:house: Internal

v7.25.0 (2024-07-26)

:eyeglasses: Spec Compliance

  • babel-helpers, babel-plugin-proposal-explicit-resource-management, babel-runtime-corejs3
  • babel-plugin-transform-typescript
    • #16602 Ensure enum members syntactically determinable to be strings do not get reverse mappings (@​liuxingbaoyu)

:rocket: New Feature

  • babel-helper-create-class-features-plugin, babel-helper-function-name, babel-helper-plugin-utils, babel-helper-wrap-function, babel-plugin-bugfix-safari-class-field-initializer-scope, babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression, babel-plugin-transform-classes, babel-plugin-transform-function-name, babel-preset-env, babel-traverse, babel-types
  • babel-helper-hoist-variables, babel-helper-plugin-utils, babel-plugin-proposal-async-do-expressions, babel-plugin-transform-modules-systemjs, babel-traverse
  • babel-helper-create-class-features-plugin, babel-helper-module-transforms, babel-helper-plugin-utils, babel-helper-split-export-declaration, babel-plugin-transform-classes, babel-traverse, babel-types
  • babel-helper-create-class-features-plugin, babel-helper-environment-visitor, babel-helper-module-transforms, babel-helper-plugin-utils, babel-helper-remap-async-to-generator, babel-helper-replace-supers, babel-plugin-bugfix-firefox-class-in-computed-class-key, babel-plugin-bugfix-v8-static-class-fields-redefine-readonly, babel-plugin-transform-async-generator-functions, babel-plugin-transform-classes, babel-traverse
  • babel-core, babel-parser
  • babel-compat-data, babel-plugin-bugfix-safari-class-field-initializer-scope, babel-preset-env
  • babel-plugin-transform-block-scoping, babel-traverse, babel-types
  • babel-helper-import-to-platform-api, babel-plugin-proposal-json-modules
  • babel-helper-transform-fixture-test-runner, babel-node
  • babel-compat-data, babel-helper-create-regexp-features-plugin, babel-plugin-proposal-duplicate-named-capturing-groups-regex, babel-plugin-transform-duplicate-named-capturing-groups-regex, babel-preset-env, babel-standalone

:bug: Bug Fix

... (truncated)

Commits

Updates `@babel/preset-env` from 7.24.7 to 7.25.4
Release notes

Sourced from @​babel/preset-env's releases.

v7.25.4 (2024-08-22)

:bug: Bug Fix

:nail_care: Polish

  • babel-generator, babel-plugin-proposal-decorators, babel-plugin-proposal-destructuring-private, babel-plugin-proposal-pipeline-operator, babel-plugin-transform-class-properties, babel-plugin-transform-destructuring, babel-plugin-transform-optional-chaining, babel-plugin-transform-private-methods, babel-plugin-transform-private-property-in-object, babel-plugin-transform-typescript, babel-runtime-corejs2, babel-runtime, babel-traverse
  • babel-generator, babel-plugin-transform-class-properties
  • babel-generator, babel-plugin-proposal-decorators, babel-plugin-proposal-destructuring-private, babel-plugin-transform-object-rest-spread

:microscope: Output optimization

Committers: 4

v7.25.3 (2024-07-31)

:bug: Bug Fix

  • babel-plugin-bugfix-firefox-class-in-computed-class-key, babel-traverse

:house: Internal

Committers: 2

v7.25.2 (2024-07-30)

:bug: Bug Fix

... (truncated)

Changelog

Sourced from @​babel/preset-env's changelog.

v7.25.4 (2024-08-22)

:bug: Bug Fix

:nail_care: Polish

  • babel-generator, babel-plugin-proposal-decorators, babel-plugin-proposal-destructuring-private, babel-plugin-proposal-pipeline-operator, babel-plugin-transform-class-properties, babel-plugin-transform-destructuring, babel-plugin-transform-optional-chaining, babel-plugin-transform-private-methods, babel-plugin-transform-private-property-in-object, babel-plugin-transform-typescript, babel-runtime-corejs2, babel-runtime, babel-traverse
  • babel-generator, babel-plugin-transform-class-properties
  • babel-generator, babel-plugin-proposal-decorators, babel-plugin-proposal-destructuring-private, babel-plugin-transform-object-rest-spread

:microscope: Output optimization

v7.25.3 (2024-07-31)

:bug: Bug Fix

  • babel-plugin-bugfix-firefox-class-in-computed-class-key, babel-traverse

:house: Internal

v7.25.2 (2024-07-30)

:bug: Bug Fix

v7.25.1 (2024-07-28)

:bug: Bug Fix

  • babel-plugin-transform-function-name
  • babel-plugin-transform-react-constant-elements
    • #16582 fix plugin-transform-react-constant-elements transform JSXFrament but not add JSXExpressionContainer (@​keiseiTi)
  • babel-traverse

:house: Internal

v7.25.0 (2024-07-26)

... (truncated)

Commits

Updates `@babel/runtime-corejs3` from 7.24.7 to 7.25.6
Release notes

Sourced from @​babel/runtime-corejs3's releases.

v7.25.6 (2024-08-29)

Thanks @​j4k0xb for your first PR!

:bug: Bug Fix

:nail_care: Polish

  • babel-generator, babel-plugin-transform-async-to-generator, babel-plugin-transform-block-scoping, babel-plugin-transform-class-properties, babel-plugin-transform-classes, babel-plugin-transform-duplicate-named-capturing-groups-regex, babel-plugin-transform-named-capturing-groups-regex, babel-plugin-transform-react-jsx-development, babel-plugin-transform-react-jsx, babel-plugin-transform-react-pure-annotations, babel-plugin-transform-regenerator, babel-plugin-transform-runtime, babel-preset-env
  • babel-plugin-syntax-import-assertions, babel-plugin-syntax-import-attributes
  • babel-generator

:house: Internal

Committers: 5

v7.25.5 (2024-08-23)

:bug: Bug Fix

  • babel-generator, babel-traverse

:nail_care: Polish

Committers: 2

v7.25.4 (2024-08-22)

... (truncated)

Changelog

Sourced from @​babel/runtime-corejs3's changelog.

v7.25.6 (2024-08-29)

:bug: Bug Fix

:nail_care: Polish

  • babel-generator, babel-plugin-transform-async-to-generator, babel-plugin-transform-block-scoping, babel-plugin-transform-class-properties, babel-plugin-transform-classes, babel-plugin-transform-duplicate-named-capturing-groups-regex, babel-plugin-transform-named-capturing-groups-regex, babel-plugin-transform-react-jsx-development, babel-plugin-transform-react-jsx, babel-plugin-transform-react-pure-annotations, babel-plugin-transform-regenerator, babel-plugin-transform-runtime, babel-preset-env
  • babel-plugin-syntax-import-assertions, babel-plugin-syntax-import-attributes
  • babel-generator

:house: Internal

v7.25.5 (2024-08-23)

:bug: Bug Fix

:nail_care: Polish

v7.25.4 (2024-08-22)

:bug: Bug Fix

:nail_care: Polish

  • babel-generator, babel-plugin-proposal-decorators, babel-plugin-proposal-destructuring-private, babel-plugin-proposal-pipeline-operator, babel-plugin-transform-class-properties, babel-plugin-transform-destructuring, babel-plugin-transform-optional-chaining, babel-plugin-transform-private-methods, babel-plugin-transform-private-property-in-object, babel-plugin-transform-typescript, babel-runtime-corejs2, babel-runtime, babel-traverse
  • babel-generator, babel-plugin-transform-class-properties

... (truncated)

Commits

Updates `chai` from 4.4.1 to 4.5.0
Release notes

Sourced from chai's releases.

v4.5.0

  • Update type detect (#1631) 1a36d35

https://github.com/chaijs/chai/compare/v4.4.1...v4.5.0

What's Changed

Full Changelog: https://github.com/chaijs/chai/compare/v4.4.1...v4.5.0

Commits

Updates `core-js` from 3.37.1 to 3.38.1
Changelog

Sourced from core-js's changelog.

3.38.1 - 2024.08.20
3.38.0 - 2024.08.05

... (truncated)

Commits
  • d1e7889 v3.38.1
  • 9294082 use self-compare NaN check
  • a79f40a Percent decode (#1361)
  • 85f3639 enable some eslint sonar rules
  • 5b69af0 use null instead of undefined as an empty placeholder in some cases
  • 9cc1d63 use git+ in pkg.repository.url of all packages
  • beccd4f enable some eslint sonar rules
  • b35e68e enable sonar/inconsistent-function-call
  • 4a322bf v3.38.0
  • 9408792 replace a regex with a simple comparison
  • Additional commits viewable in compare view

Updates `emoji-regex` from 10.3.0 to 10.4.0
Commits

Updates `eslint` from 9.6.0 to 9.9.1
Release notes

Sourced from eslint's releases.

v9.9.1

Bug Fixes

  • 9bde90c fix: add logic to handle fixTypes in lintText() (#18736) (Amaresh S M)

Documentation