1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
Commit Graph

3974 Commits

Author SHA1 Message Date
andreas-unleash
a096b2a485
fix: store redirect to localStorage to avoid loss of redirect (#5929)
Stores `redirect` param in localStorage in the Authentication component.
Retrieves the `redirect` param from localStorage at the Login screen if
it is not there in the url.

This will solve losing the redirect information all provider logins

Closes #
[1-1890](https://linear.app/unleash/issue/1-1890/capture-path-before-logging-in-and-redirect-to-it-if-there-and-custom)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-01-19 11:32:26 +02:00
Fredrik Strand Oseberg
4ee2acb3aa
fix: add more comprehensive metrics for feedback (#5967)
Add more comprehensive tracking of feedback
2024-01-19 10:23:40 +01:00
Thomas Heartman
c69137a1ee
feat: add algorithm to detect what strategy changes would be overwritten by applying a CR (#5963)
This change adds an algorithm with tests for detecting what changes
would be overwritten by applying a CR.

Test cases:
- It compares strategies regardless of order of keys in the objects.
This ensures that two strategies with the same content but different
order of keys are compared correctly.
- It treats `undefined` or missing segments in old config as equal to
`[]` in change
- It treats `undefined` or missing strategy variants in old config and
change as equal to `[]`
- It lists changes in a sorted list with the correct values
- It ignores object order on nested objects. Similar to the first
point, this does order-insensitive comparison for nested objects (such
as params and constraints).
2024-01-19 13:08:08 +04:00
Mateusz Kwasniewski
b00909db3f
test: show array param decoder (#5955) 2024-01-19 09:27:47 +01:00
Mateusz Kwasniewski
22037cb0f2
fix: normalize hours back to prevent freezing UI (#5953) 2024-01-19 09:27:31 +01:00
renovate[bot]
277e3e0afd
chore(deps): update react-router monorepo to v6.21.2 (#5961)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [react-router](https://togithub.com/remix-run/react-router)
([source](https://togithub.com/remix-run/react-router/tree/HEAD/packages/react-router))
| [`6.21.1` ->
`6.21.2`](https://renovatebot.com/diffs/npm/react-router/6.21.1/6.21.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-router/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router/6.21.1/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router/6.21.1/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [react-router-dom](https://togithub.com/remix-run/react-router)
([source](https://togithub.com/remix-run/react-router/tree/HEAD/packages/react-router-dom))
| [`6.21.1` ->
`6.21.2`](https://renovatebot.com/diffs/npm/react-router-dom/6.21.1/6.21.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-router-dom/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router-dom/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router-dom/6.21.1/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router-dom/6.21.1/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>remix-run/react-router (react-router)</summary>

###
[`v6.21.2`](https://togithub.com/remix-run/react-router/compare/react-router@6.21.1...react-router@6.21.2)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router@6.21.1...react-router@6.21.2)

</details>

<details>
<summary>remix-run/react-router (react-router-dom)</summary>

###
[`v6.21.2`](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.21.1...react-router-dom@6.21.2)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.21.1...react-router-dom@6.21.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, 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/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 21:18:26 +00:00
renovate[bot]
bf65861640
chore(deps): update dependency @tanstack/react-table to v8.11.4 (#5958)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@tanstack/react-table](https://togithub.com/tanstack/table) |
[`8.11.3` ->
`8.11.4`](https://renovatebot.com/diffs/npm/@tanstack%2freact-table/8.11.3/8.11.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@tanstack%2freact-table/8.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tanstack%2freact-table/8.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tanstack%2freact-table/8.11.3/8.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tanstack%2freact-table/8.11.3/8.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>tanstack/table (@&#8203;tanstack/react-table)</summary>

###
[`v8.11.4`](https://togithub.com/TanStack/table/releases/tag/v8.11.4)

[Compare
Source](https://togithub.com/tanstack/table/compare/v8.11.3...v8.11.4)

Version 8.11.4 - 1/11/2024, 5:30 PM

#### Changes

##### Fix

- add optional document context for resize listeners prettier
([`9aba3c0`](https://togithub.com/tanstack/table/commit/9aba3c08)) by
Kevin Vandy
- add optional document context for resize listeners
([#&#8203;5003](https://togithub.com/tanstack/table/issues/5003))
([`8e106a9`](https://togithub.com/tanstack/table/commit/8e106a99)) by
Jareth
- Correctly exit publish script
([#&#8203;5262](https://togithub.com/tanstack/table/issues/5262))
([`57336fc`](https://togithub.com/tanstack/table/commit/57336fc7)) by
Lachlan Collins

##### Chore

- Fix incorrect npm tag for previous version release
([#&#8203;5265](https://togithub.com/tanstack/table/issues/5265))
([`0899c33`](https://togithub.com/tanstack/table/commit/0899c335)) by
Lachlan Collins
- Stricter tsconfig options
([#&#8203;5264](https://togithub.com/tanstack/table/issues/5264))
([`86d6447`](https://togithub.com/tanstack/table/commit/86d64470)) by
Lachlan Collins
- Update to Rollup v4, Vite v5
([#&#8203;5260](https://togithub.com/tanstack/table/issues/5260))
([`fefe74f`](https://togithub.com/tanstack/table/commit/fefe74f4)) by
Lachlan Collins
- Update examples to use Vite v4
([#&#8203;5259](https://togithub.com/tanstack/table/issues/5259))
([`5d615ab`](https://togithub.com/tanstack/table/commit/5d615ab5)) by
Lachlan Collins
- Update select workspace dependencies
([#&#8203;5258](https://togithub.com/tanstack/table/issues/5258))
([`a990435`](https://togithub.com/tanstack/table/commit/a990435f)) by
Lachlan Collins

##### Docs

- fix meta data example
([#&#8203;5256](https://togithub.com/tanstack/table/issues/5256))
([`6561267`](https://togithub.com/tanstack/table/commit/65612676)) by
Nathan Isaac
- fix feature guide links
([`8a14fa6`](https://togithub.com/tanstack/table/commit/8a14fa66)) by
Kevin Vandy
- refactor guides section and new table instance guide
([#&#8203;5254](https://togithub.com/tanstack/table/issues/5254))
([`b327934`](https://togithub.com/tanstack/table/commit/b3279343)) by
Kevin Van Cott
- add solid filters example
([#&#8203;5252](https://togithub.com/tanstack/table/issues/5252))
([`80d92d6`](https://togithub.com/tanstack/table/commit/80d92d6f)) by
Hephaestian

##### Ci

- Use publish function from `@tanstack/config`
([#&#8203;5257](https://togithub.com/tanstack/table/issues/5257))
([`43989f2`](https://togithub.com/tanstack/table/commit/43989f26)) by
Lachlan Collins

#### Packages

-
[@&#8203;tanstack/table-core](https://togithub.com/tanstack/table-core)[@&#8203;8](https://togithub.com/8).11.4
-
[@&#8203;tanstack/react-table](https://togithub.com/tanstack/react-table)[@&#8203;8](https://togithub.com/8).11.4
-
[@&#8203;tanstack/solid-table](https://togithub.com/tanstack/solid-table)[@&#8203;8](https://togithub.com/8).11.4
-
[@&#8203;tanstack/vue-table](https://togithub.com/tanstack/vue-table)[@&#8203;8](https://togithub.com/8).11.4
-
[@&#8203;tanstack/svelte-table](https://togithub.com/tanstack/svelte-table)[@&#8203;8](https://togithub.com/8).11.4
-
[@&#8203;tanstack/react-table-devtools](https://togithub.com/tanstack/react-table-devtools)[@&#8203;8](https://togithub.com/8).11.4

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, 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/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 18:14:57 +00:00
Mateusz Kwasniewski
1fd7749ae7
fix: prevent jumping columns in search view (#5950) 2024-01-18 14:37:57 +01:00
Mateusz Kwasniewski
105747293e
fix: show pagination when enough items (#5948) 2024-01-18 14:36:05 +01:00
Nuno Góis
3dd188e77c
refactor: shared url_safe_basic constant (#5952)
Uses a new `URL_SAFE_BASIC` regex constant that checks for characters
that are commonly used in URL path sections: alphanumeric lowercase
characters, dashes and underscores.

This will allow us to re-use this constant in our server-side
validation.
2024-01-18 12:33:33 +00:00
Nuno Góis
5b56fac66f
Chore inc webhooks modal form (#5938)
https://linear.app/unleash/issue/2-1818/ui-create-incoming-webhook-newedit-modal

Adds the incoming webhooks modal form, which allows users to create and
edit incoming webhooks, along with their respective tokens.

Follows a logic similar to service accounts and their tokens, and tries
to use the newest form validation flow that we implemented in the roles
form.


![image](https://github.com/Unleash/unleash/assets/14320932/5d37a72e-2777-4c8b-b71b-3c0610959a52)
2024-01-18 11:38:05 +00:00
Tymoteusz Czech
4b02d6aa9c
Executive Dashboard page setup (#5949) 2024-01-18 12:32:25 +01:00
Mateusz Kwasniewski
d3215335c9
feat: metrics periods expressed in days (#5928) 2024-01-18 11:54:20 +01:00
Mateusz Kwasniewski
f5cf118b12
fix: precise selected all chips check (#5945) 2024-01-18 11:53:56 +01:00
Mateusz Kwasniewski
567099a15b
fix: table loader (#5937) 2024-01-18 11:26:42 +01:00
Jaanus Sellin
242d2e5f27
chore : upgrade jsdom to 23 (#5934) 2024-01-17 16:20:27 +02:00
andreas-unleash
60813acb09
fix: make the conflcit email template button conditionally render (#5931)
Makes the schedule conflict email button conditional to having the link
present.

Closes #
[1-1950](https://linear.app/unleash/issue/1-1950/modify-the-template-to-make-the-new-button-conditional)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-01-17 13:26:07 +00:00
Fredrik Strand Oseberg
1deee10317
Feat/disabled strategies (#5930)
This PR makes disabled strategies more prominent in the UI:

<img width="1031" alt="Skjermbilde 2024-01-17 kl 11 26 11"
src="https://github.com/Unleash/unleash/assets/16081982/4a07c0aa-8f86-4854-829e-1088abecfb4e">
2024-01-17 13:20:39 +01:00
Mateusz Kwasniewski
5fb2ac8054
fix: select default application based on timespan (#5927) 2024-01-17 12:15:03 +01:00
Christopher Kolstad
2b1111044f
feat: added killswitch for admin tokens (#5905)
Since we've now added PAT's we really do recommend switching to those,
or for enterprises, we recommend using service accounts.

Admin tokens have an obvious disadvantage in that they're not connected
to any user, so actions performed by them are harder to audit.

This PR adds a killswitch for turning it off, in preparation for
deprecating them and ultimately removing them in the future.
2024-01-17 10:27:36 +01:00
Mateusz Kwasniewski
6a55964ce8
fix: metrics apps should be selected from the longest time span (#5923) 2024-01-17 09:51:59 +01:00
renovate[bot]
f61750a755
chore(deps): update dependency debounce to v2 (#5901)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [debounce](https://togithub.com/sindresorhus/debounce) | [`1.2.1` ->
`2.0.0`](https://renovatebot.com/diffs/npm/debounce/1.2.1/2.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/debounce/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/debounce/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/debounce/1.2.1/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/debounce/1.2.1/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>sindresorhus/debounce (debounce)</summary>

###
[`v2.0.0`](https://togithub.com/sindresorhus/debounce/releases/tag/v2.0.0)

[Compare
Source](https://togithub.com/sindresorhus/debounce/compare/1.2.1...v2.0.0)

##### Breaking

- Require Node.js 18 and modern browsers
[`2872fb8`](https://togithub.com/sindresorhus/debounce/commit/2872fb8)
- Removed support for
[component](https://togithub.com/componentjs/component) (now defunct
project)

##### Improvements

- Add TypeScript types
[`2872fb8`](https://togithub.com/sindresorhus/debounce/commit/2872fb8)
- Protect against improper use in classes
[`95eef87`](https://togithub.com/sindresorhus/debounce/commit/95eef87)

##### Fixes

- Fix recursive callback args
([#&#8203;32](https://togithub.com/sindresorhus/debounce/issues/32))
[`c997759`](https://togithub.com/sindresorhus/debounce/commit/c997759)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, 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/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2024-01-17 10:29:17 +02:00
Fredrik Strand Oseberg
9d32bf53eb
fix: refactor autosave to use the id to resolve the constraint (#5917)
Use id to resolve autosave constraints now that we have consistent id
references
2024-01-17 08:51:54 +01:00
renovate[bot]
5f4fe2072f
chore(deps): update dependency @types/node to v18.19.6 (#5920)
[![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.19.5` ->
`18.19.6`](https://renovatebot.com/diffs/npm/@types%2fnode/18.19.5/18.19.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.19.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.19.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.19.5/18.19.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.19.5/18.19.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, 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/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-16 18:34:39 +00:00
Nuno Góis
d2366a8aa1
fix: improve SSO default role resolution (#5916)
This improves the role resolution in the value of the default root role,
preventing a bug where settings saved
pre-https://github.com/Unleash/unleash/pull/5887 would show an empty
default root role in the dropdown.

Also makes the role update more robust.
2024-01-16 16:08:46 +00:00
Mateusz Kwasniewski
3bebc11fb2
feat: adjust height on applications list in metrics (#5918) 2024-01-16 16:21:55 +01:00
Fredrik Strand Oseberg
967ee13e62
fix: add symbols as constraint ids (#5913)
This PR adds uuids as ids using a symbol in order to make sure we only
use this to keep internal order in the viritual DOM. This makes us able
to have predictable mutable lists on the frontend, and makes it easy to
not pass this property along to the backend.
2024-01-16 13:47:04 +01:00
Mateusz Kwasniewski
dfeaea8ee9
feat: hours back feature metrics tracking (#5904) 2024-01-16 10:30:06 +01:00
Nuno Góis
3b5b1ec020
chore: add tokens column to incoming webhooks table (#5903)
https://linear.app/unleash/issue/2-1827/add-remaining-columns-to-the-incoming-webhooks-table

Adds the "tokens" column to the incoming webhooks table.

Also includes some slight adjustments to the table, including a fix to
center the actions button.


![image](https://github.com/Unleash/unleash/assets/14320932/2ca63b17-c20e-41d0-9065-db8bcad33c24)
2024-01-16 08:43:14 +00:00
Fredrik Strand Oseberg
9d370ad85d
Fix/autosave on delete (#5899)
This PR will make FeatureStrategyConstraints use the value coming from
the setState function instead of closing over a stale value.
2024-01-16 09:23:35 +01:00
Mateusz Kwasniewski
6cfb7b4fb8
feat: feature metrics table timezone (#5880) 2024-01-15 15:31:10 +01:00
Mateusz Kwasniewski
9ac8a466ab
feat: select all applications (#5897) 2024-01-15 15:30:35 +01:00
Nuno Góis
0ba37e8622
feat: list all root roles in SSO config (#5887)
Lists all root roles in SSO config, including custom root roles.


![image](https://github.com/Unleash/unleash/assets/14320932/30114169-4184-4a22-9671-c7041b750d1c)
2024-01-15 13:13:29 +00:00
Nuno Góis
22acadf4cc
fix: role form sluggishness (#5888)
This seems to improve the performance in the role form while still
maintaining the same validation logic.

A big factor was the memoization of the categories calculation and
respective elements, which is especially impactful when there are many
environments.
2024-01-15 08:37:53 +00:00
Fredrik Strand Oseberg
ebd673e9fc
fix: use the new method (#5894)
This PR adds the new setValuesWithRecord method to the deletion of
values. In addition, we'll auto save when using the undo button aswell.
2024-01-15 09:28:19 +01:00
Fredrik Strand Oseberg
f7b285d340
feat: add undo (#5879)
This PR adds undo functionality so you can restore the state of your
constraint if you make a mistake. We also amend the autosave
functionality to only apply when values are changed and you have a valid
value. See demo:

https://www.loom.com/share/da704da8aee94ac18d4caae697426802
2024-01-15 08:47:59 +01:00
renovate[bot]
f3f3e2780e
chore(deps): update dependency @types/node to v18.19.5 (#5889)
[![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.19.4` ->
`18.19.5`](https://renovatebot.com/diffs/npm/@types%2fnode/18.19.4/18.19.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.19.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.19.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.19.4/18.19.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.19.4/18.19.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, 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/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 00:40:06 +00:00
renovate[bot]
d1ea959486
chore(deps): update react-router monorepo to v6.21.1 (#5886)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [react-router](https://togithub.com/remix-run/react-router)
([source](https://togithub.com/remix-run/react-router/tree/HEAD/packages/react-router))
| [`6.20.1` ->
`6.21.1`](https://renovatebot.com/diffs/npm/react-router/6.20.1/6.21.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-router/6.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router/6.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router/6.20.1/6.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router/6.20.1/6.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [react-router-dom](https://togithub.com/remix-run/react-router)
([source](https://togithub.com/remix-run/react-router/tree/HEAD/packages/react-router-dom))
| [`6.20.1` ->
`6.21.1`](https://renovatebot.com/diffs/npm/react-router-dom/6.20.1/6.21.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-router-dom/6.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router-dom/6.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router-dom/6.20.1/6.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router-dom/6.20.1/6.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>remix-run/react-router (react-router)</summary>

###
[`v6.21.1`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#6211)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router@6.21.0...react-router@6.21.1)

##### Patch Changes

- Fix bug with `route.lazy` not working correctly on initial SPA load
when `v7_partialHydration` is specified
([#&#8203;11121](https://togithub.com/remix-run/react-router/pull/11121))
-   Updated dependencies:
    -   `@remix-run/router@1.14.1`

###
[`v6.21.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#6210)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router@6.20.1...react-router@6.21.0)

##### Minor Changes

- Add a new `future.v7_relativeSplatPath` flag to implement a breaking
bug fix to relative routing when inside a splat route.
([#&#8203;11087](https://togithub.com/remix-run/react-router/pull/11087))

This fix was originally added in
[#&#8203;10983](https://togithub.com/remix-run/react-router/issues/10983)
and was later reverted in
[#&#8203;11078](https://togithub.com/remix-run/react-router/pull/11078)
because it was determined that a large number of existing applications
were relying on the buggy behavior (see
[#&#8203;11052](https://togithub.com/remix-run/react-router/issues/11052))

    **The Bug**
The buggy behavior is that without this flag, the default behavior when
resolving relative paths is to *ignore* any splat (`*`) portion of the
current route path.

    **The Background**
This decision was originally made thinking that it would make the
concept of nested different sections of your apps in `<Routes>` easier
if relative routing would *replace* the current splat:

    ```jsx
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="dashboard/*" element={<Dashboard />} />
      </Routes>
    </BrowserRouter>
    ```

Any paths like `/dashboard`, `/dashboard/team`, `/dashboard/projects`
will match the `Dashboard` route. The dashboard component itself can
then render nested `<Routes>`:

    ```jsx
    function Dashboard() {
      return (
        <div>
          <h2>Dashboard</h2>
          <nav>
            <Link to="/">Dashboard Home</Link>
            <Link to="team">Team</Link>
            <Link to="projects">Projects</Link>
          </nav>

          <Routes>
            <Route path="/" element={<DashboardHome />} />
            <Route path="team" element={<DashboardTeam />} />
            <Route path="projects" element={<DashboardProjects />} />
          </Routes>
        </div>
      );
    }
    ```

Now, all links and route paths are relative to the router above them.
This makes code splitting and compartmentalizing your app really easy.
You could render the `Dashboard` as its own independent app, or embed it
into your large app without making any changes to it.

    **The Problem**

The problem is that this concept of ignoring part of a path breaks a lot
of other assumptions in React Router - namely that `"."` always means
the current location pathname for that route. When we ignore the splat
portion, we start getting invalid paths when using `"."`:

    ```jsx
// If we are on URL /dashboard/team, and we want to link to
/dashboard/team:
    function DashboardTeam() {
      //  This is broken and results in <a href="/dashboard">
      return <Link to=".">A broken link to the Current URL</Link>;

//  This is fixed but super unintuitive since we're already at
/dashboard/team!
      return <Link to="./team">A broken link to the Current URL</Link>;
    }
    ```

We've also introduced an issue that we can no longer move our
`DashboardTeam` component around our route hierarchy easily - since it
behaves differently if we're underneath a non-splat route, such as
`/dashboard/:widget`. Now, our `"."` links will, properly point to
ourself *inclusive of the dynamic param value* so behavior will break
from it's corresponding usage in a `/dashboard/*` route.

    Even worse, consider a nested splat route configuration:

    ```jsx
    <BrowserRouter>
      <Routes>
        <Route path="dashboard">
          <Route path="*" element={<Dashboard />} />
        </Route>
      </Routes>
    </BrowserRouter>
    ```

Now, a `<Link to=".">` and a `<Link to="..">` inside the `Dashboard`
component go to the same place! That is definitely not correct!

Another common issue arose in Data Routers (and Remix) where any
`<Form>` should post to it's own route `action` if you the user doesn't
specify a form action:

    ```jsx
    let router = createBrowserRouter({
      path: "/dashboard",
      children: [
        {
          path: "*",
          action: dashboardAction,
          Component() {
//  This form is broken! It throws a 405 error when it submits because
// it tries to submit to /dashboard (without the splat value) and the
parent
            // `/dashboard` route doesn't have an action
            return <Form method="post">...</Form>;
          },
        },
      ],
    });
    ```

This is just a compounded issue from the above because the default
location for a `Form` to submit to is itself (`"."`) - and if we ignore
the splat portion, that now resolves to the parent route.

    **The Solution**
If you are leveraging this behavior, it's recommended to enable the
future flag, move your splat to it's own route, and leverage `../` for
any links to "sibling" pages:

    ```jsx
    <BrowserRouter>
      <Routes>
        <Route path="dashboard">
          <Route index path="*" element={<Dashboard />} />
        </Route>
      </Routes>
    </BrowserRouter>

    function Dashboard() {
      return (
        <div>
          <h2>Dashboard</h2>
          <nav>
            <Link to="..">Dashboard Home</Link>
            <Link to="../team">Team</Link>
            <Link to="../projects">Projects</Link>
          </nav>

          <Routes>
            <Route path="/" element={<DashboardHome />} />
            <Route path="team" element={<DashboardTeam />} />
            <Route path="projects" element={<DashboardProjects />} />
          </Router>
        </div>
      );
    }
    ```

This way, `.` means "the full current pathname for my route" in all
cases (including static, dynamic, and splat routes) and `..` always
means "my parents pathname".

##### Patch Changes

- Properly handle falsy error values in ErrorBoundary's
([#&#8203;11071](https://togithub.com/remix-run/react-router/pull/11071))
-   Updated dependencies:
    -   `@remix-run/router@1.14.0`

</details>

<details>
<summary>remix-run/react-router (react-router-dom)</summary>

###
[`v6.21.1`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#6211)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.21.0...react-router-dom@6.21.1)

##### Patch Changes

-   Updated dependencies:
    -   `react-router@6.21.1`
    -   `@remix-run/router@1.14.1`

###
[`v6.21.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#6210)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.20.1...react-router-dom@6.21.0)

##### Minor Changes

- Add a new `future.v7_relativeSplatPath` flag to implement a breaking
bug fix to relative routing when inside a splat route.
([#&#8203;11087](https://togithub.com/remix-run/react-router/pull/11087))

This fix was originally added in
[#&#8203;10983](https://togithub.com/remix-run/react-router/issues/10983)
and was later reverted in
[#&#8203;11078](https://togithub.com/remix-run/react-router/pull/11078)
because it was determined that a large number of existing applications
were relying on the buggy behavior (see
[#&#8203;11052](https://togithub.com/remix-run/react-router/issues/11052))

    **The Bug**
The buggy behavior is that without this flag, the default behavior when
resolving relative paths is to *ignore* any splat (`*`) portion of the
current route path.

    **The Background**
This decision was originally made thinking that it would make the
concept of nested different sections of your apps in `<Routes>` easier
if relative routing would *replace* the current splat:

    ```jsx
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="dashboard/*" element={<Dashboard />} />
      </Routes>
    </BrowserRouter>
    ```

Any paths like `/dashboard`, `/dashboard/team`, `/dashboard/projects`
will match the `Dashboard` route. The dashboard component itself can
then render nested `<Routes>`:

    ```jsx
    function Dashboard() {
      return (
        <div>
          <h2>Dashboard</h2>
          <nav>
            <Link to="/">Dashboard Home</Link>
            <Link to="team">Team</Link>
            <Link to="projects">Projects</Link>
          </nav>

          <Routes>
            <Route path="/" element={<DashboardHome />} />
            <Route path="team" element={<DashboardTeam />} />
            <Route path="projects" element={<DashboardProjects />} />
          </Routes>
        </div>
      );
    }
    ```

Now, all links and route paths are relative to the router above them.
This makes code splitting and compartmentalizing your app really easy.
You could render the `Dashboard` as its own independent app, or embed it
into your large app without making any changes to it.

    **The Problem**

The problem is that this concept of ignoring part of a path breaks a lot
of other assumptions in React Router - namely that `"."` always means
the current location pathname for that route. When we ignore the splat
portion, we start getting invalid paths when using `"."`:

    ```jsx
// If we are on URL /dashboard/team, and we want to link to
/dashboard/team:
    function DashboardTeam() {
      //  This is broken and results in <a href="/dashboard">
      return <Link to=".">A broken link to the Current URL</Link>;

//  This is fixed but super unintuitive since we're already at
/dashboard/team!
      return <Link to="./team">A broken link to the Current URL</Link>;
    }
    ```

We've also introduced an issue that we can no longer move our
`DashboardTeam` component around our route hierarchy easily - since it
behaves differently if we're underneath a non-splat route, such as
`/dashboard/:widget`. Now, our `"."` links will, properly point to
ourself *inclusive of the dynamic param value* so behavior will break
from it's corresponding usage in a `/dashboard/*` route.

    Even worse, consider a nested splat route configuration:

    ```jsx
    <BrowserRouter>
      <Routes>
        <Route path="dashboard">
          <Route path="*" element={<Dashboard />} />
        </Route>
      </Routes>
    </BrowserRouter>
    ```

Now, a `<Link to=".">` and a `<Link to="..">` inside the `Dashboard`
component go to the same place! That is definitely not correct!

Another common issue arose in Data Routers (and Remix) where any
`<Form>` should post to it's own route `action` if you the user doesn't
specify a form action:

    ```jsx
    let router = createBrowserRouter({
      path: "/dashboard",
      children: [
        {
          path: "*",
          action: dashboardAction,
          Component() {
//  This form is broken! It throws a 405 error when it submits because
// it tries to submit to /dashboard (without the splat value) and the
parent
            // `/dashboard` route doesn't have an action
            return <Form method="post">...</Form>;
          },
        },
      ],
    });
    ```

This is just a compounded issue from the above because the default
location for a `Form` to submit to is itself (`"."`) - and if we ignore
the splat portion, that now resolves to the parent route.

    **The Solution**
If you are leveraging this behavior, it's recommended to enable the
future flag, move your splat to it's own route, and leverage `../` for
any links to "sibling" pages:

    ```jsx
    <BrowserRouter>
      <Routes>
        <Route path="dashboard">
          <Route index path="*" element={<Dashboard />} />
        </Route>
      </Routes>
    </BrowserRouter>

    function Dashboard() {
      return (
        <div>
          <h2>Dashboard</h2>
          <nav>
            <Link to="..">Dashboard Home</Link>
            <Link to="../team">Team</Link>
            <Link to="../projects">Projects</Link>
          </nav>

          <Routes>
            <Route path="/" element={<DashboardHome />} />
            <Route path="team" element={<DashboardTeam />} />
            <Route path="projects" element={<DashboardProjects />} />
          </Router>
        </div>
      );
    }
    ```

This way, `.` means "the full current pathname for my route" in all
cases (including static, dynamic, and splat routes) and `..` always
means "my parents pathname".

##### Patch Changes

-   Updated dependencies:
    -   `@remix-run/router@1.14.0`
    -   `react-router@6.21.0`

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, 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/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-12 22:46:33 +00:00
renovate[bot]
03ee506284
chore(deps): update dependency vitest to v1.1.3 (#5884)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://togithub.com/vitest-dev/vitest)
([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`1.1.2` ->
`1.1.3`](https://renovatebot.com/diffs/npm/vitest/1.1.2/1.1.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/1.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/1.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/1.1.2/1.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/1.1.2/1.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (vitest)</summary>

###
[`v1.1.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.1.3)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v1.1.2...v1.1.3)

#####    🐞 Bug Fixes

-   **vitest**:
- Vi.mock breaks tests when using imported variables inside the factory
 -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) and
**Dunqing** in
[https://github.com/vitest-dev/vitest/issues/4873](https://togithub.com/vitest-dev/vitest/issues/4873)
[<samp>(7719e)</samp>](https://togithub.com/vitest-dev/vitest/commit/7719e79e)
- Apply `slowTestThreshold` to all reporters  -  by
[@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/4876](https://togithub.com/vitest-dev/vitest/issues/4876)
[<samp>(1769c)</samp>](https://togithub.com/vitest-dev/vitest/commit/1769c796)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v1.1.2...v1.1.3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, 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/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-12 20:45:14 +00:00
renovate[bot]
d68563f5de
chore(deps): update dependency vite to v5.0.11 (#5883)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vite](https://vitejs.dev)
([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) |
[`5.0.10` ->
`5.0.11`](https://renovatebot.com/diffs/npm/vite/5.0.10/5.0.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.0.10/5.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.0.10/5.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.0.11`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small5011-2024-01-05-small)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v5.0.10...v5.0.11)

- fix: don't pretransform classic script links
([#&#8203;15361](https://togithub.com/vitejs/vite/issues/15361))
([19e3c9a](https://togithub.com/vitejs/vite/commit/19e3c9a)), closes
[#&#8203;15361](https://togithub.com/vitejs/vite/issues/15361)
- fix: inject `__vite__mapDeps` code before sourcemap file comment
([#&#8203;15483](https://togithub.com/vitejs/vite/issues/15483))
([d2aa096](https://togithub.com/vitejs/vite/commit/d2aa096)), closes
[#&#8203;15483](https://togithub.com/vitejs/vite/issues/15483)
- fix(assets): avoid splitting `,` inside base64 value of `srcset`
attribute
([#&#8203;15422](https://togithub.com/vitejs/vite/issues/15422))
([8de7bd2](https://togithub.com/vitejs/vite/commit/8de7bd2)), closes
[#&#8203;15422](https://togithub.com/vitejs/vite/issues/15422)
- fix(html): handle offset magic-string slice error
([#&#8203;15435](https://togithub.com/vitejs/vite/issues/15435))
([5ea9edb](https://togithub.com/vitejs/vite/commit/5ea9edb)), closes
[#&#8203;15435](https://togithub.com/vitejs/vite/issues/15435)
- chore(deps): update dependency strip-literal to v2
([#&#8203;15475](https://togithub.com/vitejs/vite/issues/15475))
([49d21fe](https://togithub.com/vitejs/vite/commit/49d21fe)), closes
[#&#8203;15475](https://togithub.com/vitejs/vite/issues/15475)
- chore(deps): update tj-actions/changed-files action to v41
([#&#8203;15476](https://togithub.com/vitejs/vite/issues/15476))
([2a540ee](https://togithub.com/vitejs/vite/commit/2a540ee)), closes
[#&#8203;15476](https://togithub.com/vitejs/vite/issues/15476)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, 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/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-12 20:44:45 +00:00
Thomas Heartman
a4c1161285
chore: fix lints on main (#5877)
These were introduced by prs created before the new biome update.
2024-01-12 11:38:08 +00:00
Thomas Heartman
8ae267ea25
feat: show suspended schedules in timeline (#5873)
This PR updates the timeline to show suspended schedules. It also adds
"schedule failed" when the schedule has failed.

<img width="465" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/aabbee02-b407-4653-959b-92bec8a1fa66">

<img width="465" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/7242c34a-1b1e-4efc-a778-a360e3bc4428">
2024-01-12 16:50:08 +05:30
Mateusz Kwasniewski
c816ffd49d
feat: aggregate metrics for the same timestamp (#5876) 2024-01-12 12:19:30 +01:00
Thomas Heartman
a88763283a
feat: show suspended schedule states in review status (#5872)
Updates the change request review status box to handle suspended
schedules.

<img width="852" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/2af52b6d-d821-4d30-9166-e8e76ead120d">
2024-01-12 16:48:58 +05:30
Thomas Heartman
aecc0b54a1
feat: show suspended states in change request badge (#5871)
This updates the CR badge to show suspended states correctly.

<img width="370" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/f678059b-f72a-46ef-9111-0fc90f228fc8">
2024-01-12 16:48:34 +05:30
Christopher Kolstad
5a3bb1ffc3
Biome1.5.1 (#5867)
Lots of work here, mostly because I didn't want to turn off the
`noImplicitAnyLet` lint. This PR tries its best to type all the untyped
lets biome complained about (Don't ask me how many hours that took or
how many lints that was >200...), which in the future will force test
authors to actually type their global variables setup in `beforeAll`.

---------

Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2024-01-12 09:25:59 +00:00
Mateusz Kwasniewski
e27a578fab
feat: separate UI flag and backend flag for extended metrics (#5875) 2024-01-12 10:20:03 +01:00
Thomas Heartman
39145e2617
refactor: use union types for change request types (#5870)
This changes the two interfaces IChangeRequest and
IChangeRequestSchedule to be union types instead of interfaces. It also
extracts the constituents of those union types into proper types
themselves (so that they can be used in function type signatures etc).
It also updates the type names.

This turned out to be more work than I had imagined, but I think the end
result pays off, giving us more type safety and control.

I wanted to use just `ChangeRequest` for the IChangeRequest type, but
that caused issues due to naming collisions with the `ChangeRequest`
component that we have, causing tests to fail. I've named it
`ChangeRequestType` as a potential solution, but suggestions are
welcome.

The relevant changes are in
`frontend/src/component/changeRequest/changeRequest.types.ts`.
Everything else is updated references and some necessary refactoring to
respect the new types.
2024-01-12 13:15:43 +05:30
Mateusz Kwasniewski
6ba4591c7f
feat: select multiple apps (#5860) 2024-01-12 08:33:52 +01:00
renovate[bot]
e3fc4b51fa
chore(deps): update dependency vanilla-jsoneditor to ^0.21.0 (#5869)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vanilla-jsoneditor](https://togithub.com/josdejong/svelte-jsoneditor)
| [`^0.19.0` ->
`^0.21.0`](https://renovatebot.com/diffs/npm/vanilla-jsoneditor/0.19.0/0.21.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vanilla-jsoneditor/0.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vanilla-jsoneditor/0.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vanilla-jsoneditor/0.19.0/0.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vanilla-jsoneditor/0.19.0/0.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>josdejong/svelte-jsoneditor (vanilla-jsoneditor)</summary>

###
[`v0.21.1`](https://togithub.com/josdejong/svelte-jsoneditor/blob/HEAD/CHANGELOG.md#0211-2023-12-20)

[Compare
Source](https://togithub.com/josdejong/svelte-jsoneditor/compare/v0.21.0...v0.21.1)

###
[`v0.21.0`](https://togithub.com/josdejong/svelte-jsoneditor/blob/HEAD/CHANGELOG.md#0210-2023-12-20)

[Compare
Source](https://togithub.com/josdejong/svelte-jsoneditor/compare/v0.20.0...v0.21.0)

##### ⚠ BREAKING CHANGES

- The type `Content` is changed from `{ json: JSONValue} | { text:
string }` into
`{ json: unknown } | { text: string }`, and all other types having
`JSONValue` changed
to `unknown`. The return type of `JSONParser.stringify` changed from
`string` to
    `string | undefined`.

##### Features

- change the type of `json` from `JSONValue` to `unknown`
([#&#8203;371](https://togithub.com/josdejong/svelte-jsoneditor/issues/371))
([dc4671a](dc4671abaa))
- implement `onRenderContextMenu` (fix
[#&#8203;82](https://togithub.com/josdejong/svelte-jsoneditor/issues/82))
([e53a620](e53a620b6b))
- upgrade to upgrade `@sveltejs/kit@2`, `vite-plugin-svelte@3`,
`vite@5`, and `vitest@1`
([#&#8203;374](https://togithub.com/josdejong/svelte-jsoneditor/issues/374))
([b83e321](b83e3214f8))

###
[`v0.20.0`](https://togithub.com/josdejong/svelte-jsoneditor/blob/HEAD/CHANGELOG.md#0200-2023-12-06)

[Compare
Source](https://togithub.com/josdejong/svelte-jsoneditor/compare/v0.19.0...v0.20.0)

##### ⚠ BREAKING CHANGES

- When using `vanilla-jsoneditor` directly in the browser, you now have
to `import { JSONEditor } from 'vanilla-jsoneditor/standalone.js'`
instead of `import { JSONEditor } from 'vanilla-jsoneditor'`. For
projects with a build setup (React, Vue, Angular) it should be a drop-in
replacement.
- CSS variables are no longer defined globally, and the file
`themes/jse-theme-default.css` is now removed (replaced by an internal
`defaults.scss`). The provided dark theme still works as-is. The CSS
variable `--jse-modal-theme-color` has been renamed to
`--jse-modal-editor-theme-color`, and
`--jse-modal-theme-color-highlight` has been renamed to
`--jse-modal-editor-theme-color-highlight`.

##### Features

- export one bundle with and one without external dependencies in
`vanilla-jsoneditor`
([#&#8203;353](https://togithub.com/josdejong/svelte-jsoneditor/issues/353))
([9c1ad15](9c1ad157a4))
- update dependencies `codemirror`, `fontawesome`, `svelte-awesome`, and
dev dependencies
([75596ae](75596ae263))
- use SCSS variables internally
([#&#8203;344](https://togithub.com/josdejong/svelte-jsoneditor/issues/344))
([ec4b788](ec4b788e49))

##### Bug Fixes

- allow `isEditing` property to be true when in `readOnly` mode (see
[#&#8203;342](https://togithub.com/josdejong/svelte-jsoneditor/issues/342))
([3b0bdb7](3b0bdb7d40))
- cleanup a console.log
([005f189](005f1896d8))
- make argument `element` of helper function `onEscape` optional
([6eb9b82](6eb9b823cd))
- styling issue with a button text color in dark mode
([4ff40f9](4ff40f97d4))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, 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/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-12 02:27:37 +00:00