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

Replace instanceof Message usages #729

Merged
merged 19 commits into from
Mar 2, 2024
Merged

Replace instanceof Message usages #729

merged 19 commits into from
Mar 2, 2024

Conversation

smaye81
Copy link
Member

@smaye81 smaye81 commented Feb 28, 2024

This replaces the usage of instanceof Message (and Message subclasses) with the new isMessage function. In addition, it adds some tests to verify behavior.

isMessage can be used to determine whether a given object is any subtype of Message or is a specific
Message by passing the type. It is recommended to use this instead of instanceof Message.

Example usage

import { isMessage } from "@bufbuild/protobuf";

const user = new User({
    firstName: "Homer",
});

isMessage(user);                    // true
isMessage(user, User);              // true
isMessage(user, OtherMessageType);  // false

View the full docs here.

Perf benchmarks:

// isMessage
large google.protobuf.FileDescriptorSet (1061190 bytes) x 60.52 ops/sec ±1.13% (63 runs sampled)
tiny docs.User (4 bytes) x 3,386,238 ops/sec ±0.19% (100 runs sampled)
scalar values (102 bytes) x 630,178 ops/sec ±0.19% (96 runs sampled)
repeated scalar fields (195 bytes) x 401,749 ops/sec ±0.19% (98 runs sampled)
map with scalar keys and values (186 bytes) x 225,122 ops/sec ±0.21% (100 runs sampled)
repeated field with 1000 messages (2000 bytes) x 7,154 ops/sec ±0.42% (96 runs sampled)
map field with 1000 messages (8890 bytes) x 3,594 ops/sec ±0.21% (98 runs sampled)
// main
large google.protobuf.FileDescriptorSet (1061190 bytes) x 60.74 ops/sec ±1.27% (64 runs sampled)
tiny docs.User (4 bytes) x 3,416,634 ops/sec ±0.24% (97 runs sampled)
scalar values (102 bytes) x 627,019 ops/sec ±0.23% (99 runs sampled)
repeated scalar fields (195 bytes) x 397,073 ops/sec ±1.53% (97 runs sampled)
map with scalar keys and values (186 bytes) x 224,147 ops/sec ±0.42% (98 runs sampled)
repeated field with 1000 messages (2000 bytes) x 7,162 ops/sec ±0.39% (95 runs sampled)
map field with 1000 messages (8890 bytes) x 3,307 ops/sec ±0.20% (97 runs sampled)

@smaye81
Copy link
Member Author

smaye81 commented Feb 29, 2024

@timostamm A few questions:

  • I wasn't sure if we should change the docs in runtime_api.md or migrating.md. They make a few mentions of instanceof but figured I'd check to see if we wanted to even document/advertise the usage of isMessage there.
  • There's now a failing test in packages/protobuf-test/src/mixing-instances.test.ts. This is because if we swap out instanceof here, it returns true now where instanceof returned false due to the mixed instances. As a result, the test now fails because a new, normalized instance is no longer created.
  • Calling isMessage with an actual instance of Message returns false right now, which is most likely not what we want. However, I wasn't sure of the best way to determine the explicit type of Message in the isMessage function. We could maybe check that arg only contains the properties returned by Object.getOwnPropertyNames(Message.prototype)?

Let me know what you think.

@srikrsna-buf
Copy link
Member

  • Calling isMessage with an actual instance of Message returns false right now, which is most likely not what we want. However, I wasn't sure of the best way to determine the explicit type of Message in the isMessage function. We could maybe check that arg only contains the properties returned by Object.getOwnPropertyNames(Message.prototype)?

I think we can let it be as is, because new Message() is not usable. It expects a subclass in every one of the methods.

  • There's now a failing test in packages/protobuf-test/src/mixing-instances.test.ts. This is because if we swap out instanceof here, it returns true now where instanceof returned false due to the mixed instances. As a result, the test now fails because a new, normalized instance is no longer created.

I think we should remove/switch the test to use isMessage. We should ask users to not use instanceOf and depend on isMessage moving forward.

@smaye81
Copy link
Member Author

smaye81 commented Feb 29, 2024

I think we can let it be as is, because new Message() is not usable. It expects a subclass in every one of the methods.

That's fair, but if we do that, we should change the messaging/comments around isMessage because:

const msg = new Message();
isMessage(msg); // false
msg instanceof Message; // true

So, we can't really say 'This function is equivalent to the instanceof operator' or suggest it's a drop-in replacement. I know that new Message() is not really usable, but Hyrum's Law, etc, etc.

I think we should remove/switch the test to use isMessage. We should ask users to not use instanceOf and depend on isMessage moving forward.

I think in this case we'd have to remove it entirely because right now it's testing

