Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: reporting wrong number of tests in Dart #426

Merged
merged 3 commits into from
May 8, 2024
Merged

Conversation

dominicmh
Copy link
Contributor

@dominicmh dominicmh commented Apr 12, 2024

Fixes #319

According to the documentation of the TestDoneEvent, the hidden "tests" should be ignored:

The hidden attribute indicates that the test's result should be hidden and not
counted towards the total number of tests run for the suite. This is true for
virtual tests created for loading test suites, setUpAll(), and
tearDownAll(). Only successful tests will be hidden.

  • updated __tests__ to fail if hidden tests are counted toward total number of tests
  • filter out any "tests" if their TestDoneEvent has hidden flag set to true
  • cross-checked on a repo with ~2,500 tests

@dominicmh
Copy link
Contributor Author

Is there any chance this gets reviewed anytime soon, @jozefizso?

@jozefizso jozefizso self-assigned this May 8, 2024
@jozefizso
Copy link
Collaborator

Hi @dominicmh, thanks for notifying me. I reviewed the code and it looks good!

@jozefizso jozefizso added bug Something isn't working dart Pull requests that update Dart code labels May 8, 2024
@jozefizso jozefizso merged commit 477942d into dorny:main May 8, 2024
3 checks passed
@jozefizso jozefizso added this to the v1.9.1 milestone May 8, 2024
artemrys referenced this pull request in splunk/addonfactory-workflow-addon-release May 17, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/cache](https://togithub.com/actions/cache) | action | major |
`v3` -> `v4` |
| [actions/checkout](https://togithub.com/actions/checkout) | action |
major | `v3` -> `v4` |
|
[actions/download-artifact](https://togithub.com/actions/download-artifact)
| action | major | `v3` -> `v4` |
|
[actions/upload-artifact](https://togithub.com/actions/upload-artifact)
| action | major | `v3` -> `v4` |
|
[amannn/action-semantic-pull-request](https://togithub.com/amannn/action-semantic-pull-request)
| action | minor | `v5.4.0` -> `v5.5.2` |
|
[aws-actions/configure-aws-credentials](https://togithub.com/aws-actions/configure-aws-credentials)
| action | major | `v3` -> `v4` |
| [dorny/test-reporter](https://togithub.com/dorny/test-reporter) |
action | minor | `v1.7.0` -> `v1.9.1` |
| ghcr.io/splunk/workflow-engine-base | container | major | `2.0.12` ->
`3.0.0` |

---

### Release Notes

<details>
<summary>actions/cache (actions/cache)</summary>

### [`v4`](https://togithub.com/actions/cache/compare/v3...v4)

[Compare Source](https://togithub.com/actions/cache/compare/v3...v4)

</details>

<details>
<summary>actions/checkout (actions/checkout)</summary>

###
[`v4`](https://togithub.com/actions/checkout/blob/HEAD/CHANGELOG.md#v400)

[Compare Source](https://togithub.com/actions/checkout/compare/v3...v4)

- [Support fetching without the --progress
option](https://togithub.com/actions/checkout/pull/1067)
-   [Update to node20](https://togithub.com/actions/checkout/pull/1436)

</details>

<details>
<summary>actions/download-artifact (actions/download-artifact)</summary>

###
[`v4`](https://togithub.com/actions/download-artifact/compare/v3...v4)

[Compare
Source](https://togithub.com/actions/download-artifact/compare/v3...v4)

</details>

<details>
<summary>actions/upload-artifact (actions/upload-artifact)</summary>

### [`v4`](https://togithub.com/actions/upload-artifact/compare/v3...v4)

[Compare
Source](https://togithub.com/actions/upload-artifact/compare/v3...v4)

</details>

<details>
<summary>amannn/action-semantic-pull-request
(amannn/action-semantic-pull-request)</summary>

###
[`v5.5.2`](https://togithub.com/amannn/action-semantic-pull-request/releases/tag/v5.5.2)

[Compare
Source](https://togithub.com/amannn/action-semantic-pull-request/compare/v5.5.1...v5.5.2)

##### Bug Fixes

- Bump tar from 6.1.11 to 6.2.1
([#&#8203;262](https://togithub.com/amannn/action-semantic-pull-request/issues/262)
by [@&#8203;EelcoLos](https://togithub.com/EelcoLos))
([9a90d5a](https://togithub.com/amannn/action-semantic-pull-request/commit/9a90d5a5ac979326e3bb9272750cdd4f192ce24a))

###
[`v5.5.1`](https://togithub.com/amannn/action-semantic-pull-request/releases/tag/v5.5.1)

[Compare
Source](https://togithub.com/amannn/action-semantic-pull-request/compare/v5.5.0...v5.5.1)

##### Bug Fixes

- Bump ip from 2.0.0 to 2.0.1
([#&#8203;263](https://togithub.com/amannn/action-semantic-pull-request/issues/263)
by [@&#8203;EelcoLos](https://togithub.com/EelcoLos))
([5e7e9ac](https://togithub.com/amannn/action-semantic-pull-request/commit/5e7e9acca3ddc6a9d7b640fe1f905c4fff131f4a))

###
[`v5.5.0`](https://togithub.com/amannn/action-semantic-pull-request/releases/tag/v5.5.0)

[Compare
Source](https://togithub.com/amannn/action-semantic-pull-request/compare/v5.4.0...v5.5.0)

##### Features

- Add outputs for `type`, `scope` and `subject`
([#&#8203;261](https://togithub.com/amannn/action-semantic-pull-request/issues/261)
by [@&#8203;bcaurel](https://togithub.com/bcaurel))
([b05f5f6](https://togithub.com/amannn/action-semantic-pull-request/commit/b05f5f6423ef5cdfc7fdff00c4c10dd9a4f54aff))

</details>

<details>
<summary>aws-actions/configure-aws-credentials
(aws-actions/configure-aws-credentials)</summary>

###
[`v4`](https://togithub.com/aws-actions/configure-aws-credentials/releases/tag/v4)

[Compare
Source](https://togithub.com/aws-actions/configure-aws-credentials/compare/v3...v4)

This tag tracks the latest v4.x.x release

</details>

<details>
<summary>dorny/test-reporter (dorny/test-reporter)</summary>

###
[`v1.9.1`](https://togithub.com/dorny/test-reporter/releases/tag/v1.9.1)

[Compare
Source](https://togithub.com/dorny/test-reporter/compare/v1.9.0...v1.9.1)

#### What's Changed

- fix: reporting wrong number of tests in Dart by
[@&#8203;dominicmh](https://togithub.com/dominicmh) in
[https://github.com/dorny/test-reporter/pull/426](https://togithub.com/dorny/test-reporter/pull/426)
- Fix problematic retransmission of authentication token (alternative
solution) by [@&#8203;JojOatXGME](https://togithub.com/JojOatXGME) in
[https://github.com/dorny/test-reporter/pull/438](https://togithub.com/dorny/test-reporter/pull/438)
- Update development dependencies by
[@&#8203;jozefizso](https://togithub.com/jozefizso) in
[https://github.com/dorny/test-reporter/pull/442](https://togithub.com/dorny/test-reporter/pull/442)

#### New Contributors

- [@&#8203;dominicmh](https://togithub.com/dominicmh) made their first
contribution in
[https://github.com/dorny/test-reporter/pull/426](https://togithub.com/dorny/test-reporter/pull/426)
- [@&#8203;JojOatXGME](https://togithub.com/JojOatXGME) made their first
contribution in
[https://github.com/dorny/test-reporter/pull/438](https://togithub.com/dorny/test-reporter/pull/438)

**Full Changelog**:
dorny/test-reporter@v1.9.0...v1.9.1

###
[`v1.9.0`](https://togithub.com/dorny/test-reporter/releases/tag/v1.9.0)

[Compare
Source](https://togithub.com/dorny/test-reporter/compare/v1.8.0...v1.9.0)

#### What's Changed

##### Features

- Add support for the `rspec-json` format
[#&#8203;398](https://togithub.com/dorny/test-reporter/issues/398)
- Updated packages
[#&#8203;405](https://togithub.com/dorny/test-reporter/issues/405)

#### Contributors

- [@&#8203;oscarmampel](https://togithub.com/oscarmampel) made their
contribution in
[#&#8203;398](https://togithub.com/dorny/test-reporter/issues/398)

**Full Changelog**:
dorny/test-reporter@v1.8.0...v1.9.0

###
[`v1.8.0`](https://togithub.com/dorny/test-reporter/releases/tag/v1.8.0)

[Compare
Source](https://togithub.com/dorny/test-reporter/compare/v1.7.0...v1.8.0)

##### What's Changed

- CHANGELOG.md by [@&#8203;j-catania](https://togithub.com/j-catania) in
[https://github.com/dorny/test-reporter/pull/297](https://togithub.com/dorny/test-reporter/pull/297)
- Bump [@&#8203;babel/traverse](https://togithub.com/babel/traverse)
from 7.12.1 to 7.23.2 in /reports/jest by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/dorny/test-reporter/pull/303](https://togithub.com/dorny/test-reporter/pull/303)
- Bump [@&#8203;babel/traverse](https://togithub.com/babel/traverse)
from 7.22.20 to 7.23.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/dorny/test-reporter/pull/304](https://togithub.com/dorny/test-reporter/pull/304)
- Add `SwiftXunitParser` class based on `JavaJunitParser` for
`swift-xunit` reporter by
[@&#8203;jozefizso](https://togithub.com/jozefizso) in
[https://github.com/dorny/test-reporter/pull/317](https://togithub.com/dorny/test-reporter/pull/317)
- Update to Node20 by
[@&#8203;j-catania](https://togithub.com/j-catania) in
[https://github.com/dorny/test-reporter/pull/315](https://togithub.com/dorny/test-reporter/pull/315)
- Fix build error by [@&#8203;dorny](https://togithub.com/dorny) in
[https://github.com/dorny/test-reporter/pull/331](https://togithub.com/dorny/test-reporter/pull/331)
- Use NodeJS 18 LTS as default runtime by
[@&#8203;jozefizso](https://togithub.com/jozefizso) in
[https://github.com/dorny/test-reporter/pull/332](https://togithub.com/dorny/test-reporter/pull/332)
- Update all packages by
[@&#8203;jozefizso](https://togithub.com/jozefizso) in
[https://github.com/dorny/test-reporter/pull/333](https://togithub.com/dorny/test-reporter/pull/333)
- Escape <> characters in suite name by
[@&#8203;wingyplus](https://togithub.com/wingyplus) in
[https://github.com/dorny/test-reporter/pull/236](https://togithub.com/dorny/test-reporter/pull/236)
- Adding feature and bug template by
[@&#8203;j-catania](https://togithub.com/j-catania) in
[https://github.com/dorny/test-reporter/pull/341](https://togithub.com/dorny/test-reporter/pull/341)
- Update check title and remove icon by
[@&#8203;ldaneliukas](https://togithub.com/ldaneliukas) in
[https://github.com/dorny/test-reporter/pull/144](https://togithub.com/dorny/test-reporter/pull/144)
- `test-reporter` release v1.8.0 by
[@&#8203;jozefizso](https://togithub.com/jozefizso) in
[https://github.com/dorny/test-reporter/pull/370](https://togithub.com/dorny/test-reporter/pull/370)

##### New Contributors

- [@&#8203;jozefizso](https://togithub.com/jozefizso) made their first
contribution in
[https://github.com/dorny/test-reporter/pull/317](https://togithub.com/dorny/test-reporter/pull/317)
- [@&#8203;wingyplus](https://togithub.com/wingyplus) made their first
contribution in
[https://github.com/dorny/test-reporter/pull/236](https://togithub.com/dorny/test-reporter/pull/236)
- [@&#8203;ldaneliukas](https://togithub.com/ldaneliukas) made their
first contribution in
[https://github.com/dorny/test-reporter/pull/144](https://togithub.com/dorny/test-reporter/pull/144)

**Full Changelog**:
dorny/test-reporter@v1.7.0...v1.8.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/splunk/addonfactory-workflow-addon-release).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjM2My41IiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
github-merge-queue bot referenced this pull request in AmadeusITGroup/otter Jun 5, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| [@microsoft/tsdoc](https://tsdoc.org/)
([source](https://togithub.com/microsoft/tsdoc/tree/HEAD/tsdoc)) |
[`~0.14.1` ->
`~0.15.0`](https://renovatebot.com/diffs/npm/@microsoft%2ftsdoc/0.14.2/0.15.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@microsoft%2ftsdoc/0.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@microsoft%2ftsdoc/0.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@microsoft%2ftsdoc/0.14.2/0.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@microsoft%2ftsdoc/0.14.2/0.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[@types/chrome](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/chrome)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome))
| [`^0.0.267` ->
`^0.0.268`](https://renovatebot.com/diffs/npm/@types%2fchrome/0.0.267/0.0.268)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fchrome/0.0.268?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fchrome/0.0.268?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fchrome/0.0.267/0.0.268?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fchrome/0.0.267/0.0.268?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [Azure/functions-action](https://togithub.com/Azure/functions-action)
| `v1.5.1` -> `v1.5.2` |
[![age](https://developer.mend.io/api/mc/badges/age/github-tags/Azure%2ffunctions-action/v1.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/Azure%2ffunctions-action/v1.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/Azure%2ffunctions-action/v1.5.1/v1.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/Azure%2ffunctions-action/v1.5.1/v1.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| action | patch |
| [actions/checkout](https://togithub.com/actions/checkout) | `v4.1.4`
-> `v4.1.6` |
[![age](https://developer.mend.io/api/mc/badges/age/github-tags/actions%2fcheckout/v4.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/actions%2fcheckout/v4.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/actions%2fcheckout/v4.1.4/v4.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/actions%2fcheckout/v4.1.4/v4.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| action | patch |
| [audit-types](https://togithub.com/quinnturner/audit-types) |
[`~0.5.6` ->
`~0.6.0`](https://renovatebot.com/diffs/npm/audit-types/0.5.6/0.6.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/audit-types/0.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/audit-types/0.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/audit-types/0.5.6/0.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/audit-types/0.5.6/0.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [audit-types](https://togithub.com/quinnturner/audit-types) |
[`~0.5.6` ->
`~0.6.0`](https://renovatebot.com/diffs/npm/audit-types/0.5.6/0.6.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/audit-types/0.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/audit-types/0.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/audit-types/0.5.6/0.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/audit-types/0.5.6/0.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [dorny/test-reporter](https://togithub.com/dorny/test-reporter) |
`v1.9.0` -> `v1.9.1` |
[![age](https://developer.mend.io/api/mc/badges/age/github-tags/dorny%2ftest-reporter/v1.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/dorny%2ftest-reporter/v1.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/dorny%2ftest-reporter/v1.9.0/v1.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/dorny%2ftest-reporter/v1.9.0/v1.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| action | patch |
| [esbuild](https://togithub.com/evanw/esbuild) | [`~0.20.0` ->
`~0.21.0`](https://renovatebot.com/diffs/npm/esbuild/0.20.2/0.21.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.21.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/esbuild/0.21.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/esbuild/0.20.2/0.21.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.20.2/0.21.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [esbuild](https://togithub.com/evanw/esbuild) | [`~0.20.0` ->
`~0.21.0`](https://renovatebot.com/diffs/npm/esbuild/0.20.2/0.21.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.21.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/esbuild/0.21.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/esbuild/0.20.2/0.21.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.20.2/0.21.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [github/codeql-action](https://togithub.com/github/codeql-action) |
`v2.25.3` -> `v2.25.8` |
[![age](https://developer.mend.io/api/mc/badges/age/github-tags/github%2fcodeql-action/v2.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/github%2fcodeql-action/v2.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/github%2fcodeql-action/v2.25.3/v2.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/github%2fcodeql-action/v2.25.3/v2.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| action | patch |
| [github/codeql-action](https://togithub.com/github/codeql-action) |
`v3.25.3` -> `v3.25.8` |
[![age](https://developer.mend.io/api/mc/badges/age/github-tags/github%2fcodeql-action/v3.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/github%2fcodeql-action/v3.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/github%2fcodeql-action/v3.25.3/v3.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/github%2fcodeql-action/v3.25.3/v3.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| action | patch |
| [ossf/scorecard-action](https://togithub.com/ossf/scorecard-action) |
`v2.3.1` -> `v2.3.3` |
[![age](https://developer.mend.io/api/mc/badges/age/github-tags/ossf%2fscorecard-action/v2.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/ossf%2fscorecard-action/v2.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/ossf%2fscorecard-action/v2.3.1/v2.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/ossf%2fscorecard-action/v2.3.1/v2.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| action | patch |
| [sass](https://togithub.com/sass/dart-sass) | [`~1.76.0` ->
`~1.77.0`](https://renovatebot.com/diffs/npm/sass/1.76.0/1.77.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/sass/1.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sass/1.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sass/1.76.0/1.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass/1.76.0/1.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| peerDependencies | minor |
| [sass](https://togithub.com/sass/dart-sass) | [`~1.76.0` ->
`~1.77.0`](https://renovatebot.com/diffs/npm/sass/1.76.0/1.77.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/sass/1.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sass/1.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sass/1.76.0/1.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass/1.76.0/1.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |

---

### Release Notes

<details>
<summary>microsoft/tsdoc (@&#8203;microsoft/tsdoc)</summary>

###
[`v0.15.0`](https://togithub.com/microsoft/tsdoc/blob/HEAD/tsdoc/CHANGELOG.md#0150)

Tue, 28 May 2024 21:34:19 GMT

##### Minor changes

-   Minor package cleanup.
-   Eliminate remaining const enums.

##### Patches

-   Update an image URL in the README.md file
-   Upgrade dev toolchain (Heft, Webpack, TypeScript)

</details>

<details>
<summary>Azure/functions-action (Azure/functions-action)</summary>

###
[`v1.5.2`](https://togithub.com/Azure/functions-action/releases/tag/v1.5.2)

[Compare
Source](https://togithub.com/Azure/functions-action/compare/v1.5.1...v1.5.2)

-   Updated from Node 16 to Node 20
-   Added support for Flex Consumption plan

</details>

<details>
<summary>actions/checkout (actions/checkout)</summary>

###
[`v4.1.6`](https://togithub.com/actions/checkout/blob/HEAD/CHANGELOG.md#v416)

[Compare
Source](https://togithub.com/actions/checkout/compare/v4.1.5...v4.1.6)

- Check platform to set archive extension appropriately by
[@&#8203;cory-miller](https://togithub.com/cory-miller) in
[https://github.com/actions/checkout/pull/1732](https://togithub.com/actions/checkout/pull/1732)

###
[`v4.1.5`](https://togithub.com/actions/checkout/releases/tag/v4.1.5)

[Compare
Source](https://togithub.com/actions/checkout/compare/v4.1.4...v4.1.5)

#### What's Changed

- Update NPM dependencies by
[@&#8203;cory-miller](https://togithub.com/cory-miller) in
[https://github.com/actions/checkout/pull/1703](https://togithub.com/actions/checkout/pull/1703)
- Bump github/codeql-action from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/actions/checkout/pull/1694](https://togithub.com/actions/checkout/pull/1694)
- Bump actions/setup-node from 1 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/actions/checkout/pull/1696](https://togithub.com/actions/checkout/pull/1696)
- Bump actions/upload-artifact from 2 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/actions/checkout/pull/1695](https://togithub.com/actions/checkout/pull/1695)
- README: Suggest `user.email` to be
`41898282+github-actions[bot]@&#8203;users.noreply.github.com` by
[@&#8203;cory-miller](https://togithub.com/cory-miller) in
[https://github.com/actions/checkout/pull/1707](https://togithub.com/actions/checkout/pull/1707)

**Full Changelog**:
actions/checkout@v4.1.4...v4.1.5

</details>

<details>
<summary>quinnturner/audit-types (audit-types)</summary>

###
[`v0.6.2`](https://togithub.com/quinnturner/audit-types/releases/tag/v0.6.2)

[Compare
Source](https://togithub.com/quinnturner/audit-types/compare/v0.6.1...v0.6.2)

##### What's Changed

- fix: serialization of Yarn 4 by
[@&#8203;quinnturner](https://togithub.com/quinnturner) in
[https://github.com/quinnturner/audit-types/pull/9](https://togithub.com/quinnturner/audit-types/pull/9)

**Full Changelog**:
quinnturner/audit-types@v0.6.1...v0.6.2

###
[`v0.6.1`](https://togithub.com/quinnturner/audit-types/releases/tag/v0.6.1)

[Compare
Source](https://togithub.com/quinnturner/audit-types/compare/v0.6.0...v0.6.1)

##### What's Changed

- Add support for Yarn NPM CLI types by
[@&#8203;quinnturner](https://togithub.com/quinnturner) in
[https://github.com/quinnturner/audit-types/pull/8](https://togithub.com/quinnturner/audit-types/pull/8)

**Full Changelog**:
quinnturner/audit-types@v0.6.0...v0.6.1

###
[`v0.6.0`](https://togithub.com/quinnturner/audit-types/releases/tag/v0.6.0)

[Compare
Source](https://togithub.com/quinnturner/audit-types/compare/v0.5.6...v0.6.0)

##### What's Changed

- BREAKING: Change name of YarnBerry to Yarn2And3 by
[@&#8203;quinnturner](https://togithub.com/quinnturner) in
[https://github.com/quinnturner/audit-types/pull/7](https://togithub.com/quinnturner/audit-types/pull/7)

**Full Changelog**:
quinnturner/audit-types@v0.5.6...v0.6.0

</details>

<details>
<summary>dorny/test-reporter (dorny/test-reporter)</summary>

###
[`v1.9.1`](https://togithub.com/dorny/test-reporter/releases/tag/v1.9.1)

[Compare
Source](https://togithub.com/dorny/test-reporter/compare/v1.9.0...v1.9.1)

##### What's Changed

- fix: reporting wrong number of tests in Dart by
[@&#8203;dominicmh](https://togithub.com/dominicmh) in
[https://github.com/dorny/test-reporter/pull/426](https://togithub.com/dorny/test-reporter/pull/426)
- Fix problematic retransmission of authentication token (alternative
solution) by [@&#8203;JojOatXGME](https://togithub.com/JojOatXGME) in
[https://github.com/dorny/test-reporter/pull/438](https://togithub.com/dorny/test-reporter/pull/438)
- Update development dependencies by
[@&#8203;jozefizso](https://togithub.com/jozefizso) in
[https://github.com/dorny/test-reporter/pull/442](https://togithub.com/dorny/test-reporter/pull/442)

##### New Contributors

- [@&#8203;dominicmh](https://togithub.com/dominicmh) made their first
contribution in
[https://github.com/dorny/test-reporter/pull/426](https://togithub.com/dorny/test-reporter/pull/426)
- [@&#8203;JojOatXGME](https://togithub.com/JojOatXGME) made their first
contribution in
[https://github.com/dorny/test-reporter/pull/438](https://togithub.com/dorny/test-reporter/pull/438)

**Full Changelog**:
dorny/test-reporter@v1.9.0...v1.9.1

</details>

<details>
<summary>evanw/esbuild (esbuild)</summary>

###
[`v0.21.4`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0214)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.21.3...v0.21.4)

- Update support for import assertions and import attributes in node
([#&#8203;3778](https://togithub.com/evanw/esbuild/issues/3778))

Import assertions (the `assert` keyword) have been removed from node
starting in v22.0.0. So esbuild will now strip them and generate a
warning with `--target=node22` or above:

▲ [WARNING] The "assert" keyword is not supported in the configured
target environment ("node22") [assert-to-with]

            example.mjs:1:40:
1 │ import json from "esbuild/package.json" assert { type: "json" }
                │                                         ~~~~~~
                ╵                                         with

          Did you mean to use "with" instead of "assert"?

Import attributes (the `with` keyword) have been backported to node 18
starting in v18.20.0. So esbuild will no longer strip them with
`--target=node18.N` if `N` is 20 or greater.

-   Fix `for await` transform when a label is present

This release fixes a bug where the `for await` transform, which wraps
the loop in a `try` statement, previously failed to also move the loop's
label into the `try` statement. This bug only affects code that uses
both of these features in combination. Here's an example of some
affected code:

    ```js
    // Original code
    async function test() {
      outer: for await (const x of [Promise.resolve([0, 1])]) {
        for (const y of x) if (y) break outer
        throw 'fail'
      }
    }

    // Old output (with --target=es6)
    function test() {
      return __async(this, null, function* () {
        outer: try {
for (var iter = __forAwait([Promise.resolve([0, 1])]), more, temp,
error; more = !(temp = yield iter.next()).done; more = false) {
            const x = temp.value;
            for (const y of x) if (y) break outer;
            throw "fail";
          }
        } catch (temp) {
          error = [temp];
        } finally {
          try {
            more && (temp = iter.return) && (yield temp.call(iter));
          } finally {
            if (error)
              throw error[0];
          }
        }
      });
    }

    // New output (with --target=es6)
    function test() {
      return __async(this, null, function* () {
        try {
outer: for (var iter = __forAwait([Promise.resolve([0, 1])]), more,
temp, error; more = !(temp = yield iter.next()).done; more = false) {
            const x = temp.value;
            for (const y of x) if (y) break outer;
            throw "fail";
          }
        } catch (temp) {
          error = [temp];
        } finally {
          try {
            more && (temp = iter.return) && (yield temp.call(iter));
          } finally {
            if (error)
              throw error[0];
          }
        }
      });
    }
    ```

- Do additional constant folding after cross-module enum inlining
([#&#8203;3416](https://togithub.com/evanw/esbuild/issues/3416),
[#&#8203;3425](https://togithub.com/evanw/esbuild/issues/3425))

This release adds a few more cases where esbuild does constant folding
after cross-module enum inlining.

    ```ts
    // Original code: enum.ts
    export enum Platform {
      WINDOWS = 'windows',
      MACOS = 'macos',
      LINUX = 'linux',
    }

    // Original code: main.ts
    import { Platform } from './enum';
    declare const PLATFORM: string;
    export function logPlatform() {
      if (PLATFORM == Platform.WINDOWS) console.log('Windows');
      else if (PLATFORM == Platform.MACOS) console.log('macOS');
      else if (PLATFORM == Platform.LINUX) console.log('Linux');
      else console.log('Other');
    }

// Old output (with --bundle '--define:PLATFORM="macos"' --minify
--format=esm)
function
n(){"windows"=="macos"?console.log("Windows"):"macos"=="macos"?console.log("macOS"):"linux"=="macos"?console.log("Linux"):console.log("Other")}export{n
as logPlatform};

// New output (with --bundle '--define:PLATFORM="macos"' --minify
--format=esm)
    function n(){console.log("macOS")}export{n as logPlatform};
    ```

- Pass import attributes to on-resolve plugins
([#&#8203;3384](https://togithub.com/evanw/esbuild/issues/3384),
[#&#8203;3639](https://togithub.com/evanw/esbuild/issues/3639),
[#&#8203;3646](https://togithub.com/evanw/esbuild/issues/3646))

With this release, on-resolve plugins will now have access to the import
attributes on the import via the `with` property of the arguments
object. This mirrors the `with` property of the arguments object that's
already passed to on-load plugins. In addition, you can now pass `with`
to the `resolve()` API call which will then forward that value on to all
relevant plugins. Here's an example of a plugin that can now be written:

    ```js
    const examplePlugin = {
      name: 'Example plugin',
      setup(build) {
        build.onResolve({ filter: /.*/ }, args => {
          if (args.with.type === 'external')
            return { external: true }
        })
      }
    }

    require('esbuild').build({
      stdin: {
        contents: `
          import foo from "./foo" with { type: "external" }
          foo()
        `,
      },
      bundle: true,
      format: 'esm',
      write: false,
      plugins: [examplePlugin],
    }).then(result => {
      console.log(result.outputFiles[0].text)
    })
    ```

- Formatting support for the `@position-try` rule
([#&#8203;3773](https://togithub.com/evanw/esbuild/issues/3773))

Chrome shipped this new CSS at-rule in version 125 as part of the [CSS
anchor positioning
API](https://developer.chrome.com/blog/anchor-positioning-api). With
this release, esbuild now knows to expect a declaration list inside of
the `@position-try` body block and will format it appropriately.

- Always allow internal string import and export aliases
([#&#8203;3343](https://togithub.com/evanw/esbuild/issues/3343))

Import and export names can be string literals in ES2022+. Previously
esbuild forbid any usage of these aliases when the target was below
ES2022. Starting with this release, esbuild will only forbid such usage
when the alias would otherwise end up in output as a string literal.
String literal aliases that are only used internally in the bundle and
are "compiled away" are no longer errors. This makes it possible to use
string literal aliases with esbuild's `inject` feature even when the
target is earlier than ES2022.

###
[`v0.21.3`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0213)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.21.2...v0.21.3)

- Implement the decorator metadata proposal
([#&#8203;3760](https://togithub.com/evanw/esbuild/issues/3760))

This release implements the [decorator metadata
proposal](https://togithub.com/tc39/proposal-decorator-metadata), which
is a sub-proposal of the [decorators
proposal](https://togithub.com/tc39/proposal-decorators). Microsoft
shipped the decorators proposal in [TypeScript
5.0](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#decorators)
and the decorator metadata proposal in [TypeScript
5.2](https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/#decorator-metadata),
so it's important that esbuild also supports both of these features.
Here's a quick example:

    ```js
    // Shim the "Symbol.metadata" symbol
    Symbol.metadata ??= Symbol('Symbol.metadata')

    const track = (_, context) => {
      (context.metadata.names ||= []).push(context.name)
    }

    class Foo {
      @&#8203;track foo = 1
      @&#8203;track bar = 2
    }

    // Prints ["foo", "bar"]
    console.log(Foo[Symbol.metadata].names)
    ```

    **⚠️ WARNING ⚠️**

This proposal has been marked as "stage 3" which means "recommended for
implementation". However, it's still a work in progress and isn't a part
of JavaScript yet, so keep in mind that any code that uses JavaScript
decorator metadata may need to be updated as the feature continues to
evolve. If/when that happens, I will update esbuild's implementation to
match the specification. I will not be supporting old versions of the
specification.

- Fix bundled decorators in derived classes
([#&#8203;3768](https://togithub.com/evanw/esbuild/issues/3768))

In certain cases, bundling code that uses decorators in a derived class
with a class body that references its own class name could previously
generate code that crashes at run-time due to an incorrect variable
name. This problem has been fixed. Here is an example of code that was
compiled incorrectly before this fix:

    ```js
    class Foo extends Object {
      @&#8203;(x => x) foo() {
        return Foo
      }
    }
    console.log(new Foo().foo())
    ```

- Fix `tsconfig.json` files inside symlinked directories
([#&#8203;3767](https://togithub.com/evanw/esbuild/issues/3767))

This release fixes an issue with a scenario involving a `tsconfig.json`
file that `extends` another file from within a symlinked directory that
uses the `paths` feature. In that case, the implicit `baseURL` value
should be based on the real path (i.e. after expanding all symbolic
links) instead of the original path. This was already done for other
files that esbuild resolves but was not yet done for `tsconfig.json`
because it's special-cased (the regular path resolver can't be used
because the information inside `tsconfig.json` is involved in path
resolution). Note that this fix no longer applies if the
`--preserve-symlinks` setting is enabled.

###
[`v0.21.2`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0212)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.21.1...v0.21.2)

- Correct `this` in field and accessor decorators
([#&#8203;3761](https://togithub.com/evanw/esbuild/issues/3761))

This release changes the value of `this` in initializers for class field
and accessor decorators from the module-level `this` value to the
appropriate `this` value for the decorated element (either the class or
the instance). It was previously incorrect due to lack of test coverage.
Here's an example of a decorator that doesn't work without this change:

    ```js
    const dec = () => function() { this.bar = true }
    class Foo { @&#8203;dec static foo }
    console.log(Foo.bar) // Should be "true"
    ```

- Allow `es2023` as a target environment
([#&#8203;3762](https://togithub.com/evanw/esbuild/issues/3762))

TypeScript recently [added
`es2023`](https://togithub.com/microsoft/TypeScript/pull/58140) as a
compilation target, so esbuild now supports this too. There is no
difference between a target of `es2022` and `es2023` as far as esbuild
is concerned since the 2023 edition of JavaScript doesn't introduce any
new syntax features.

###
[`v0.21.1`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0211)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.21.0...v0.21.1)

- Fix a regression with `--keep-names`
([#&#8203;3756](https://togithub.com/evanw/esbuild/issues/3756))

The previous release introduced a regression with the `--keep-names`
setting and object literals with `get`/`set` accessor methods, in which
case the generated code contained syntax errors. This release fixes the
regression:

    ```js
    // Original code
    x = { get y() {} }

    // Output from version 0.21.0 (with --keep-names)
    x = { get y: /* @&#8203;__PURE__ */ __name(function() {
    }, "y") };

    // Output from this version (with --keep-names)
    x = { get y() {
    } };
    ```

###
[`v0.21.0`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0210)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.20.2...v0.21.0)

This release doesn't contain any deliberately-breaking changes. However,
it contains a very complex new feature and while all of esbuild's tests
pass, I would not be surprised if an important edge case turns out to be
broken. So I'm releasing this as a breaking change release to avoid
causing any trouble. As usual, make sure to test your code when you
upgrade.

- Implement the JavaScript decorators proposal
([#&#8203;104](https://togithub.com/evanw/esbuild/issues/104))

With this release, esbuild now contains an implementation of the
upcoming [JavaScript decorators
proposal](https://togithub.com/tc39/proposal-decorators). This is the
same feature that shipped in [TypeScript
5.0](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#decorators)
and has been highly-requested on esbuild's issue tracker. You can read
more about them in that blog post and in this other (now slightly
outdated) extensive blog post here:
https://2ality.com/2022/10/javascript-decorators.html. Here's a quick
example:

    ```js
    const log = (fn, context) => function() {
      console.log(`before ${context.name}`)
      const it = fn.apply(this, arguments)
      console.log(`after ${context.name}`)
      return it
    }

    class Foo {
      @&#8203;log static foo() {
        console.log('in foo')
      }
    }

    // Logs "before foo", "in foo", "after foo"
    Foo.foo()
    ```

Note that this feature is different than the existing "TypeScript
experimental decorators" feature that esbuild already implements. It
uses similar syntax but behaves very differently, and the two are not
compatible (although it's sometimes possible to write decorators that
work with both). TypeScript experimental decorators will still be
supported by esbuild going forward as they have been around for a long
time, are very widely used, and let you do certain things that are not
possible with JavaScript decorators (such as decorating function
parameters). By default esbuild will parse and transform JavaScript
decorators, but you can tell esbuild to parse and transform TypeScript
experimental decorators instead by setting `"experimentalDecorators":
true` in your `tsconfig.json` file.

Probably at least half of the work for this feature went into creating a
test suite that exercises many of the proposal's edge cases:
https://github.com/evanw/decorator-tests. It has given me a reasonable
level of confidence that esbuild's initial implementation is acceptable.
However, I don't have access to a significant sample of real code that
uses JavaScript decorators. If you're currently using JavaScript
decorators in a real code base, please try out esbuild's implementation
and let me know if anything seems off.

    **⚠️ WARNING ⚠️**

This proposal has been in the works for a very long time (work began
around 10 years ago in 2014) and it is finally getting close to becoming
part of the JavaScript language. However, it's still a work in progress
and isn't a part of JavaScript yet, so keep in mind that any code that
uses JavaScript decorators may need to be updated as the feature
continues to evolve. The decorators proposal is pretty close to its
final form but it can and likely will undergo some small behavioral
adjustments before it ends up becoming a part of the standard. If/when
that happens, I will update esbuild's implementation to match the
specification. I will not be supporting old versions of the
specification.

-   Optimize the generated code for private methods

Previously when lowering private methods for old browsers, esbuild would
generate one `WeakSet` for each private method. This mirrors similar
logic for generating one `WeakSet` for each private field. Using a
separate `WeakMap` for private fields is necessary as their assignment
can be observable:

    ```js
    let it
    class Bar {
      constructor() {
        it = this
      }
    }
    class Foo extends Bar {
      #x = 1
      #y = null.foo
      static check() {
        console.log(#x in it, #y in it)
      }
    }
    try { new Foo } catch {}
    Foo.check()
    ```

This prints `true false` because this partially-initialized instance has
`#x` but not `#y`. In other words, it's not true that all class
instances will always have all of their private fields. However, the
assignment of private methods to a class instance is not observable. In
other words, it's true that all class instances will always have all of
their private methods. This means esbuild can lower private methods into
code where all methods share a single `WeakSet`, which is smaller,
faster, and uses less memory. Other JavaScript processing tools such as
the TypeScript compiler already make this optimization. Here's what this
change looks like:

    ```js
    // Original code
    class Foo {
      #x() { return this.#x() }
      #y() { return this.#y() }
      #z() { return this.#z() }
    }

    // Old output (--supported:class-private-method=false)
    var _x, x_fn, _y, y_fn, _z, z_fn;
    class Foo {
      constructor() {
        __privateAdd(this, _x);
        __privateAdd(this, _y);
        __privateAdd(this, _z);
      }
    }
    _x = new WeakSet();
    x_fn = function() {
      return __privateMethod(this, _x, x_fn).call(this);
    };
    _y = new WeakSet();
    y_fn = function() {
      return __privateMethod(this, _y, y_fn).call(this);
    };
    _z = new WeakSet();
    z_fn = function() {
      return __privateMethod(this, _z, z_fn).call(this);
    };

    // New output (--supported:class-private-method=false)
    var _Foo_instances, x_fn, y_fn, z_fn;
    class Foo {
      constructor() {
        __privateAdd(this, _Foo_instances);
      }
    }
    _Foo_instances = new WeakSet();
    x_fn = function() {
      return __privateMethod(this, _Foo_instances, x_fn).call(this);
    };
    y_fn = function() {
      return __privateMethod(this, _Foo_instances, y_fn).call(this);
    };
    z_fn = function() {
      return __privateMethod(this, _Foo_instances, z_fn).call(this);
    };
    ```

- Fix an obscure bug with lowering class members with computed property
keys

When class members that use newer syntax features are transformed for
older target environments, they sometimes need to be relocated. However,
care must be taken to not reorder any side effects caused by computed
property keys. For example, the following code must evaluate `a()` then
`b()` then `c()`:

    ```js
    class Foo {
      [a()]() {}
      [b()];
      static { c() }
    }
    ```

Previously esbuild did this by shifting the computed property key
*forward* to the next spot in the evaluation order. Classes evaluate all
computed keys first and then all static class elements, so if the last
computed key needs to be shifted, esbuild previously inserted a static
block at start of the class body, ensuring it came before all other
static class elements:

    ```js
    var _a;
    class Foo {
      constructor() {
        __publicField(this, _a);
      }
      static {
        _a = b();
      }
      [a()]() {
      }
      static {
        c();
      }
    }
    ```

However, this could cause esbuild to accidentally generate a syntax
error if the computed property key contains code that isn't allowed in a
static block, such as an `await` expression. With this release, esbuild
fixes this problem by shifting the computed property key *backward* to
the previous spot in the evaluation order instead, which may push it
into the `extends` clause or even before the class itself:

    ```js
    // Original code
    class Foo {
      [a()]() {}
      [await b()];
      static { c() }
    }

    // Old output (with --supported:class-field=false)
    var _a;
    class Foo {
      constructor() {
        __publicField(this, _a);
      }
      static {
        _a = await b();
      }
      [a()]() {
      }
      static {
        c();
      }
    }

    // New output (with --supported:class-field=false)
    var _a, _b;
    class Foo {
      constructor() {
        __publicField(this, _a);
      }
      [(_b = a(), _a = await b(), _b)]() {
      }
      static {
        c();
      }
    }
    ```

-   Fix some `--keep-names` edge cases

The [`NamedEvaluation` syntax-directed
operation](https://tc39.es/ecma262/#sec-runtime-semantics-namedevaluation)
in the JavaScript specification gives certain anonymous expressions a
`name` property depending on where they are in the syntax tree. For
example, the following initializers convey a `name` value:

    ```js
    var foo = function() {}
    var bar = class {}
    console.log(foo.name, bar.name)
    ```

When you enable esbuild's `--keep-names` setting, esbuild generates
additional code to represent this `NamedEvaluation` operation so that
the value of the `name` property persists even when the identifiers are
renamed (e.g. due to minification).

However, I recently learned that esbuild's implementation of
`NamedEvaluation` is missing a few cases. Specifically esbuild was
missing property definitions, class initializers, logical-assignment
operators. These cases should now all be handled:

    ```js
    var obj = { foo: function() {} }
    class Foo0 { foo = function() {} }
    class Foo1 { static foo = function() {} }
    class Foo2 { accessor foo = function() {} }
    class Foo3 { static accessor foo = function() {} }
    foo ||= function() {}
    foo &&= function() {}
    foo ??= function() {}
    ```

</details>

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v2.25.8`](https://togithub.com/github/codeql-action/compare/v2.25.7...v2.25.8)

[Compare
Source](https://togithub.com/github/codeql-action/compare/v2.25.7...v2.25.8)

###
[`v2.25.7`](https://togithub.com/github/codeql-action/compare/v2.25.6...v2.25.7)

[Compare
Source](https://togithub.com/github/codeql-action/compare/v2.25.6...v2.25.7)

###
[`v2.25.6`](https://togithub.com/github/codeql-action/compare/v2.25.5...v2.25.6)

[Compare
Source](https://togithub.com/github/codeql-action/compare/v2.25.5...v2.25.6)

###
[`v2.25.5`](https://togithub.com/github/codeql-action/compare/v2.25.4...v2.25.5)

[Compare
Source](https://togithub.com/github/codeql-action/compare/v2.25.4...v2.25.5)

###
[`v2.25.4`](https://togithub.com/github/codeql-action/compare/v2.25.3...v2.25.4)

[Compare
Source](https://togithub.com/github/codeql-action/compare/v2.25.3...v2.25.4)

</details>

<details>
<summary>ossf/scorecard-action (ossf/scorecard-action)</summary>

###
[`v2.3.3`](https://togithub.com/ossf/scorecard-action/releases/tag/v2.3.3)

[Compare
Source](https://togithub.com/ossf/scorecard-action/compare/v2.3.2...v2.3.3)

> \[!NOTE]\
> There is no v2.3.2 release as a step was skipped in the release
process. This was fixed and re-released under the v2.3.3 tag

#### What's Changed

- 🌱 Bump github.com/ossf/scorecard/v4 (v4.13.1) to
github.com/ossf/scorecard/v5 (v5.0.0-rc1) by
[@&#8203;spencerschrock](https://togithub.com/spencerschrock) in
[https://github.com/ossf/scorecard-action/pull/1366](https://togithub.com/ossf/scorecard-action/pull/1366)
- 🌱 Bump github.com/ossf/scorecard/v5 from v5.0.0-rc1 to
v5.0.0-rc2 by
[@&#8203;spencerschrock](https://togithub.com/spencerschrock) in
[https://github.com/ossf/scorecard-action/pull/1374](https://togithub.com/ossf/scorecard-action/pull/1374)
- 🌱 Bump github.com/ossf/scorecard/v5 from v5.0.0-rc2 to
v5.0.0-rc2.0.20240509182734-7ce860946928 by
[@&#8203;spencerschrock](https://togithub.com/spencerschrock) in
[https://github.com/ossf/scorecard-action/pull/1377](https://togithub.com/ossf/scorecard-action/pull/1377)

For a full changelist of what these include, see the
[v5.0.0-rc1](https://togithub.com/ossf/scorecard/releases/tag/v5.0.0-rc1)
and
[v5.0.0-rc2](https://togithub.com/ossf/scorecard/releases/tag/v5.0.0-rc2)
release notes.

##### Documentation

- 📖 Move token discussion out of main README. by
[@&#8203;spencerschrock](https://togithub.com/spencerschrock) in
[https://github.com/ossf/scorecard-action/pull/1279](https://togithub.com/ossf/scorecard-action/pull/1279)
- 📖 link to `ossf/scorecard` workflow instead of maintaining an
example by [@&#8203;spencerschrock](https://togithub.com/spencerschrock)
in
[https://github.com/ossf/scorecard-action/pull/1352](https://togithub.com/ossf/scorecard-action/pull/1352)
- 📖 update api links to new scorecard.dev site by
[@&#8203;spencerschrock](https://togithub.com/spencerschrock) in
[https://github.com/ossf/scorecard-action/pull/1376](https://togithub.com/ossf/scorecard-action/pull/1376)

**Full Changelog**:
ossf/scorecard-action@v2.3.1...v2.3.3

###
[`v2.3.2`](https://togithub.com/ossf/scorecard-action/compare/v2.3.1...v2.3.2)

[Compare
Source](https://togithub.com/ossf/scorecard-action/compare/v2.3.1...v2.3.2)

</details>

<details>
<summary>sass/dart-sass (sass)</summary>

###
[`v1.77.4`](https://togithub.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1774)

[Compare
Source](https://togithub.com/sass/dart-sass/compare/1.77.3...1.77.4)

##### Embedded Sass

- Support passing `Version` input for `fatalDeprecations` as string over
    embedded protocol.

- Fix a bug in the JS Embedded Host where `Version` could be incorrectly
accepted
as input for `silenceDeprecations` and `futureDeprecations` in pure JS.

###
[`v1.77.3`](https://togithub.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1773)

[Compare
Source](https://togithub.com/sass/dart-sass/compare/1.77.2...1.77.3)

##### Dart API

- `Deprecation.duplicateVariableFlags` has been deprecated and replaced
with
    `Deprecation.duplicateVarFlags` to make it consistent with the
`duplicate-var-flags` name used on the command line and in the JS API.

###
[`v1.77.2`](https://togithub.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1772)

[Compare
Source](https://togithub.com/sass/dart-sass/compare/1.77.1...1.77.2)

- Don't emit deprecation warnings for functions and mixins beginning
with `__`.

- Allow user-defined functions whose names begin with `_` and otherwise
look
    like vendor-prefixed functions with special CSS syntax.

##### Command-Line Interface

-   Properly handle the `--silence-deprecation` flag.

- Handle the `--fatal-deprecation` and `--future-deprecation` flags for
    `--interactive` mode.

###
[`v1.77.1`](https://togithub.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1771)

[Compare
Source](https://togithub.com/sass/dart-sass/compare/1.77.0...1.77.1)

-   Fix a crash that could come up with importers in certain contexts.

###
[`v1.77.0`](https://togithub.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1770)

[Compare
Source](https://togithub.com/sass/dart-sass/compare/1.76.0...1.77.0)

-   *Don't* throw errors for at-rules in keyframe blocks.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/AmadeusITGroup/otter).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working dart Pull requests that update Dart code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Number of completed tests mismatches passed/failed
2 participants