Files
AFFiNE-Mirror/packages/common/y-provider/src/lazy-provider.ts
renovate 313952c45d chore: bump up all non-major dependencies (#6235)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@aws-sdk/client-s3](https://togithub.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3) ([source](https://togithub.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3)) | [`3.537.0` -> `3.552.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.537.0/3.552.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-s3/3.552.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-s3/3.552.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-s3/3.537.0/3.552.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-s3/3.537.0/3.552.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@electron-forge/maker-base](https://togithub.com/electron/forge) | [`7.3.0` -> `7.3.1`](https://renovatebot.com/diffs/npm/@electron-forge%2fmaker-base/7.3.0/7.3.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@electron-forge%2fmaker-base/7.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@electron-forge%2fmaker-base/7.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@electron-forge%2fmaker-base/7.3.0/7.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@electron-forge%2fmaker-base/7.3.0/7.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@napi-rs/cli](https://togithub.com/napi-rs/napi-rs) | [`3.0.0-alpha.43` -> `3.0.0-alpha.46`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.0.0-alpha.43/3.0.0-alpha.46) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fcli/3.0.0-alpha.46?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fcli/3.0.0-alpha.46?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fcli/3.0.0-alpha.43/3.0.0-alpha.46?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fcli/3.0.0-alpha.43/3.0.0-alpha.46?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@nx/vite](https://nx.dev) ([source](https://togithub.com/nrwl/nx/tree/HEAD/packages/vite)) | [`18.1.2` -> `18.2.4`](https://renovatebot.com/diffs/npm/@nx%2fvite/18.1.2/18.2.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nx%2fvite/18.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nx%2fvite/18.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nx%2fvite/18.1.2/18.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nx%2fvite/18.1.2/18.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/exporter-prometheus](https://togithub.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-prometheus) ([source](https://togithub.com/open-telemetry/opentelemetry-js)) | [`^0.49.0` -> `^0.50.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fexporter-prometheus/0.49.1/0.50.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fexporter-prometheus/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fexporter-prometheus/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fexporter-prometheus/0.49.1/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fexporter-prometheus/0.49.1/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/instrumentation](https://togithub.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation) ([source](https://togithub.com/open-telemetry/opentelemetry-js)) | [`^0.49.0` -> `^0.50.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation/0.49.1/0.50.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2finstrumentation/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2finstrumentation/0.49.1/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation/0.49.1/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/instrumentation-graphql](https://togithub.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-graphql#readme) ([source](https://togithub.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.38.0` -> `^0.39.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-graphql/0.38.0/0.39.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-graphql/0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2finstrumentation-graphql/0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2finstrumentation-graphql/0.38.0/0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-graphql/0.38.0/0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/instrumentation-http](https://togithub.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-http) ([source](https://togithub.com/open-telemetry/opentelemetry-js)) | [`^0.49.0` -> `^0.50.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-http/0.49.1/0.50.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-http/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2finstrumentation-http/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2finstrumentation-http/0.49.1/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-http/0.49.1/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/instrumentation-ioredis](https://togithub.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-ioredis#readme) ([source](https://togithub.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.38.0` -> `^0.39.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-ioredis/0.38.0/0.39.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-ioredis/0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2finstrumentation-ioredis/0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2finstrumentation-ioredis/0.38.0/0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-ioredis/0.38.0/0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/instrumentation-nestjs-core](https://togithub.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-nestjs-core#readme) ([source](https://togithub.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.35.0` -> `^0.36.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-nestjs-core/0.35.0/0.36.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-nestjs-core/0.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2finstrumentation-nestjs-core/0.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2finstrumentation-nestjs-core/0.35.0/0.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-nestjs-core/0.35.0/0.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/instrumentation-socket.io](https://togithub.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/instrumentation-socket.io#readme) ([source](https://togithub.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.37.0` -> `^0.38.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-socket.io/0.37.0/0.38.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-socket.io/0.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2finstrumentation-socket.io/0.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2finstrumentation-socket.io/0.37.0/0.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-socket.io/0.37.0/0.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/sdk-node](https://togithub.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-sdk-node) ([source](https://togithub.com/open-telemetry/opentelemetry-js)) | [`^0.49.0` -> `^0.50.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-node/0.49.1/0.50.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fsdk-node/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fsdk-node/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fsdk-node/0.49.1/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fsdk-node/0.49.1/0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [eslint-plugin-import-x](https://togithub.com/un-ts/eslint-plugin-import-x) | [`^0.4.1` -> `^0.5.0`](https://renovatebot.com/diffs/npm/eslint-plugin-import-x/0.4.4/0.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-import-x/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-import-x/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-import-x/0.4.4/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-import-x/0.4.4/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [eslint-plugin-sonarjs](https://togithub.com/SonarSource/eslint-plugin-sonarjs) | [`^0.24.0` -> `^0.25.0`](https://renovatebot.com/diffs/npm/eslint-plugin-sonarjs/0.24.0/0.25.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-sonarjs/0.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-sonarjs/0.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-sonarjs/0.24.0/0.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-sonarjs/0.24.0/0.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [vite-plugin-dts](https://togithub.com/qmhc/vite-plugin-dts) | [`3.7.3` -> `3.8.1`](https://renovatebot.com/diffs/npm/vite-plugin-dts/3.7.3/3.8.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-dts/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite-plugin-dts/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite-plugin-dts/3.7.3/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-dts/3.7.3/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>aws/aws-sdk-js-v3 (@&#8203;aws-sdk/client-s3)</summary>

### [`v3.552.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#35520-2024-04-09)

[Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.550.0...v3.552.0)

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://togithub.com/aws-sdk/client-s3)

### [`v3.550.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#35500-2024-04-05)

[Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.549.0...v3.550.0)

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://togithub.com/aws-sdk/client-s3)

### [`v3.549.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#35490-2024-04-04)

[Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.540.0...v3.549.0)

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://togithub.com/aws-sdk/client-s3)

### [`v3.540.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#35400-2024-03-22)

[Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.537.0...v3.540.0)

##### Bug Fixes

-   **util-endpoints:** augment endpointFunctions inline in endpointResolver functions ([#&#8203;5933](https://togithub.com/aws/aws-sdk-js-v3/issues/5933)) ([42a791d](42a791defb))

</details>

<details>
<summary>electron/forge (@&#8203;electron-forge/maker-base)</summary>

### [`v7.3.1`](https://togithub.com/electron/forge/releases/tag/v7.3.1)

[Compare Source](https://togithub.com/electron/forge/compare/v7.3.0...v7.3.1)

##### What's Changed

##### Highlighted Feature:

-   build: Bump [@&#8203;electron/windows-sign](https://togithub.com/electron/windows-sign) deps by [@&#8203;felixrieseberg](https://togithub.com/felixrieseberg) in [https://github.com/electron/forge/pull/3524](https://togithub.com/electron/forge/pull/3524)

This change enables advanced code signing with \[[@&#8203;electron/windows-sign](https://togithub.com/electron/windows-sign)]\[[@&#8203;electron/windows-sign](https://togithub.com/electron/windows-sign)], supporting two different ways to codesign your application and the installer:

1.  Modern: By passing a `windowsSign` option, which will be passed to \[[@&#8203;electron/windows-sign](https://togithub.com/electron/windows-sign)]. This method allows full customization of the code-signing process - and supports more complicated scenarios like cloud-hosted EV certificates, custom sign pipelines, and per-file overrides. It also supports all existing "simple" codesigning scenarios, including just passing a certificate file and password. Please see https://github.com/[@&#8203;electron/windows-sign](https://togithub.com/electron/windows-sign) for all possible configuration options.

    When passing `windowsSign`, do not pass any other available parameters at the top level (like `certificateFile`, `certificatePassword`, or `signWithParams`).

2.  Legacy: By passing the top-level settings (`certificateFile`, `certificatePassword`, and `signWithParams`). For simple codesigning scenarios, there's no reason not to use this method - it'll work just as fine as the modern method.

##### Bug Fixes and Improvements

-   fix(publisher-github): don't sanitize asset names before upload by [@&#8203;dsanders11](https://togithub.com/dsanders11) in [https://github.com/electron/forge/pull/3485](https://togithub.com/electron/forge/pull/3485)

-   build: bump memory limit for docs:generate script by [@&#8203;dsanders11](https://togithub.com/dsanders11) in [https://github.com/electron/forge/pull/3500](https://togithub.com/electron/forge/pull/3500)

-   build: fix keyv type resolution warning during dev by [@&#8203;MarshallOfSound](https://togithub.com/MarshallOfSound) in [https://github.com/electron/forge/pull/3507](https://togithub.com/electron/forge/pull/3507)

-   build(deps): bump actions/setup-node from 4.0.1 to 4.0.2 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/electron/forge/pull/3522](https://togithub.com/electron/forge/pull/3522)

-   build(deps): bump follow-redirects from 1.15.4 to 1.15.6 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/electron/forge/pull/3537](https://togithub.com/electron/forge/pull/3537)

-   ci(windows): pin version of wix toolset to v3.14.0 by [@&#8203;erickzhao](https://togithub.com/erickzhao) in [https://github.com/electron/forge/pull/3525](https://togithub.com/electron/forge/pull/3525)

-   docs: update forge create-electron-app template to match tutorial by [@&#8203;alicelovescake](https://togithub.com/alicelovescake) in [https://github.com/electron/forge/pull/3528](https://togithub.com/electron/forge/pull/3528)

##### New Contributors

-   [@&#8203;alicelovescake](https://togithub.com/alicelovescake) made their first contribution in [https://github.com/electron/forge/pull/3528](https://togithub.com/electron/forge/pull/3528)

**Full Changelog**: https://github.com/electron/forge/compare/v7.3.0...v7.3.1

![image](https://togithub.com/electron/forge/assets/33054982/3ebd6e16-0db8-4c66-bdb0-dc4461b8226d)

</details>

<details>
<summary>napi-rs/napi-rs (@&#8203;napi-rs/cli)</summary>

### [`v3.0.0-alpha.46`](https://togithub.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.0.0-alpha.46)

[Compare Source](https://togithub.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.45...@napi-rs/cli@3.0.0-alpha.46)

#### What's Changed

-   fix(deps): update dependency emnapi to v1.1.1 by [@&#8203;renovate](https://togithub.com/renovate) in [https://github.com/napi-rs/napi-rs/pull/2017](https://togithub.com/napi-rs/napi-rs/pull/2017)
-   feat(cli): add support for armv7-unknown-linux-muslebihf by [@&#8203;sapphi-red](https://togithub.com/sapphi-red) in [https://github.com/napi-rs/napi-rs/pull/2019](https://togithub.com/napi-rs/napi-rs/pull/2019)
-   feat(cli): add support for powerpc64le-unknown-linux-gnu by [@&#8203;sapphi-red](https://togithub.com/sapphi-red) in [https://github.com/napi-rs/napi-rs/pull/2023](https://togithub.com/napi-rs/napi-rs/pull/2023)
-   feat(cli): add support for s390x-unknown-linux-gnu by [@&#8203;sapphi-red](https://togithub.com/sapphi-red) in [https://github.com/napi-rs/napi-rs/pull/2028](https://togithub.com/napi-rs/napi-rs/pull/2028)
-   feat(cli): support wasm32-wasipxx targets by [@&#8203;Brooooooklyn](https://togithub.com/Brooooooklyn) in [https://github.com/napi-rs/napi-rs/pull/2030](https://togithub.com/napi-rs/napi-rs/pull/2030)

**Full Changelog**: https://github.com/napi-rs/napi-rs/compare/[@&#8203;napi-rs/cli](https://togithub.com/napi-rs/cli)[@&#8203;3](https://togithub.com/3).0.0-alpha.45...[@&#8203;napi-rs/cli](https://togithub.com/napi-rs/cli)[@&#8203;3](https://togithub.com/3).0.0-alpha.46

### [`v3.0.0-alpha.45`](https://togithub.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.44...@napi-rs/cli@3.0.0-alpha.45)

[Compare Source](https://togithub.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.44...@napi-rs/cli@3.0.0-alpha.45)

### [`v3.0.0-alpha.44`](https://togithub.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.0.0-alpha.44)

[Compare Source](https://togithub.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.43...@napi-rs/cli@3.0.0-alpha.44)

#### What's Changed

-   fix(cli): cleanup js binding template by [@&#8203;Brooooooklyn](https://togithub.com/Brooooooklyn) in [https://github.com/napi-rs/napi-rs/pull/1984](https://togithub.com/napi-rs/napi-rs/pull/1984)
-   chore(deps): lock file maintenance by [@&#8203;renovate](https://togithub.com/renovate) in [https://github.com/napi-rs/napi-rs/pull/1987](https://togithub.com/napi-rs/napi-rs/pull/1987)
-   chore(deps): update yarn to v4.1.1 by [@&#8203;renovate](https://togithub.com/renovate) in [https://github.com/napi-rs/napi-rs/pull/1989](https://togithub.com/napi-rs/napi-rs/pull/1989)
-   ci: fix arm64 job by [@&#8203;Brooooooklyn](https://togithub.com/Brooooooklyn) in [https://github.com/napi-rs/napi-rs/pull/1998](https://togithub.com/napi-rs/napi-rs/pull/1998)
-   chore(deps): bump follow-redirects from 1.15.5 to 1.15.6 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/napi-rs/napi-rs/pull/2004](https://togithub.com/napi-rs/napi-rs/pull/2004)
-   fix(deps): update dependency emnapi to v1.1.0 by [@&#8203;renovate](https://togithub.com/renovate) in [https://github.com/napi-rs/napi-rs/pull/2006](https://togithub.com/napi-rs/napi-rs/pull/2006)
-   chore(wasm-runtime): upgrade emnapi by [@&#8203;Brooooooklyn](https://togithub.com/Brooooooklyn) in [https://github.com/napi-rs/napi-rs/pull/2008](https://togithub.com/napi-rs/napi-rs/pull/2008)

**Full Changelog**: https://github.com/napi-rs/napi-rs/compare/napi@2.16.0...[@&#8203;napi-rs/cli](https://togithub.com/napi-rs/cli)[@&#8203;3](https://togithub.com/3).0.0-alpha.44

</details>

<details>
<summary>nrwl/nx (@&#8203;nx/vite)</summary>

### [`v18.2.4`](https://togithub.com/nrwl/nx/releases/tag/18.2.4)

[Compare Source](https://togithub.com/nrwl/nx/compare/18.2.3...18.2.4)

##### 18.2.4 (2024-04-09)

##### 🩹 Fixes

-   **angular:** fix dynamic module federation generation ([#&#8203;22724](https://togithub.com/nrwl/nx/pull/22724))
-   **core:** update pty version to add windows specific flags ([#&#8203;22711](https://togithub.com/nrwl/nx/pull/22711))
-   **nextjs:** Adding tailwind should work when creating an app OOTB ([#&#8203;22709](https://togithub.com/nrwl/nx/pull/22709))

##### ❤️  Thank You

-   Craigory Coppola [@&#8203;AgentEnder](https://togithub.com/AgentEnder)
-   Leosvel Pérez Espinosa [@&#8203;leosvelperez](https://togithub.com/leosvelperez)
-   Nicholas Cunningham [@&#8203;ndcunningham](https://togithub.com/ndcunningham)

### [`v18.2.3`](https://togithub.com/nrwl/nx/releases/tag/18.2.3)

[Compare Source](https://togithub.com/nrwl/nx/compare/18.2.2...18.2.3)

#### 18.2.3 (2024-04-05)

##### 🚀 Features

-   **core:** list crystal plugins with nx report ([#&#8203;22649](https://togithub.com/nrwl/nx/pull/22649))

##### 🩹 Fixes

-   **bundling:** print errors from rollup build ([#&#8203;22707](https://togithub.com/nrwl/nx/pull/22707))
-   **core:** write terminal output to cache folder ([#&#8203;22673](https://togithub.com/nrwl/nx/pull/22673))
-   **core:** errors from create dependencies should show properly ([#&#8203;22695](https://togithub.com/nrwl/nx/pull/22695))
-   **core:** not passing props of run-commands to underlying command ([#&#8203;22595](https://togithub.com/nrwl/nx/pull/22595))
-   **js:** update jest snapshot after vite-plugin-dts bump ([#&#8203;22621](https://togithub.com/nrwl/nx/pull/22621))
-   **js:** append target when generating tmp tsconfig to prevent conflicts [#&#8203;21396](https://togithub.com/nrwl/nx/issues/21396) ([#&#8203;22671](https://togithub.com/nrwl/nx/pull/22671), [#&#8203;21396](https://togithub.com/nrwl/nx/issues/21396))
-   **js:** propagate error from child process to [@&#8203;nx/js](https://togithub.com/nx/js):node executor ([#&#8203;22705](https://togithub.com/nrwl/nx/pull/22705))
-   **misc:** fix optional branch tracking on ci pipeline ([#&#8203;22652](https://togithub.com/nrwl/nx/pull/22652))
-   **module-federation:** serve dynamic remotes statically in their own processes ([#&#8203;22688](https://togithub.com/nrwl/nx/pull/22688))
-   **nx-dev:** Update urls that are 404 ([#&#8203;22653](https://togithub.com/nrwl/nx/pull/22653))
-   **release:** respect root .npmrc registry settings for publishing ([9dd97c43a1](https://togithub.com/nrwl/nx/commit/9dd97c43a1))
-   **testing:** fix playwright executor uiPort option schema ([#&#8203;22610](https://togithub.com/nrwl/nx/pull/22610))
-   **testing:** app generators should create correct e2e config at generation time ([#&#8203;22565](https://togithub.com/nrwl/nx/pull/22565))
-   **vite:** ensure cache is created correctly for separate vite and vitest config files [#&#8203;22244](https://togithub.com/nrwl/nx/issues/22244) ([#&#8203;22618](https://togithub.com/nrwl/nx/pull/22618), [#&#8203;22244](https://togithub.com/nrwl/nx/issues/22244))
-   **webpack:** bring back previous SVG and SVGR behavior for React projects ([#&#8203;22628](https://togithub.com/nrwl/nx/pull/22628))
-   **webpack:** support standard webpack config with [@&#8203;nx/webpack](https://togithub.com/nx/webpack):dev-server ([#&#8203;22660](https://togithub.com/nrwl/nx/pull/22660))
-   **webpack:** remove url-loader from dependencies since it is replaced by asset modules ([#&#8203;22698](https://togithub.com/nrwl/nx/pull/22698))

##### ❤️  Thank You

-   Altan Stalker
-   Austin Fahsl [@&#8203;fahslaj](https://togithub.com/fahslaj)
-   Colum Ferry [@&#8203;Coly010](https://togithub.com/Coly010)
-   Craigory Coppola [@&#8203;AgentEnder](https://togithub.com/AgentEnder)
-   Emily Xiong [@&#8203;xiongemi](https://togithub.com/xiongemi)
-   Jack Hsu [@&#8203;jaysoo](https://togithub.com/jaysoo)
-   Leosvel Pérez Espinosa [@&#8203;leosvelperez](https://togithub.com/leosvelperez)
-   Miroslav Jonaš [@&#8203;meeroslav](https://togithub.com/meeroslav)
-   Nicholas Cunningham [@&#8203;ndcunningham](https://togithub.com/ndcunningham)

### [`v18.2.2`](https://togithub.com/nrwl/nx/releases/tag/18.2.2)

[Compare Source](https://togithub.com/nrwl/nx/compare/18.2.1...18.2.2)

#### 18.2.2 (2024-04-02)

##### 🚀 Features

-   **vite:** migrate to latest vite-plugin-dts ([#&#8203;22614](https://togithub.com/nrwl/nx/pull/22614))

##### 🩹 Fixes

-   **angular:** prevent false positive validation due to option default value in dev-server executor ([#&#8203;22606](https://togithub.com/nrwl/nx/pull/22606))
-   **angular:** respect skipPackageJson correctly in library generator ([#&#8203;22608](https://togithub.com/nrwl/nx/pull/22608))
-   **angular:** fix @&#8203;nx/angular/src/utils entry point ([#&#8203;22609](https://togithub.com/nrwl/nx/pull/22609))
-   **core:** do not assume workspace inputs cause all projects to be af… ([#&#8203;22573](https://togithub.com/nrwl/nx/pull/22573))
-   **react-native:** storybook relative paths ([#&#8203;22031](https://togithub.com/nrwl/nx/pull/22031))

##### ❤️  Thank You

-   arekkubaczkowski [@&#8203;arekkubaczkowski](https://togithub.com/arekkubaczkowski)
-   Colum Ferry [@&#8203;Coly010](https://togithub.com/Coly010)
-   Jason Jean [@&#8203;FrozenPandaz](https://togithub.com/FrozenPandaz)
-   Leosvel Pérez Espinosa [@&#8203;leosvelperez](https://togithub.com/leosvelperez)

### [`v18.2.1`](https://togithub.com/nrwl/nx/releases/tag/18.2.1)

[Compare Source](https://togithub.com/nrwl/nx/compare/18.2.0...18.2.1)

##### 18.2.1 (2024-03-28)

##### 🩹 Fixes

-   **nuxt:** use loadConfigFile from devkit rather than [@&#8203;nuxt/kit](https://togithub.com/nuxt/kit) ([#&#8203;22571](https://togithub.com/nrwl/nx/pull/22571))

##### ❤️  Thank You

-   Jack Hsu [@&#8203;jaysoo](https://togithub.com/jaysoo)

### [`v18.2.0`](https://togithub.com/nrwl/nx/releases/tag/18.2.0)

[Compare Source](https://togithub.com/nrwl/nx/compare/18.1.3...18.2.0)

##### 18.2.0 (2024-03-28)

##### 🚀 Features

-   **angular:** support angular 17.3.0 ([#&#8203;22202](https://togithub.com/nrwl/nx/pull/22202))
-   **bundling:** refactor rollup executor to perform single build for all formats ([#&#8203;22436](https://togithub.com/nrwl/nx/pull/22436))
-   **core:** add ability to add metadata to projects ([#&#8203;22299](https://togithub.com/nrwl/nx/pull/22299))
-   **core:** create structured project graph errors with all plugin er… ([#&#8203;22404](https://togithub.com/nrwl/nx/pull/22404))
-   **core:** add ability to scope plugins ([#&#8203;22379](https://togithub.com/nrwl/nx/pull/22379))
-   **gradle:** add gradle init generator ([#&#8203;22245](https://togithub.com/nrwl/nx/pull/22245))
-   **gradle:** make gradle public ([#&#8203;22399](https://togithub.com/nrwl/nx/pull/22399))
-   **gradle:** add gradle init generator ([#&#8203;22245](https://togithub.com/nrwl/nx/pull/22245))
-   **gradle:** add technology ([#&#8203;22528](https://togithub.com/nrwl/nx/pull/22528))
-   **graph:** remove polyfills from graph client ([#&#8203;22494](https://togithub.com/nrwl/nx/pull/22494))
-   **testing:** infer open-cypress task ([#&#8203;22556](https://togithub.com/nrwl/nx/pull/22556))
-   **webpack:** create build log for remotes to help debug errors ([#&#8203;22539](https://togithub.com/nrwl/nx/pull/22539))

##### 🩹 Fixes

-   **angular:** target correct versions of ng-packagr to create stylesheet worker synchronously ([#&#8203;22485](https://togithub.com/nrwl/nx/pull/22485))
-   **angular:** prevent creating stylesheet worker multiple times in ng-packagr executors ([#&#8203;22491](https://togithub.com/nrwl/nx/pull/22491))
-   **bundling:** prevent sensitive keys from being bundled ([#&#8203;22413](https://togithub.com/nrwl/nx/pull/22413))
-   **bundling:** prevent sensitive keys from being bundled ([#&#8203;22413](https://togithub.com/nrwl/nx/pull/22413))
-   **core:** override Path env variable on Windows platform ([#&#8203;22382](https://togithub.com/nrwl/nx/pull/22382))
-   **core:** Should work if extends is a string ([a00f6438b9](https://togithub.com/nrwl/nx/commit/a00f6438b9))
-   **core:** fix no plugins found for nx init without packge.json ([#&#8203;22434](https://togithub.com/nrwl/nx/pull/22434))
-   **core:** exponential backoff retry on cache put fail ([#&#8203;21926](https://togithub.com/nrwl/nx/pull/21926))
-   **core:** override Path env variable on Windows platform ([#&#8203;22382](https://togithub.com/nrwl/nx/pull/22382))
-   **core:** Should work if extends is a string ([66ae83e569](https://togithub.com/nrwl/nx/commit/66ae83e569))
-   **core:** fix no plugins found for nx init without packge.json ([#&#8203;22434](https://togithub.com/nrwl/nx/pull/22434))
-   **core:** exponential backoff retry on cache put fail ([#&#8203;21926](https://togithub.com/nrwl/nx/pull/21926))
-   **core:** cannot read property kind of undefined ([#&#8203;21715](https://togithub.com/nrwl/nx/pull/21715))
-   **core:** rethrow unknown errors during incremental graph calculation ([#&#8203;22522](https://togithub.com/nrwl/nx/pull/22522))
-   **core:** ignore yarn/cache when watching with the daemon ([#&#8203;22516](https://togithub.com/nrwl/nx/pull/22516))
-   **core:** handle undefined properties in schemas with additionalProperties ([#&#8203;22426](https://togithub.com/nrwl/nx/pull/22426))
-   **core:** fix caching outputs which have symlinks ([#&#8203;22548](https://togithub.com/nrwl/nx/pull/22548))
-   **gradle:** fix missing tasks ([#&#8203;22400](https://togithub.com/nrwl/nx/pull/22400))
-   **gradle:** fix gradle plugin path ([#&#8203;22405](https://togithub.com/nrwl/nx/pull/22405))
-   **gradle:** fix missing tasks ([#&#8203;22400](https://togithub.com/nrwl/nx/pull/22400))
-   **gradle:** fix gradle plugin path ([#&#8203;22405](https://togithub.com/nrwl/nx/pull/22405))
-   **gradle:** fix gradle to work on windows ([#&#8203;22470](https://togithub.com/nrwl/nx/pull/22470))
-   **gradle:** fix gradle icon ([#&#8203;22553](https://togithub.com/nrwl/nx/pull/22553))
-   **gradle:** only allow certain types of task to be cached ([#&#8203;22559](https://togithub.com/nrwl/nx/pull/22559))
-   **gradle:** add [@&#8203;nx/gradle](https://togithub.com/nx/gradle) to nx migrations ([#&#8203;22567](https://togithub.com/nrwl/nx/pull/22567))
-   **js:** update babel preset to specify minor version of core-js for better optimization ([#&#8203;22433](https://togithub.com/nrwl/nx/pull/22433))
-   **js:** match core-js version with babel options ([#&#8203;22493](https://togithub.com/nrwl/nx/pull/22493))
-   **js:** migrate core-js to 3.36 for workspaces that use it ([#&#8203;22495](https://togithub.com/nrwl/nx/pull/22495))
-   **js:** handle case where tslib or [@&#8203;swc/helpers](https://togithub.com/swc/helpers) are missing from externalNodes ([#&#8203;22523](https://togithub.com/nrwl/nx/pull/22523))
-   **js:** do not write cached lockfile parsed results when an error is… ([#&#8203;22526](https://togithub.com/nrwl/nx/pull/22526))
-   **linter:** convert parser options to flat config even is parser is missing ([#&#8203;22388](https://togithub.com/nrwl/nx/pull/22388))
-   **linter:** convert parser options to flat config even is parser is missing ([#&#8203;22388](https://togithub.com/nrwl/nx/pull/22388))
-   **misc:** handle cwd correctly when generating artifacts with as-provided ([#&#8203;22411](https://togithub.com/nrwl/nx/pull/22411))
-   **misc:** handle cwd correctly when generating artifacts with as-provided ([#&#8203;22411](https://togithub.com/nrwl/nx/pull/22411))
-   **misc:** align nx init package.json scripts handling when deselecting all plugins ([#&#8203;22490](https://togithub.com/nrwl/nx/pull/22490))
-   **react:** HMR for withModuleFederation [#&#8203;22300](https://togithub.com/nrwl/nx/issues/22300) ([#&#8203;22562](https://togithub.com/nrwl/nx/pull/22562), [#&#8203;22300](https://togithub.com/nrwl/nx/issues/22300))
-   **remix:** generate correct e2e config if Crystal is used ([#&#8203;22558](https://togithub.com/nrwl/nx/pull/22558))
-   **rollup:** remove exports field from @&#8203;nx/rollup/package.json since is a breaking change ([#&#8203;22545](https://togithub.com/nrwl/nx/pull/22545))
-   **storybook:** do not set cacheableOperations if not previously set ([#&#8203;22535](https://togithub.com/nrwl/nx/pull/22535))
-   **testing:** remove root from the cypress ci-e2e group ([#&#8203;22468](https://togithub.com/nrwl/nx/pull/22468))
-   **testing:** name group of e2e ci tasks distinctly from target name ([#&#8203;22525](https://togithub.com/nrwl/nx/pull/22525))
-   **web:** spa flag should correctly define redirect ([#&#8203;22487](https://togithub.com/nrwl/nx/pull/22487))
-   **webpack:** Stylus loader path ([#&#8203;22373](https://togithub.com/nrwl/nx/pull/22373))
-   **webpack:** Stylus loader path ([#&#8203;22373](https://togithub.com/nrwl/nx/pull/22373))
-   **webpack:** pass options from executor to NxWebpackPlugin correctly ([#&#8203;22529](https://togithub.com/nrwl/nx/pull/22529))
-   **webpack:** resolve assets from executor options as relative to workspace root ([#&#8203;22544](https://togithub.com/nrwl/nx/pull/22544))

##### ❤️  Thank You

-   Colum Ferry [@&#8203;Coly010](https://togithub.com/Coly010)
-   Emily Xiong [@&#8203;xiongemi](https://togithub.com/xiongemi)
-   Jack Hsu [@&#8203;jaysoo](https://togithub.com/jaysoo)
-   Jason Jean [@&#8203;FrozenPandaz](https://togithub.com/FrozenPandaz)
-   Joel Pelaez Jorge
-   Leosvel Pérez Espinosa [@&#8203;leosvelperez](https://togithub.com/leosvelperez)
-   Maxence LEFEBVRE
-   MaxKless [@&#8203;MaxKless](https://togithub.com/MaxKless)
-   Mike Pham
-   Miroslav Jonaš [@&#8203;meeroslav](https://togithub.com/meeroslav)
-   Nicholas Cunningham [@&#8203;ndcunningham](https://togithub.com/ndcunningham)

### [`v18.1.3`](https://togithub.com/nrwl/nx/releases/tag/18.1.3)

[Compare Source](https://togithub.com/nrwl/nx/compare/18.1.2...18.1.3)

##### 18.1.3 (2024-03-25)

##### 🚀 Features

-   **gradle:** add gradle init generator ([#&#8203;22245](https://togithub.com/nrwl/nx/pull/22245))

##### 🩹 Fixes

-   **angular:** prevent creating stylesheet worker multiple times in ng-packagr executors ([#&#8203;22491](https://togithub.com/nrwl/nx/pull/22491))
-   **bundling:** prevent sensitive keys from being bundled ([#&#8203;22413](https://togithub.com/nrwl/nx/pull/22413))
-   **core:** override Path env variable on Windows platform ([#&#8203;22382](https://togithub.com/nrwl/nx/pull/22382))
-   **core:** Should work if extends is a string ([66ae83e569](https://togithub.com/nrwl/nx/commit/66ae83e569))
-   **core:** fix no plugins found for nx init without packge.json ([#&#8203;22434](https://togithub.com/nrwl/nx/pull/22434))
-   **core:** exponential backoff retry on cache put fail ([#&#8203;21926](https://togithub.com/nrwl/nx/pull/21926))
-   **gradle:** fix missing tasks ([#&#8203;22400](https://togithub.com/nrwl/nx/pull/22400))
-   **gradle:** fix gradle plugin path ([#&#8203;22405](https://togithub.com/nrwl/nx/pull/22405))
-   **linter:** convert parser options to flat config even is parser is missing ([#&#8203;22388](https://togithub.com/nrwl/nx/pull/22388))
-   **misc:** handle cwd correctly when generating artifacts with as-provided ([#&#8203;22411](https://togithub.com/nrwl/nx/pull/22411))
-   **webpack:** Stylus loader path ([#&#8203;22373](https://togithub.com/nrwl/nx/pull/22373))

##### ❤️  Thank You

-   Emily Xiong
-   Jack Hsu
-   Jason Jean
-   Joel Pelaez Jorge
-   Leosvel Pérez Espinosa
-   Mike Pham
-   Miroslav Jonaš
-   Nicholas Cunningham

</details>

<details>
<summary>open-telemetry/opentelemetry-js (@&#8203;opentelemetry/exporter-prometheus)</summary>

### [`v0.50.0`](3920b158d0...5231aa2550)

[Compare Source](3920b158d0...5231aa2550)

</details>

<details>
<summary>open-telemetry/opentelemetry-js-contrib (@&#8203;opentelemetry/instrumentation-graphql)</summary>

### [`v0.39.0`](9d19ca4103...17a0bc1da3)

[Compare Source](9d19ca4103...17a0bc1da3)

### [`v0.38.1`](32204a362d...39c34df61f)

[Compare Source](fcea8ca0c8...9d19ca4103)

</details>

<details>
<summary>un-ts/eslint-plugin-import-x (eslint-plugin-import-x)</summary>

### [`v0.5.0`](https://togithub.com/un-ts/eslint-plugin-import-x/blob/HEAD/CHANGELOG.md#050)

[Compare Source](https://togithub.com/un-ts/eslint-plugin-import-x/compare/v0.4.4...v0.5.0)

##### Minor Changes

-   [#&#8203;66](https://togithub.com/un-ts/eslint-plugin-import-x/pull/66) [`49418a0`](49418a0352) Thanks [@&#8203;JounQin](https://togithub.com/JounQin)! - chore(dep)!: drop eslint <8.56 support

-   [#&#8203;66](https://togithub.com/un-ts/eslint-plugin-import-x/pull/66) [`49418a0`](49418a0352) Thanks [@&#8203;JounQin](https://togithub.com/JounQin)! - feat!: upgrade [@&#8203;typescript-eslint/utils](https://togithub.com/typescript-eslint/utils) to v7

</details>

<details>
<summary>SonarSource/eslint-plugin-sonarjs (eslint-plugin-sonarjs)</summary>

### [`v0.25.1`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/0.25.1)

[Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/0.25.0...0.25.1)

##### What's Changed

-   Resolve issue [#&#8203;456](https://togithub.com/SonarSource/eslint-plugin-sonarjs/issues/456) - [@&#8203;typescript-eslint/utils](https://togithub.com/typescript-eslint/utils) dependency is missing by [@&#8203;ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/457](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/457)
-   Bump the project manifest version to 0.25.1 by [@&#8203;ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/458](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/458)

##### New Contributors

-   [@&#8203;ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) made their first contribution in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/457](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/457)

**Full Changelog**: https://github.com/SonarSource/eslint-plugin-sonarjs/compare/0.25.0...0.25.1

### [`v0.25.0`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/0.25.0)

[Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/0.24.0...0.25.0)

#### What's Changed

-   Prepare for next development iteration by [@&#8203;yassin-kammoun-sonarsource](https://togithub.com/yassin-kammoun-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/446](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/446)
-   Fix FP 3699 (no-use-of-empty-return-values) to handle ambient functions by [@&#8203;zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/451](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/451)
-   Make no-unused-collection not trigger if writing to elements of said collection by [@&#8203;zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/452](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/452)
-   Replace devDependency `@typescript-eslint/experimental-utils` with `@typescript-eslint/utils` by [@&#8203;yassin-kammoun-sonarsource](https://togithub.com/yassin-kammoun-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/453](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/453)

#### New Contributors

-   [@&#8203;zglicz](https://togithub.com/zglicz) made their first contribution in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/451](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/451)

**Full Changelog**: https://github.com/SonarSource/eslint-plugin-sonarjs/compare/0.24.0...0.25.0

</details>

<details>
<summary>qmhc/vite-plugin-dts (vite-plugin-dts)</summary>

### [`v3.8.1`](https://togithub.com/qmhc/vite-plugin-dts/blob/HEAD/CHANGELOG.md#381-2024-03-28)

[Compare Source](https://togithub.com/qmhc/vite-plugin-dts/compare/v3.8.0...v3.8.1)

##### Bug Fixes

-   correct process property names in imports ([fb320fb](fb320fb814)), closes [#&#8203;316](https://togithub.com/qmhc/vite-plugin-dts/issues/316)

### [`v3.8.0`](https://togithub.com/qmhc/vite-plugin-dts/blob/HEAD/CHANGELOG.md#380-2024-03-27)

[Compare Source](https://togithub.com/qmhc/vite-plugin-dts/compare/v3.7.3...v3.8.0)

##### Bug Fixes

-   add syntactic and semantic diagnostics ([#&#8203;310](https://togithub.com/qmhc/vite-plugin-dts/issues/310)) ([7c10782](7c10782284))

##### Features

-   collect declared modules when rollup types ([39606bd](39606bd345)), closes [#&#8203;240](https://togithub.com/qmhc/vite-plugin-dts/issues/240)

#### [3.7.3](https://togithub.com/qmhc/vite-plugin-dts/compare/v3.7.2...v3.7.3) (2024-02-21)

##### Bug Fixes

-   incorrect process for removing pure import ([d0c0c86](d0c0c867d6)), closes [#&#8203;301](https://togithub.com/qmhc/vite-plugin-dts/issues/301)

#### [3.7.2](https://togithub.com/qmhc/vite-plugin-dts/compare/v3.7.1...v3.7.2) (2024-01-24)

##### Bug Fixes

-   correct match result for alias form tsconfig ([88469d0](88469d0e6a)), closes [#&#8203;298](https://togithub.com/qmhc/vite-plugin-dts/issues/298)

#### [3.7.1](https://togithub.com/qmhc/vite-plugin-dts/compare/v3.7.0...v3.7.1) (2024-01-15)

##### Bug Fixes

-   improve aliases replacement logic ([e8827cb](e8827cb6c8)), closes [#&#8203;294](https://togithub.com/qmhc/vite-plugin-dts/issues/294)
-   manually collect compiler options for types rollup ([0d0b255](0d0b255ad2)), closes [#&#8203;297](https://togithub.com/qmhc/vite-plugin-dts/issues/297)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), 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/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5In0=-->
2024-04-11 10:17:32 +00:00

359 lines
8.8 KiB
TypeScript

import { assertExists } from '@blocksuite/global/utils';
import type { Doc } from 'yjs';
import { applyUpdate, encodeStateAsUpdate, encodeStateVector } from 'yjs';
import type { DocDataSource } from './data-source';
import type { DataSourceAdapter, Status } from './types';
function getDoc(doc: Doc, guid: string): Doc | undefined {
if (doc.guid === guid) {
return doc;
}
for (const subdoc of doc.subdocs) {
const found = getDoc(subdoc, guid);
if (found) {
return found;
}
}
return undefined;
}
interface LazyProviderOptions {
origin?: string;
}
export type DocProvider = {
// backport from `@blocksuite/store`
passive: true;
sync(onlyRootDoc?: boolean): Promise<void>;
get connected(): boolean;
connect(): void;
disconnect(): void;
};
/**
* Creates a lazy provider that connects to a datasource and synchronizes a root document.
*/
export const createLazyProvider = (
rootDoc: Doc,
datasource: DocDataSource,
options: LazyProviderOptions = {}
): DocProvider & DataSourceAdapter => {
let connected = false;
const pendingMap = new Map<string, Uint8Array[]>(); // guid -> pending-updates
const disposableMap = new Map<string, Set<() => void>>();
const connectedDocs = new Set<string>();
let abortController: AbortController | null = null;
const { origin = 'lazy-provider' } = options;
// todo: should we use a real state machine here like `xstate`?
let currentStatus: Status = {
type: 'idle',
};
let syncingStack = 0;
const callbackSet = new Set<() => void>();
const changeStatus = (newStatus: Status) => {
// simulate a stack, each syncing and synced should be paired
if (newStatus.type === 'syncing') {
syncingStack++;
} else if (newStatus.type === 'synced' || newStatus.type === 'error') {
syncingStack--;
}
if (syncingStack < 0) {
console.error(
'syncingStatus < 0, this should not happen',
options.origin
);
}
if (syncingStack === 0) {
currentStatus = newStatus;
}
if (newStatus.type !== 'synced') {
currentStatus = newStatus;
}
if (syncingStack === 0) {
if (!connected) {
currentStatus = {
type: 'idle',
};
} else {
currentStatus = {
type: 'synced',
};
}
}
callbackSet.forEach(cb => cb());
};
async function syncDoc(doc: Doc) {
const guid = doc.guid;
{
const update = await datasource.queryDocState(guid);
let hasUpdate = false;
if (
update &&
update.missing.length !== 2 &&
update.missing[0] !== 0 &&
update.missing[1] !== 0
) {
applyUpdate(doc, update.missing, origin);
hasUpdate = true;
}
if (hasUpdate) {
await datasource.sendDocUpdate(
guid,
encodeStateAsUpdate(doc, update ? update.state : undefined)
);
}
}
if (!connected) {
return;
}
changeStatus({
type: 'syncing',
});
const remoteUpdate = await datasource
.queryDocState(guid, {
stateVector: encodeStateVector(doc),
})
.then(remoteUpdate => {
changeStatus({
type: 'synced',
});
return remoteUpdate;
})
.catch(error => {
changeStatus({
type: 'error',
error,
});
throw error;
});
pendingMap.set(guid, []);
if (remoteUpdate) {
applyUpdate(doc, remoteUpdate.missing, origin);
}
if (!connected) {
return;
}
// perf: optimize me
// it is possible the doc is only in memory but not yet in the datasource
// we need to send the whole update to the datasource
await datasource.sendDocUpdate(
guid,
encodeStateAsUpdate(doc, remoteUpdate ? remoteUpdate.state : undefined)
);
doc.emit('sync', [true, doc]);
}
/**
* Sets up event listeners for a Yjs document.
* @param doc - The Yjs document to set up listeners for.
*/
function setupDocListener(doc: Doc) {
const disposables = new Set<() => void>();
disposableMap.set(doc.guid, disposables);
const updateHandler = async (update: Uint8Array, updateOrigin: unknown) => {
if (origin === updateOrigin) {
return;
}
changeStatus({
type: 'syncing',
});
datasource
.sendDocUpdate(doc.guid, update)
.then(() => {
changeStatus({
type: 'synced',
});
})
.catch(error => {
changeStatus({
type: 'error',
error,
});
console.error(error);
});
};
const subdocsHandler = (event: {
loaded: Set<Doc>;
removed: Set<Doc>;
added: Set<Doc>;
}) => {
event.loaded.forEach(subdoc => {
connectDoc(subdoc).catch(console.error);
});
event.removed.forEach(subdoc => {
disposeDoc(subdoc);
});
};
doc.on('update', updateHandler);
doc.on('subdocs', subdocsHandler);
// todo: handle destroy?
disposables.add(() => {
doc.off('update', updateHandler);
doc.off('subdocs', subdocsHandler);
});
}
/**
* Sets up event listeners for the datasource.
* Specifically, listens for updates to documents and applies them to the corresponding Yjs document.
*/
function setupDatasourceListeners() {
assertExists(abortController, 'abortController should be defined');
const unsubscribe = datasource.onDocUpdate?.((guid, update) => {
changeStatus({
type: 'syncing',
});
const doc = getDoc(rootDoc, guid);
if (doc) {
applyUpdate(doc, update, origin);
//
if (pendingMap.has(guid)) {
pendingMap
.get(guid)
?.forEach(update => applyUpdate(doc, update, origin));
pendingMap.delete(guid);
}
} else {
// This case happens when the father doc is not yet updated,
// so that the child doc is not yet created.
// We need to put it into cache so that it can be applied later.
console.warn('doc not found', guid);
pendingMap.set(guid, (pendingMap.get(guid) ?? []).concat(update));
}
changeStatus({
type: 'synced',
});
});
abortController.signal.addEventListener('abort', () => {
unsubscribe?.();
});
}
// when a subdoc is loaded, we need to sync it with the datasource and setup listeners
async function connectDoc(doc: Doc) {
// skip if already connected
if (connectedDocs.has(doc.guid)) {
return;
}
connectedDocs.add(doc.guid);
setupDocListener(doc);
await syncDoc(doc);
await Promise.all(
[...doc.subdocs]
.filter(subdoc => subdoc.shouldLoad)
.map(subdoc => connectDoc(subdoc))
);
}
function disposeDoc(doc: Doc) {
connectedDocs.delete(doc.guid);
const disposables = disposableMap.get(doc.guid);
if (disposables) {
disposables.forEach(dispose => dispose());
disposableMap.delete(doc.guid);
}
// also dispose all subdocs
doc.subdocs.forEach(disposeDoc);
}
function disposeAll() {
disposableMap.forEach(disposables => {
disposables.forEach(dispose => dispose());
});
disposableMap.clear();
connectedDocs.clear();
}
/**
* Connects to the datasource and sets up event listeners for document updates.
*/
function connect() {
connected = true;
abortController = new AbortController();
changeStatus({
type: 'syncing',
});
// root doc should be already loaded,
// but we want to populate the cache for later update events
connectDoc(rootDoc)
.then(() => {
changeStatus({
type: 'synced',
});
})
.catch(error => {
changeStatus({
type: 'error',
error,
});
console.error(error);
});
setupDatasourceListeners();
}
async function disconnect() {
connected = false;
disposeAll();
assertExists(abortController, 'abortController should be defined');
abortController.abort();
abortController = null;
}
const syncDocRecursive = async (doc: Doc) => {
await syncDoc(doc);
await Promise.all(
[...doc.subdocs.values()].map(subdoc => syncDocRecursive(subdoc))
);
};
return {
sync: async onlyRootDoc => {
connected = true;
try {
if (onlyRootDoc) {
await syncDoc(rootDoc);
} else {
await syncDocRecursive(rootDoc);
}
} finally {
connected = false;
}
},
get status() {
return currentStatus;
},
subscribeStatusChange(cb: () => void) {
callbackSet.add(cb);
return () => {
callbackSet.delete(cb);
};
},
get connected() {
return connected;
},
passive: true,
connect,
disconnect,
datasource,
};
};