describe("mixing message instances in the constructor", () => {
  test("normalizes by creating a new instance", () => {
  ...

and now that isMessage returns true, this no longer normalizes by creating a new instance.

@srikrsna-buf
Copy link
Member

I think in this case we'd have to remove it entirely because right now it's testing

But we can test that the JS generated one will match the TS generated one using isMessage which I think was the point of the

That's fair, but if we do that, we should change the messaging/comments around isMessage

Agreed. We should just say "use to check if this is any subtype of Message or a specific Message by passing the type"

@smaye81
Copy link
Member Author

smaye81 commented Feb 29, 2024

@srikrsna-buf updated the test and docs. We should probably still document isMessage somewhere, but not entirely sure of the best place. Let me know what you think so far.

@srikrsna-buf
Copy link
Member

We should probably still document isMessage somewhere, but not entirely sure of the best place. Let me know what you think so far.

I think we can document it in the runtime api, is there any other place you want to put it?

@smaye81 smaye81 marked this pull request as ready for review March 1, 2024 17:47
@smaye81
Copy link
Member Author

smaye81 commented Mar 1, 2024

We should probably still document isMessage somewhere, but not entirely sure of the best place. Let me know what you think so far.

I think we can document it in the runtime api, is there any other place you want to put it?

Nope, that works for me. I updated the PR with the docs.

docs/runtime_api.md Outdated Show resolved Hide resolved
packages/protobuf-test/src/mixing-instances.test.ts Outdated Show resolved Hide resolved
packages/protobuf-test/src/is-message.test.ts Show resolved Hide resolved
@smaye81 smaye81 requested a review from timostamm March 1, 2024 21:17
Copy link
Member

@timostamm timostamm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, LGTM!

Can you update the PR description with an example and a link to the docs?

@smaye81 smaye81 merged commit 3be7c9d into main Mar 2, 2024
6 checks passed
@smaye81 smaye81 deleted the sayers/ismessage branch March 2, 2024 16:21
smaye81 added a commit that referenced this pull request Mar 13, 2024
Fixes #713

In #728, #729, and #742, we made changes that remove a common failure
point for the dual package hazard -- usage of `instanceof` with custom
types . As a result, the `node` exports condition for our packages
should not be necessary and is actually problematic for some bundlers.
@timostamm timostamm mentioned this pull request Mar 14, 2024
matt2e referenced this pull request in TBD54566975/ftl Apr 2, 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 |
|---|---|---|---|---|---|---|---|
| [@bufbuild/protoc-gen-es](https://togithub.com/bufbuild/protobuf-es)
([source](https://togithub.com/bufbuild/protobuf-es/tree/HEAD/packages/protoc-gen-es))
| [`1.7.2` ->
`1.8.0`](https://renovatebot.com/diffs/npm/@bufbuild%2fprotoc-gen-es/1.7.2/1.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@bufbuild%2fprotoc-gen-es/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@bufbuild%2fprotoc-gen-es/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@bufbuild%2fprotoc-gen-es/1.7.2/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@bufbuild%2fprotoc-gen-es/1.7.2/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [@heroicons/react](https://togithub.com/tailwindlabs/heroicons) |
[`2.1.1` ->
`2.1.3`](https://renovatebot.com/diffs/npm/@heroicons%2freact/2.1.1/2.1.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@heroicons%2freact/2.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@heroicons%2freact/2.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@heroicons%2freact/2.1.1/2.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@heroicons%2freact/2.1.1/2.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@swc/core](https://swc.rs)
([source](https://togithub.com/swc-project/swc)) | [`1.4.6` ->
`1.4.11`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.4.6/1.4.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.4.6/1.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.4.6/1.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@testing-library/react](https://togithub.com/testing-library/react-testing-library)
| [`14.2.1` ->
`14.2.2`](https://renovatebot.com/diffs/npm/@testing-library%2freact/14.2.1/14.2.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2freact/14.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@testing-library%2freact/14.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@testing-library%2freact/14.2.1/14.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2freact/14.2.1/14.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.64` ->
`18.2.73`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.64/18.2.73)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.73?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.73?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.64/18.2.73?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.64/18.2.73?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/react-dom](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom))
| [`18.2.21` ->
`18.2.23`](https://renovatebot.com/diffs/npm/@types%2freact-dom/18.2.21/18.2.23)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact-dom/18.2.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact-dom/18.2.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact-dom/18.2.21/18.2.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact-dom/18.2.21/18.2.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`7.4.0` ->
`7.5.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/7.4.0/7.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/7.4.0/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/7.4.0/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`7.4.0` ->
`7.5.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/7.4.0/7.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/7.4.0/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/7.4.0/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@typescript-eslint/typescript-estree](https://typescript-eslint.io/packages/typescript-estree)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-estree))
| [`7.1.1` ->
`7.5.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2ftypescript-estree/7.1.1/7.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2ftypescript-estree/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2ftypescript-estree/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2ftypescript-estree/7.1.1/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2ftypescript-estree/7.1.1/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [act](https://togithub.com/nektos/act) | `0.2.60` -> `0.2.61` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/act/0.2.61?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/act/0.2.61?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/act/0.2.60/0.2.61?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/act/0.2.60/0.2.61?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | patch |
| [autoprefixer](https://togithub.com/postcss/autoprefixer) | [`10.4.18`
->
`10.4.19`](https://renovatebot.com/diffs/npm/autoprefixer/10.4.18/10.4.19)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/autoprefixer/10.4.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/autoprefixer/10.4.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/autoprefixer/10.4.18/10.4.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/autoprefixer/10.4.18/10.4.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [connectrpc.com/connect](https://togithub.com/connectrpc/connect-go) |
`v1.15.0` -> `v1.16.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/connectrpc.com%2fconnect/v1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/connectrpc.com%2fconnect/v1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/connectrpc.com%2fconnect/v1.15.0/v1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/connectrpc.com%2fconnect/v1.15.0/v1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [dbmate](https://togithub.com/amacneil/dbmate) | `2.13.0` -> `2.14.0`
|
[![age](https://developer.mend.io/api/mc/badges/age/hermit/dbmate/2.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/dbmate/2.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/dbmate/2.13.0/2.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/dbmate/2.13.0/2.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
|
[eslint-plugin-react](https://togithub.com/jsx-eslint/eslint-plugin-react)
| [`7.34.0` ->
`7.34.1`](https://renovatebot.com/diffs/npm/eslint-plugin-react/7.34.0/7.34.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-react/7.34.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-react/7.34.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-react/7.34.0/7.34.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-react/7.34.0/7.34.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[github.com/alecthomas/assert/v2](https://togithub.com/alecthomas/assert)
| `v2.6.0` -> `v2.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2falecthomas%2fassert%2fv2/v2.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2falecthomas%2fassert%2fv2/v2.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2falecthomas%2fassert%2fv2/v2.6.0/v2.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2falecthomas%2fassert%2fv2/v2.6.0/v2.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [github.com/amacneil/dbmate/v2](https://togithub.com/amacneil/dbmate)
| `v2.12.0` -> `v2.14.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2famacneil%2fdbmate%2fv2/v2.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2famacneil%2fdbmate%2fv2/v2.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2famacneil%2fdbmate%2fv2/v2.12.0/v2.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2famacneil%2fdbmate%2fv2/v2.12.0/v2.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[github.com/swaggest/jsonschema-go](https://togithub.com/swaggest/jsonschema-go)
| `v0.3.69` -> `v0.3.70` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fswaggest%2fjsonschema-go/v0.3.70?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fswaggest%2fjsonschema-go/v0.3.70?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fswaggest%2fjsonschema-go/v0.3.69/v0.3.70?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fswaggest%2fjsonschema-go/v0.3.69/v0.3.70?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [github.com/tmc/langchaingo](https://togithub.com/tmc/langchaingo) |
`v0.1.5` -> `v0.1.8` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ftmc%2flangchaingo/v0.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2ftmc%2flangchaingo/v0.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2ftmc%2flangchaingo/v0.1.5/v0.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ftmc%2flangchaingo/v0.1.5/v0.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/zalando/go-keyring](https://togithub.com/zalando/go-keyring)
| `v0.2.3` -> `v0.2.4` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fzalando%2fgo-keyring/v0.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fzalando%2fgo-keyring/v0.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fzalando%2fgo-keyring/v0.2.3/v0.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fzalando%2fgo-keyring/v0.2.3/v0.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [helm](https://togithub.com/helm/helm) | `3.14.2` -> `3.14.3` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/helm/3.14.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/helm/3.14.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/helm/3.14.2/3.14.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/helm/3.14.2/3.14.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | patch |
| [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) | `v1.29.3` ->
`v1.29.5` |
[![age](https://developer.mend.io/api/mc/badges/age/go/modernc.org%2fsqlite/v1.29.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/modernc.org%2fsqlite/v1.29.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/modernc.org%2fsqlite/v1.29.3/v1.29.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/modernc.org%2fsqlite/v1.29.3/v1.29.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [otel-cli](https://togithub.com/equinix-labs/otel-cli) | `0.4.1` ->
`0.4.4` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/otel-cli/0.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/otel-cli/0.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/otel-cli/0.4.1/0.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/otel-cli/0.4.1/0.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | patch |
| [postcss](https://postcss.org/)
([source](https://togithub.com/postcss/postcss)) | [`8.4.35` ->
`8.4.38`](https://renovatebot.com/diffs/npm/postcss/8.4.35/8.4.38) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/postcss/8.4.38?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/postcss/8.4.38?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/postcss/8.4.35/8.4.38?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/postcss/8.4.35/8.4.38?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[postcss-nesting](https://togithub.com/csstools/postcss-plugins/tree/main/plugins/postcss-nesting#readme)
([source](https://togithub.com/csstools/postcss-plugins/tree/HEAD/plugins/postcss-nesting))
| [`12.1.0` ->
`12.1.1`](https://renovatebot.com/diffs/npm/postcss-nesting/12.1.0/12.1.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/postcss-nesting/12.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/postcss-nesting/12.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/postcss-nesting/12.1.0/12.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/postcss-nesting/12.1.0/12.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [pre-commit](https://togithub.com/pre-commit/pre-commit) | `3.6.2` ->
`3.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/pre-commit/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/pre-commit/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/pre-commit/3.6.2/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/pre-commit/3.6.2/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
| [protoc](https://togithub.com/protocolbuffers/protobuf) | `26.0` ->
`26.1` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/protoc/26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/protoc/26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/protoc/26.0/26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/protoc/26.0/26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
| [sqlc](https://togithub.com/sqlc-dev/sqlc) | `1.25.0` -> `1.26.0` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/sqlc/1.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/sqlc/1.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/sqlc/1.25.0/1.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/sqlc/1.25.0/1.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
| [tailwindcss](https://tailwindcss.com)
([source](https://togithub.com/tailwindlabs/tailwindcss)) | [`3.4.1` ->
`3.4.3`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.1/3.4.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/3.4.1/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/3.4.1/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [typescript](https://www.typescriptlang.org/)
([source](https://togithub.com/Microsoft/TypeScript)) | [`5.4.2` ->
`5.4.3`](https://renovatebot.com/diffs/npm/typescript/5.4.2/5.4.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.4.2/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.4.2/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [vite](https://vitejs.dev)
([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) |
[`4.5.2` -> `4.5.3`](https://renovatebot.com/diffs/npm/vite/4.5.2/4.5.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/4.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/4.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/4.5.2/4.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/4.5.2/4.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [yq](https://togithub.com/mikefarah/yq) | `4.42.1` -> `4.43.1` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/yq/4.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/yq/4.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/yq/4.42.1/4.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/yq/4.42.1/4.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
|
[org.apache.maven.plugins:maven-gpg-plugin](https://maven.apache.org/plugins/)
| `3.1.0` -> `3.2.2` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-gpg-plugin/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.apache.maven.plugins:maven-gpg-plugin/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.apache.maven.plugins:maven-gpg-plugin/3.1.0/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-gpg-plugin/3.1.0/3.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| build | minor |
|
[org.apache.maven.plugins:maven-compiler-plugin](https://maven.apache.org/plugins/)
| `3.12.1` -> `3.13.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-compiler-plugin/3.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.apache.maven.plugins:maven-compiler-plugin/3.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.apache.maven.plugins:maven-compiler-plugin/3.12.1/3.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-compiler-plugin/3.12.1/3.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| build | minor |
| [com.squareup.wire:wire-compiler](https://togithub.com/square/wire) |
`4.9.7` -> `4.9.8` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.wire:wire-compiler/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.wire:wire-compiler/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.wire:wire-compiler/4.9.7/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.wire:wire-compiler/4.9.7/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | patch |
|
[com.squareup.wire:wire-grpc-client-jvm](https://togithub.com/square/wire)
| `4.9.7` -> `4.9.8` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.wire:wire-grpc-client-jvm/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.wire:wire-grpc-client-jvm/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.wire:wire-grpc-client-jvm/4.9.7/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.wire:wire-grpc-client-jvm/4.9.7/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| compile | patch |
| [com.squareup.wire:wire-grpc-server](https://togithub.com/square/wire)
| `4.9.7` -> `4.9.8` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.wire:wire-grpc-server/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.wire:wire-grpc-server/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.wire:wire-grpc-server/4.9.7/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.wire:wire-grpc-server/4.9.7/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| compile | patch |
| [com.squareup.wire:wire-runtime-jvm](https://togithub.com/square/wire)
| `4.9.7` -> `4.9.8` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.wire:wire-runtime-jvm/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.wire:wire-runtime-jvm/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.wire:wire-runtime-jvm/4.9.7/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.wire:wire-runtime-jvm/4.9.7/4.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| compile | patch |
| [io.gitlab.arturbosch.detekt:detekt-test](https://detekt.dev)
([source](https://togithub.com/detekt/detekt)) | `1.23.5` -> `1.23.6` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.gitlab.arturbosch.detekt:detekt-test/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.gitlab.arturbosch.detekt:detekt-test/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.gitlab.arturbosch.detekt:detekt-test/1.23.5/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.gitlab.arturbosch.detekt:detekt-test/1.23.5/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| test | patch |
| [io.gitlab.arturbosch.detekt:detekt-api](https://detekt.dev)
([source](https://togithub.com/detekt/detekt)) | `1.23.5` -> `1.23.6` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.gitlab.arturbosch.detekt:detekt-api/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.gitlab.arturbosch.detekt:detekt-api/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.gitlab.arturbosch.detekt:detekt-api/1.23.5/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.gitlab.arturbosch.detekt:detekt-api/1.23.5/1.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| compile | patch |
| [org.postgresql:postgresql](https://jdbc.postgresql.org)
([source](https://togithub.com/pgjdbc/pgjdbc)) | `42.7.2` -> `42.7.3` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.postgresql:postgresql/42.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.postgresql:postgresql/42.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.postgresql:postgresql/42.7.2/42.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.postgresql:postgresql/42.7.2/42.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| compile | patch |
| [org.jetbrains.kotlin:kotlin-maven-plugin](https://kotlinlang.org/)
([source](https://togithub.com/JetBrains/kotlin)) | `1.9.22` -> `1.9.23`
|
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin:kotlin-maven-plugin/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin:kotlin-maven-plugin/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin:kotlin-maven-plugin/1.9.22/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin:kotlin-maven-plugin/1.9.22/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| build | patch |
| [org.jetbrains.kotlin:kotlin-stdlib](https://kotlinlang.org/)
([source](https://togithub.com/JetBrains/kotlin)) | `1.9.22` -> `1.9.23`
|
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin:kotlin-stdlib/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin:kotlin-stdlib/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin:kotlin-stdlib/1.9.22/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin:kotlin-stdlib/1.9.22/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| compile | patch |

---

### Release Notes

<details>
<summary>bufbuild/protobuf-es (@&#8203;bufbuild/protoc-gen-es)</summary>

###
[`v1.8.0`](https://togithub.com/bufbuild/protobuf-es/releases/tag/v1.8.0)

[Compare
Source](https://togithub.com/bufbuild/protobuf-es/compare/v1.7.2...v1.8.0)

#### What's Changed

- Introduce type guard isMessage by
[@&#8203;timostamm](https://togithub.com/timostamm) in
[https://github.com/bufbuild/protobuf-es/pull/728](https://togithub.com/bufbuild/protobuf-es/pull/728)
- Remove node export conditions by
[@&#8203;smaye81](https://togithub.com/smaye81) in
[https://github.com/bufbuild/protobuf-es/pull/744](https://togithub.com/bufbuild/protobuf-es/pull/744)
- Replace instanceof Message usages by
[@&#8203;smaye81](https://togithub.com/smaye81) in
[https://github.com/bufbuild/protobuf-es/pull/729](https://togithub.com/bufbuild/protobuf-es/pull/729)
- Add `/*@&#8203;__PURE__*/` annotation for better tree-shaking support
by [@&#8203;pmzi](https://togithub.com/pmzi) in
[https://github.com/bufbuild/protobuf-es/pull/470](https://togithub.com/bufbuild/protobuf-es/pull/470)
- Introduce type ScalarValue and rename function scalarDefaultValue by
[@&#8203;timostamm](https://togithub.com/timostamm) in
[https://github.com/bufbuild/protobuf-es/pull/711](https://togithub.com/bufbuild/protobuf-es/pull/711)
- Add "dependencies" to DescFile by
[@&#8203;timostamm](https://togithub.com/timostamm) in
[https://github.com/bufbuild/protobuf-es/pull/727](https://togithub.com/bufbuild/protobuf-es/pull/727)
- Update to google protobuf v26.0 by
[@&#8203;timostamm](https://togithub.com/timostamm) in
[https://github.com/bufbuild/protobuf-es/pull/747](https://togithub.com/bufbuild/protobuf-es/pull/747)
- Deprecate field helper functions from
[@&#8203;bufbuild/protoplugin](https://togithub.com/bufbuild/protoplugin)
by [@&#8203;timostamm](https://togithub.com/timostamm) in
[https://github.com/bufbuild/protobuf-es/pull/712](https://togithub.com/bufbuild/protobuf-es/pull/712)
- Deprecate properties toString and text of JSDocBlock by
[@&#8203;timostamm](https://togithub.com/timostamm) in
[https://github.com/bufbuild/protobuf-es/pull/721](https://togithub.com/bufbuild/protobuf-es/pull/721)

#### New Contributors

- [@&#8203;pmzi](https://togithub.com/pmzi) made their first
contribution in
[https://github.com/bufbuild/protobuf-es/pull/470](https://togithub.com/bufbuild/protobuf-es/pull/470)

**Full Changelog**:
https://github.com/bufbuild/protobuf-es/compare/v1.7.2...v1.8.0

</details>

<details>
<summary>tailwindlabs/heroicons (@&#8203;heroicons/react)</summary>

###
[`v2.1.3`](https://togithub.com/tailwindlabs/heroicons/blob/HEAD/CHANGELOG.md#213---2024-03-22)

[Compare
Source](https://togithub.com/tailwindlabs/heroicons/compare/v2.1.2...v2.1.3)

- Improve project READMEs
([#&#8203;1152](https://togithub.com/tailwindlabs/heroicons/pull/1152))

###
[`v2.1.2`](https://togithub.com/tailwindlabs/heroicons/releases/tag/v2.1.2)

[Compare
Source](https://togithub.com/tailwindlabs/heroicons/compare/v2.1.1...v2.1.2)

- Include license file with published packages
([#&#8203;1151](https://togithub.com/tailwindlabs/heroicons/pull/1151))

</details>

<details>
<summary>swc-project/swc (@&#8203;swc/core)</summary>

###
[`v1.4.11`](https://togithub.com/swc-project/swc/compare/v1.4.8...v1.4.11)

[Compare
Source](https://togithub.com/swc-project/swc/compare/v1.4.8...v1.4.11)

###
[`v1.4.8`](https://togithub.com/swc-project/swc/blob/HEAD/CHANGELOG.md#148---2024-03-14)

[Compare
Source](https://togithub.com/swc-project/swc/compare/v1.4.7...v1.4.8)

##### Bug Fixes

- **(es/module)** Fix regression of resolving relative modules
([#&#8203;8748](https://togithub.com/swc-project/swc/issues/8748))
([f988b66](https://togithub.com/swc-project/swc/commit/f988b66e1fd921266a8abf6fe9bb997b6878e949))

- **(es/parser)** Allow `export` after decorators when valid
([#&#8203;8739](https://togithub.com/swc-project/swc/issues/8739))
([663261b](https://togithub.com/swc-project/swc/commit/663261be97364911e7b57eab0560ee48e53d8f33))

##### Miscellaneous Tasks

- **(es)** Allow using older `tokio`
([#&#8203;8740](https://togithub.com/swc-project/swc/issues/8740))
([9c1eb01](https://togithub.com/swc-project/swc/commit/9c1eb017fcd90bd21b43f1a988c7fc67639343c1))

###
[`v1.4.7`](https://togithub.com/swc-project/swc/blob/HEAD/CHANGELOG.md#147---2024-03-13)

[Compare
Source](https://togithub.com/swc-project/swc/compare/v1.4.6...v1.4.7)

##### Bug Fixes

- **(es/minifier)** Fix eval of `toString` of array with holes
([#&#8203;8727](https://togithub.com/swc-project/swc/issues/8727))
([f3fbd9d](https://togithub.com/swc-project/swc/commit/f3fbd9d54925b708139a37865508430cdcb98f9a))

- **(es/minifier)** Do not evaluate `slice` calls with negative index
([#&#8203;8726](https://togithub.com/swc-project/swc/issues/8726))
([23f9635](https://togithub.com/swc-project/swc/commit/23f9635d2cb523d63e5d1611dcf55922bcc54a87))

- **(es/minifier)** Handle cyclic references while dropping unused
properties
([#&#8203;8725](https://togithub.com/swc-project/swc/issues/8725))
([102241b](https://togithub.com/swc-project/swc/commit/102241b812b8e815b59575178193bb71b4264bab))

- **(es/minifier)** Fix evaluation of array literals with `void 0`
([#&#8203;8733](https://togithub.com/swc-project/swc/issues/8733))
([aa0154d](https://togithub.com/swc-project/swc/commit/aa0154d2d86b0bed7ffed3324c7a650ffe111c93))

- **(es/minifier)** Fix removal of array pattern bindings
([#&#8203;8730](https://togithub.com/swc-project/swc/issues/8730))
([312f0d8](https://togithub.com/swc-project/swc/commit/312f0d8427b3c4436b491ed4265f9469dc017f8f))

- **(es/minifier)** Make `Finalizer` handle `hoisted_props` correctly
([#&#8203;8738](https://togithub.com/swc-project/swc/issues/8738))
([95761b7](https://togithub.com/swc-project/swc/commit/95761b76bf09a4d2c09517b2bd7bf7b78ee2149f))

- **(es/proposal)** Fix var placement for using transform
([#&#8203;8732](https://togithub.com/swc-project/swc/issues/8732))
([633cd89](https://togithub.com/swc-project/swc/commit/633cd89bacef5f0efef20f1dfa709cff1ecba36f))

##### Features

- **(es/lints)** Add `no-prototype-builtins` rule
([#&#8203;8684](https://togithub.com/swc-project/swc/issues/8684))
([a5dbb17](https://togithub.com/swc-project/swc/commit/a5dbb17612327c66366086f99b44c6731d125ffc))

- **(es/lints)** Add `prefer-object-spread` rule
([#&#8203;8696](https://togithub.com/swc-project/swc/issues/8696))
([aa9297b](https://togithub.com/swc-project/swc/commit/aa9297b42e001f6b7319881870f6012a56c50aef))

##### Refactor

- **(es)** Prepare `wasm32-wasi-preview1-threads` target support
([#&#8203;8724](https://togithub.com/swc-project/swc/issues/8724))
([e3acd14](https://togithub.com/swc-project/swc/commit/e3acd1476c2428e5329a359bb7323687c06108d2))

</details>

<details>
<summary>testing-library/react-testing-library
(@&#8203;testing-library/react)</summary>

###
[`v14.2.2`](https://togithub.com/testing-library/react-testing-library/compare/v14.2.1...3da62fd9741ca74bcd0d2bc668ba76a2d8f3751f)

[Compare
Source](https://togithub.com/testing-library/react-testing-library/compare/v14.2.1...v14.2.2)

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v7.5.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#750-2024-04-01)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.4.0...v7.5.0)

##### 🩹 Fixes

- **eslint-plugin:** \[no-floating-promises] handle
TaggedTemplateExpression

- **eslint-plugin:** \[no-unnecessary-type-assertion] handle
exactOptionalPropertyTypes compiler option

##### ❤️  Thank You

-   Brad Zacher
-   Kim Sang Du
-   Mark de Dios
-   Naru
-   YeonJuan

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v7.5.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#750-2024-04-01)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.4.0...v7.5.0)

##### 🩹 Fixes

-   **parser:** disallow `errorOnTypeScriptSyntacticAndSemanticIssues`

##### ❤️  Thank You

-   Brad Zacher
-   Kim Sang Du
-   Mark de Dios
-   Naru
-   YeonJuan

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/typescript-estree)</summary>

###
[`v7.5.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-estree/CHANGELOG.md#750-2024-04-01)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.4.0...v7.5.0)

This was a version bump only for typescript-estree to align it with
other projects, there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.4.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-estree/CHANGELOG.md#740-2024-03-25)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.3.1...v7.4.0)

##### 🚀 Features

- **eslint-plugin:** \[consistent-type-imports] ignore files with
decorators, experimentalDecorators, and emitDecoratorMetadata

##### ❤️  Thank You

-   Abraham Guo
-   Brad Zacher
-   Josh Goldberg ✨
-   Kim Sang Du
-   Kirk Waiblinger
-   Marco Pasqualetti
-   YeonJuan

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.3.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-estree/CHANGELOG.md#731-2024-03-18)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.3.0...v7.3.1)

This was a version bump only for typescript-estree to align it with
other projects, there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.3.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-estree/CHANGELOG.md#730-2024-03-18)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.2.0...v7.3.0)

##### 🚀 Features

- **typescript-estree:** disallow switch statements with multiple
default cases

##### 🩹 Fixes

-   correct `engines.node` constraints in `package.json`

- **eslint-plugin:** \[no-unnecessary-type-assertion] fix false negative
for const variable declarations

- **typescript-estree:** fix the issue of single run inferring in the
pnpm repo

##### ❤️  Thank You

-   Abraham Guo
-   Alexu
-   Arka Pratim Chaudhuri
-   auvred
-   Derrick Isaacson
-   fnx
-   Josh Goldberg ✨
-   Kirk Waiblinger
-   Marta Cardoso
-   Michaël De Boey
-   Tristan Rasmussen
-   YeonJuan

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v7.2.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-estree/CHANGELOG.md#720-2024-03-11)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.1.1...v7.2.0)

##### 🚀 Features

-   support TS 5.4

##### ❤️  Thank You

-   Arka Pratim Chaudhuri
-   auvred
-   Chris Plummer
-   Fotis Papadogeorgopoulos
-   Josh Goldberg ✨
-   Kirk Waiblinger
-   Wayne Zhang
-   YeonJuan

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>nektos/act (act)</summary>

### [`v0.2.61`](https://togithub.com/nektos/act/releases/tag/v0.2.61)

#### Changelog

##### Bug fixes

- [`f825e42`](https://togithub.com/nektos/act/commit/f825e42) fix: cache
adjust restore order of exact key matches
([#&#8203;2267](https://togithub.com/nektos/act/issues/2267))
- [`119ceb8`](https://togithub.com/nektos/act/commit/119ceb8) fix:
rootless permission bits (new actions cache)
([#&#8203;2242](https://togithub.com/nektos/act/issues/2242))
- [`75e4ad9`](https://togithub.com/nektos/act/commit/75e4ad9) fix:
docker buildx cache restore not working
([#&#8203;2236](https://togithub.com/nektos/act/issues/2236))

##### Other

- [`361b7e9`](https://togithub.com/nektos/act/commit/361b7e9) chore:
bump VERSION to 0.2.61
- [`d9a19c8`](https://togithub.com/nektos/act/commit/d9a19c8) Trivial:
reduce log spam.
([#&#8203;2256](https://togithub.com/nektos/act/issues/2256))
- [`3949d74`](https://togithub.com/nektos/act/commit/3949d74) chore:
remove repetitive words
([#&#8203;2259](https://togithub.com/nektos/act/issues/2259))
- [`b9382a2`](https://togithub.com/nektos/act/commit/b9382a2) Support
overwriting caches
([#&#8203;2265](https://togithub.com/nektos/act/issues/2265))
- [`f56dd65`](https://togithub.com/nektos/act/commit/f56dd65) test: use
ping to improve network test
([#&#8203;2266](https://togithub.com/nektos/act/issues/2266))
- [`069720a`](https://togithub.com/nektos/act/commit/069720a)
build(deps): bump github.com/docker/docker
([#&#8203;2252](https://togithub.com/nektos/act/issues/2252))
- [`8c83d57`](https://togithub.com/nektos/act/commit/8c83d57)
build(deps): bump golang.org/x/term from 0.17.0 to 0.18.0
([#&#8203;2244](https://togithub.com/nektos/act/issues/2244))
- [`352ad41`](https://togithub.com/nektos/act/commit/352ad41) fix
function name in comment
([#&#8203;2240](https://togithub.com/nektos/act/issues/2240))
- [`934b13a`](https://togithub.com/nektos/act/commit/934b13a)
build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0
([#&#8203;2235](https://togithub.com/nektos/act/issues/2235))

</details>

<details>
<summary>postcss/autoprefixer (autoprefixer)</summary>

###
[`v10.4.19`](https://togithub.com/postcss/autoprefixer/blob/HEAD/CHANGELOG.md#10419)

[Compare
Source](https://togithub.com/postcss/autoprefixer/compare/10.4.18...10.4.19)

- Removed `end value has mixed support, consider using flex-end` warning
    since `end`/`start` now have good support.

</details>

<details>
<summary>connectrpc/connect-go (connectrpc.com/connect)</summary>

###
[`v1.16.0`](https://togithub.com/connectrpc/connect-go/releases/tag/v1.16.0)

[Compare
Source](https://togithub.com/connectrpc/connect-go/compare/v1.15.0...v1.16.0)

This release is mostly bug fixes but also reconciles connect-go with
recent updates to the specification regarding mapping of RPC error codes
to/from HTTP status codes (see [connectrpc RFC
003](https://togithub.com/connectrpc/connectrpc.com/pull/148))

#### What's Changed

##### Other changes

- Revise RPC error code <-> HTTP status code mappings per latest changes
to spec by [@&#8203;jhump](https://togithub.com/jhump) in
[#&#8203;706](https://togithub.com/connectrpc/connect-go/issues/706)

##### Enhancements

- Only send a grpc-status-details-bin trailer in the gRPC protocol if
the error has details by [@&#8203;bhollis](https://togithub.com/bhollis)
in [#&#8203;713](https://togithub.com/connectrpc/connect-go/issues/713)

##### Bugfixes

- Fix `ErrorWriter IsSupported` check to report false on ambiguous
content-type and options indicate connect protocol version header is
required by [@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[#&#8203;700](https://togithub.com/connectrpc/connect-go/issues/700)
- In Connect unary protocol, fallback to code based on HTTP status if
unable to deserialize code from JSON body by
[@&#8203;jhump](https://togithub.com/jhump) in
[#&#8203;702](https://togithub.com/connectrpc/connect-go/issues/702)
- Fix `ErrorWriter` to recognize protocols, even if content-type
indicates unrecognized codec by
[@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[#&#8203;701](https://togithub.com/connectrpc/connect-go/issues/701)
- Fix some places in the framework that weren't correctly recognizing
and returning context-based error code (e.g. "canceled" or
"deadline_exceeded") by [@&#8203;jhump](https://togithub.com/jhump) in
[#&#8203;709](https://togithub.com/connectrpc/connect-go/issues/709)
- Use "unimplemented" code for stream cardinality violations by
[@&#8203;jhump](https://togithub.com/jhump) in
[#&#8203;712](https://togithub.com/connectrpc/connect-go/issues/712)
- Restrict which metadata in an error can be propagated into response
metadata by [@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[#&#8203;711](https://togithub.com/connectrpc/connect-go/issues/711)

#### New Contributors

- [@&#8203;bhollis](https://togithub.com/bhollis) made their first
contribution in
[#&#8203;713](https://togithub.com/connectrpc/connect-go/issues/713)

**Full Changelog**:
https://github.com/connectrpc/connect-go/compare/v1.15.0...v1.16.0

</details>

<details>
<summary>amacneil/dbmate (dbmate)</summary>

###
[`v2.14.0`](https://togithub.com/amacneil/dbmate/releases/tag/v2.14.0)

##### What's Changed

- Add support for BigQuery by
[@&#8203;mii9000](https://togithub.com/mii9000) in
[https://github.com/amacneil/dbmate/pull/523](https://togithub.com/amacneil/dbmate/pull/523)
- Update dependencies by
[@&#8203;amacneil](https://togithub.com/amacneil) in
[https://github.com/amacneil/dbmate/pull/534](https://togithub.com/amacneil/dbmate/pull/534)

##### New Contributors

- [@&#8203;mii9000](https://togithub.com/mii9000) made their first
contribution in
[https://github.com/amacneil/dbmate/pull/523](https://togithub.com/amacneil/dbmate/pull/523)

**Full Changelog**:
https://github.com/amacneil/dbmate/compare/v2.13.0...v2.14.0

</details>

<details>
<summary>jsx-eslint/eslint-plugin-react (eslint-plugin-react)</summary>

###
[`v7.34.1`](https://togithub.com/jsx-eslint/eslint-plugin-react/releases/tag/v7.34.1)

[Compare
Source](https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.0...v7.34.1)

##### Fixed

- [`jsx-no-leaked-render`][jsx-no-leaked-render]: prevent wrongly adding
parens ([#&#8203;3700][]
[@&#8203;developer-bandi](https://togithub.com/developer-bandi))
- [`boolean-prop-naming`][boolean-prop-naming]: detect TS interfaces
([#&#8203;3701][]
[@&#8203;developer-bandi](https://togithub.com/developer-bandi))
- [`boolean-prop-naming`][boolean-prop-naming]: literalType error fix
([#&#8203;3704][]
[@&#8203;developer-bandi](https://togithub.com/developer-bandi))
- [`boolean-prop-naming`][boolean-prop-naming]: allow TSIntersectionType
([#&#8203;3705][]
[@&#8203;developer-bandi](https://togithub.com/developer-bandi))
- [`no-unknown-property`][no-unknown-property]: support `popover`,
`popovertarget`, `popovertargetaction` attributes ([#&#8203;3707][]
[@&#8203;ljharb](https://togithub.com/ljharb))
- [`no-unknown-property`][no-unknown-property]: only match `data-*`
attributes containing `-` ([#&#8203;3713][]
[@&#8203;silverwind](https://togithub.com/silverwind))
-
[`checked-requires-onchange-or-readonly`][checked-requires-onchange-or-readonly]:
correct options that were behaving opposite ([#&#8203;3715][]
[@&#8203;jaesoekjjang](https://togithub.com/jaesoekjjang))

##### Changed

- [`boolean-prop-naming`][boolean-prop-naming]: improve error message
([@&#8203;ljharb](https://togithub.com/ljharb))

[#&#8203;1000]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1000

[#&#8203;1002]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1002

[#&#8203;1005]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1005

[#&#8203;100]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/100

[#&#8203;1010]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1010

[#&#8203;1013]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1013

[#&#8203;1022]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1022

[#&#8203;1029]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1029

[#&#8203;102]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/102

[#&#8203;1034]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1034

[#&#8203;1038]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1038

[#&#8203;1041]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1041

[#&#8203;1043]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1043

[#&#8203;1046]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1046

[#&#8203;1047]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1047

[#&#8203;1050]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1050

[#&#8203;1053]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1053

[#&#8203;1057]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1057

[#&#8203;105]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/105

[#&#8203;1061]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1061

[#&#8203;1062]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1062

[#&#8203;1070]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1070

[#&#8203;1071]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1071

[#&#8203;1073]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1073

[#&#8203;1076]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1076

[#&#8203;1079]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1079

[#&#8203;1088]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1088

[#&#8203;1098]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1098

[#&#8203;1101]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1101

[#&#8203;1103]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1103

[#&#8203;110]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/110

[#&#8203;1116]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1116

[#&#8203;1117]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1117

[#&#8203;1119]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1119

[#&#8203;1121]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1121

[#&#8203;1122]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1122

[#&#8203;1123]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1123

[#&#8203;1130]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1130

[#&#8203;1131]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1131

[#&#8203;1132]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1132

[#&#8203;1134]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1134

[#&#8203;1135]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1135

[#&#8203;1139]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1139

[#&#8203;1148]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1148

[#&#8203;1149]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1149

[#&#8203;114]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/114

[#&#8203;1151]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1151

[#&#8203;1155]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1155

[#&#8203;1161]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1161

[#&#8203;1167]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1167

[#&#8203;1173]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1173

[#&#8203;1174]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1174

[#&#8203;1175]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1175

[#&#8203;1178]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1178

[#&#8203;1179]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1179

[#&#8203;117]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/117

[#&#8203;1180]:
https://togithub.com/jsx-eslint/eslint-plugin-react/pull/1180

[#&#8203;1183]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1183

[#&#8203;1189]:
https://togithub.com/jsx-eslint/eslint-plugin-react/issues/1189

[#&#8203;118]: https://togith

</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/TBD54566975/ftl).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNDUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants