This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 65596fb5ae6 Bump the eslint group across 1 directory with 5 updates
(#73488)
65596fb5ae6 is described below
commit 65596fb5ae61314d31f40d7f24757315ceca95df
Author: Dependabot [bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Tue Oct 6 01:40:24 2026 +0200
Bump the eslint group across 1 directory with 5 updates (#73488)
* Bump the eslint group across 1 directory with 5 updates
Bumps the eslint group with 5 updates in the /airflow-core/src/airflow/ui
directory:
| Package | From | To |
| --- | --- | --- |
|
[@eslint/compat](https://github.com/eslint/rewrite/tree/HEAD/packages/compat) |
`2.1.0` | `2.1.1` |
| [eslint](https://github.com/eslint/eslint) | `10.9.1` | `10.11.0` |
|
[eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist)
| `5.11.0` | `5.12.1` |
|
[eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh)
| `0.5.6` | `0.5.7` |
|
[eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn)
| `73.0.0` | `76.0.0` |
Updates `@eslint/compat` from 2.1.0 to 2.1.1
- [Release notes](https://github.com/eslint/rewrite/releases)
-
[Changelog](https://github.com/eslint/rewrite/blob/main/packages/compat/CHANGELOG.md)
-
[Commits](https://github.com/eslint/rewrite/commits/compat-v2.1.1/packages/compat)
Updates `eslint` from 10.9.1 to 10.11.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.9.1...v10.11.0)
Updates `eslint-plugin-perfectionist` from 5.11.0 to 5.12.1
- [Release
notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
-
[Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
-
[Commits](https://github.com/azat-io/eslint-plugin-perfectionist/compare/v5.11.0...v5.12.1)
Updates `eslint-plugin-react-refresh` from 0.5.6 to 0.5.7
- [Release
notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases)
-
[Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.6...v0.5.7)
Updates `eslint-plugin-unicorn` from 73.0.0 to 76.0.0
- [Release
notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
-
[Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v73.0.0...v76.0.0)
---
updated-dependencies:
- dependency-name: "@eslint/compat"
dependency-version: 2.1.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: eslint
- dependency-name: eslint
dependency-version: 10.10.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: eslint
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.11.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: eslint
- dependency-name: eslint-plugin-react-refresh
dependency-version: 0.5.7
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: eslint
- dependency-name: eslint-plugin-unicorn
dependency-version: 75.0.0
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: eslint
...
Signed-off-by: dependabot[bot] <[email protected]>
* Apply eslint-plugin-unicorn 76 prefer-ternary and logical-operator fixes
unicorn 76 widened prefer-ternary and prefer-logical-operator-over-ternary,
both already enabled as errors in rules/unicorn.js. prefer-ternary is
autofixed; the boolean-literal ternaries are rewritten by hand as logical
expressions that keep the same result for boolean conditions (e.g. the
pool slots validator keeps NaN handling by checking Number.isFinite first).
Generated-by: Claude Opus 5
---------
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot]
<49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jarek Potiuk <[email protected]>
---
airflow-core/src/airflow/ui/package.json | 10 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 490 +++++++++++----------
airflow-core/src/airflow/ui/rules/i18n.js | 8 +-
airflow-core/src/airflow/ui/rules/rem.js | 11 +-
.../src/airflow/ui/src/components/AnsiRenderer.tsx | 6 +-
.../ClearTaskInstanceConfirmationDialog.tsx | 4 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 3 +-
.../airflow/ui/src/components/DateTimeInput.tsx | 7 +-
.../airflow/ui/src/components/DurationChart.tsx | 2 +-
.../ui/src/components/FilterBar/FilterBar.tsx | 6 +-
.../FilterBar/filters/DateRangeCalendar.tsx | 10 +-
.../FilterBar/filters/DateRangeInputs.tsx | 5 +-
.../airflow/ui/src/components/FilterBar/utils.ts | 6 +-
.../components/FlexibleForm/FieldMultiSelect.tsx | 9 +-
.../src/components/FlexibleForm/FieldSelector.tsx | 14 +-
.../airflow/ui/src/components/Graph/DagNode.tsx | 2 +-
.../ui/src/components/Graph/SegmentedStateBar.tsx | 8 +-
.../airflow/ui/src/components/Graph/TaskLink.tsx | 6 +-
.../ui/src/components/MonacoEditor/index.tsx | 12 +-
.../ui/src/components/ReactMarkdownBlocks.tsx | 10 +-
.../ui/src/components/SqlParserProvider.tsx | 6 +-
.../ui/src/hooks/navigation/useNavigation.ts | 7 +-
.../src/airflow/ui/src/hooks/useAdvancedSearch.ts | 2 +-
.../ui/src/layouts/Details/DagBreadcrumb.tsx | 4 +-
.../ui/src/layouts/Details/DetailsLayout.tsx | 2 +-
.../ui/src/layouts/Details/Gantt/GanttTimeline.tsx | 12 +-
.../Graph/hooks/useFilteredNodesAndEdges.ts | 5 +-
.../layouts/Details/Graph/useGraphFilteredNodes.ts | 6 +-
.../src/airflow/ui/src/mocks/handlers/dags.ts | 5 +-
.../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 6 +-
.../ui/src/pages/Connections/ConnectionForm.tsx | 3 +-
.../pages/Dag/Backfills/BackfillDagRunsModal.tsx | 22 +-
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 5 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 17 +-
airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx | 15 +-
.../Dashboard/PoolSummary/PoolSummary.test.tsx | 8 +-
.../pages/Dashboard/PoolSummary/PoolSummary.tsx | 2 +-
.../pages/Dashboard/Stats/DagImportErrorsModal.tsx | 3 +-
.../src/airflow/ui/src/pages/Deadlines/index.tsx | 3 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 2 +-
.../src/airflow/ui/src/pages/LandingPage.tsx | 6 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 15 +-
.../src/airflow/ui/src/pages/Run/AssetEvents.tsx | 4 +-
.../src/airflow/ui/src/pages/Run/Details.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/Run/Run.tsx | 2 +-
.../ui/src/pages/TaskInstance/AssetEvents.tsx | 2 +-
.../airflow/ui/src/pages/TaskInstance/Details.tsx | 14 +-
.../ui/src/pages/TaskInstance/HITLResponse.tsx | 2 +-
.../ui/src/pages/TaskInstance/Logs/logSelection.ts | 16 +-
.../src/pages/TaskInstance/Logs/useLogGroups.tsx | 14 +-
.../ui/src/pages/TaskInstance/Logs/utils.ts | 24 +-
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 6 +-
.../ui/src/pages/TaskStateStore/TaskStateStore.tsx | 2 +-
.../pages/TaskStateStore/TaskStateStoreModal.tsx | 5 +-
.../ui/src/queries/useDagBundleRefetchInterval.ts | 8 +-
.../ui/src/queries/useDagRunStateCounts.tsx | 3 +-
.../src/airflow/ui/src/queries/useDags.tsx | 17 +-
.../src/airflow/ui/src/queries/useDeadlines.ts | 2 +-
.../src/airflow/ui/src/queries/useLogs.tsx | 7 +-
.../src/airflow/ui/src/queries/useParamStore.ts | 8 +-
.../ui/src/queries/useRefreshOnNewDagRuns.ts | 2 +-
airflow-core/src/airflow/ui/src/queryClient.ts | 8 +-
.../ui/src/system-components/Select/ValueText.tsx | 7 +-
.../src/airflow/ui/src/utils/datetimeUtils.ts | 34 +-
.../src/airflow/ui/src/utils/jsonPreview.ts | 16 +-
airflow-core/src/airflow/ui/src/utils/links.ts | 6 +-
airflow-core/src/airflow/ui/src/utils/logs.ts | 8 +-
.../src/airflow/ui/src/utils/pluginAppliesTo.ts | 15 +-
airflow-core/src/airflow/ui/src/utils/query.ts | 6 +-
airflow-core/src/airflow/ui/src/utils/tab.ts | 6 +-
.../airflow/ui/tests/e2e/pages/ConnectionsPage.ts | 26 +-
.../src/airflow/ui/tests/e2e/pages/DagsPage.ts | 8 +-
.../src/airflow/ui/tests/e2e/pages/EventsPage.ts | 6 +-
.../airflow/ui/tests/e2e/specs/dag-tasks.spec.ts | 8 +-
.../src/airflow/ui/tests/e2e/utils/shared.ts | 6 +-
75 files changed, 454 insertions(+), 631 deletions(-)
diff --git a/airflow-core/src/airflow/ui/package.json
b/airflow-core/src/airflow/ui/package.json
index 5de8ddcf1a6..406104d1203 100644
--- a/airflow-core/src/airflow/ui/package.json
+++ b/airflow-core/src/airflow/ui/package.json
@@ -76,7 +76,7 @@
},
"devDependencies": {
"@7nohe/openapi-react-query-codegen": "^1.6.2",
- "@eslint/compat": "^2.1.0",
+ "@eslint/compat": "^2.1.1",
"@eslint/js": "^10.0.1",
"@playwright/test": "^1.63.0",
"@rolldown/plugin-babel": "^0.2.4",
@@ -97,17 +97,17 @@
"@vitejs/plugin-react-swc": "^4.3.3",
"@vitest/coverage-v8": "^4.1.11",
"babel-plugin-react-compiler": "^1.0.0",
- "eslint": "^10.9.1",
+ "eslint": "^10.11.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-i18next": "^6.1.5",
"eslint-plugin-jsonc": "^3.4.2",
"eslint-plugin-jsx-a11y": "^6.10.2",
- "eslint-plugin-perfectionist": "^5.11.0",
+ "eslint-plugin-perfectionist": "^5.12.1",
"eslint-plugin-prettier": "^5.5.6",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.1.1",
- "eslint-plugin-react-refresh": "^0.5.6",
- "eslint-plugin-unicorn": "^73.0.0",
+ "eslint-plugin-react-refresh": "^0.5.7",
+ "eslint-plugin-unicorn": "^76.0.0",
"globals": "^17.12.0",
"happy-dom": "^20.14.5",
"jsonc-eslint-parser": "^3.2.0",
diff --git a/airflow-core/src/airflow/ui/pnpm-lock.yaml
b/airflow-core/src/airflow/ui/pnpm-lock.yaml
index 0b921b4700e..9dec71a75b5 100644
--- a/airflow-core/src/airflow/ui/pnpm-lock.yaml
+++ b/airflow-core/src/airflow/ui/pnpm-lock.yaml
@@ -191,11 +191,11 @@ importers:
specifier: ^1.6.2
version:
1.6.2([email protected])([email protected])([email protected])([email protected])([email protected])
'@eslint/compat':
- specifier: ^2.1.0
- version: 2.1.0([email protected]([email protected]))
+ specifier: ^2.1.1
+ version: 2.1.1([email protected]([email protected]))
'@eslint/js':
specifier: ^10.0.1
- version: 10.0.1([email protected]([email protected]))
+ version: 10.0.1([email protected]([email protected]))
'@playwright/test':
specifier: ^1.63.0
version: 1.63.0
@@ -204,10 +204,10 @@ importers:
version:
0.2.4(@babel/[email protected])(@babel/[email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected]))
'@stylistic/eslint-plugin':
specifier: ^5.10.0
- version: 5.10.0([email protected]([email protected]))
+ version: 5.10.0([email protected]([email protected]))
'@tanstack/eslint-plugin-query':
specifier: ^5.104.0
- version: 5.104.0([email protected]([email protected]))([email protected])
+ version: 5.104.0([email protected]([email protected]))([email protected])
'@testing-library/jest-dom':
specifier: ^7.0.0
version: 7.0.1(@testing-library/[email protected])([email protected])
@@ -234,13 +234,13 @@ importers:
version: 15.5.13
'@typescript-eslint/eslint-plugin':
specifier: ^8.71.0
- version:
8.71.0(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
+ version:
8.71.0(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
'@typescript-eslint/parser':
specifier: ^8.71.0
- version: 8.71.0([email protected]([email protected]))([email protected])
+ version: 8.71.0([email protected]([email protected]))([email protected])
'@typescript-eslint/utils':
specifier: ^8.71.0
- version: 8.71.0([email protected]([email protected]))([email protected])
+ version: 8.71.0([email protected]([email protected]))([email protected])
'@vitejs/plugin-react':
specifier: ^6.1.1
version:
6.1.1(@rolldown/[email protected](@babel/[email protected])(@babel/[email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])))([email protected])([email protected](@types/[email protected])([email protected])([email protected]))
@@ -254,38 +254,38 @@ importers:
specifier: ^1.0.0
version: 1.0.0
eslint:
- specifier: ^10.9.1
- version: 10.9.1([email protected])
+ specifier: ^10.11.0
+ version: 10.11.0([email protected])
eslint-config-prettier:
specifier: ^10.1.8
- version: 10.1.8([email protected]([email protected]))
+ version: 10.1.8([email protected]([email protected]))
eslint-plugin-i18next:
specifier: ^6.1.5
version: 6.1.5
eslint-plugin-jsonc:
specifier: ^3.4.2
- version: 3.4.2([email protected]([email protected]))
+ version: 3.4.2([email protected]([email protected]))
eslint-plugin-jsx-a11y:
specifier: ^6.10.2
- version: 6.10.2([email protected]([email protected]))
+ version: 6.10.2([email protected]([email protected]))
eslint-plugin-perfectionist:
- specifier: ^5.11.0
- version: 5.11.0([email protected]([email protected]))([email protected])
+ specifier: ^5.12.1
+ version: 5.12.1([email protected]([email protected]))([email protected])
eslint-plugin-prettier:
specifier: ^5.5.6
- version:
5.5.6([email protected]([email protected]([email protected])))([email protected]([email protected]))([email protected])
+ version:
5.5.6([email protected]([email protected]([email protected])))([email protected]([email protected]))([email protected])
eslint-plugin-react:
specifier: ^7.37.5
- version: 7.37.5([email protected]([email protected]))
+ version: 7.37.5([email protected]([email protected]))
eslint-plugin-react-hooks:
specifier: ^7.1.1
- version: 7.1.1([email protected]([email protected]))
+ version: 7.1.1([email protected]([email protected]))
eslint-plugin-react-refresh:
- specifier: ^0.5.6
- version: 0.5.6([email protected]([email protected]))
+ specifier: ^0.5.7
+ version: 0.5.7([email protected]([email protected]))
eslint-plugin-unicorn:
- specifier: ^73.0.0
- version: 73.0.0([email protected]([email protected]))
+ specifier: ^76.0.0
+ version: 76.0.0([email protected]([email protected]))
globals:
specifier: ^17.12.0
version: 17.12.0
@@ -312,7 +312,7 @@ importers:
version: 6.0.3
typescript-eslint:
specifier: ^8.71.0
- version: 8.71.0([email protected]([email protected]))([email protected])
+ version: 8.71.0([email protected]([email protected]))([email protected])
vite:
specifier: ^8.3.1
version: 8.3.1(@types/[email protected])([email protected])([email protected])
@@ -486,6 +486,12 @@ packages:
'@braintree/[email protected]':
resolution: {integrity:
sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==}
+ '@cacheable/[email protected]':
+ resolution: {integrity:
sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==}
+
+ '@cacheable/[email protected]':
+ resolution: {integrity:
sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==}
+
'@chakra-ui/[email protected]':
resolution: {integrity:
sha512-fFIYN7L276gw0Q7/ikMMlZxP7mvnjRaWJ7f3Jsf9VtDOi6eAYIBRrhQe6+SZ0PGmoOkRaBc7gSE5oeIbgFFyrw==}
@@ -559,8 +565,8 @@ packages:
resolution: {integrity:
sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/[email protected]':
- resolution: {integrity:
sha512-LgaSCymEpw7tF53xvDw9SNsraPb1IBHxpdABIOM0hW8UAlP8znrjYtuxfR58FSJ3L9BhwD+FaPRFQpZq84Nh6g==}
+ '@eslint/[email protected]':
+ resolution: {integrity:
sha512-rMcy8GSrwNzcISX/BlTDY/GLB4eCopEuy9woIls3To+15OLxykZrxxq+WUcylCPCQ6F4MujjBM1DX5V1aqI3Vw==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
peerDependencies:
eslint: ^8.40 || 9 || 10
@@ -580,8 +586,8 @@ packages:
resolution: {integrity:
sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/[email protected]':
- resolution: {integrity:
sha512-iPmijIAq4hlIJB86PYmY/fcZORHtjphSqICDbwuw32A/JmkhZQ/K/6TjHE03zqf3n5yABpVcbRAMG8Mi9ojy8g==}
+ '@eslint/[email protected]':
+ resolution: {integrity:
sha512-A+s89eP+yDAPkKjnIOfjlkGifg5J7GPn01nWx14UjBVWktfkxOU4975F9ZZ13xNxkGiblNcBaAqgKhnQrW6SWA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
'@eslint/[email protected]':
@@ -601,6 +607,10 @@ packages:
resolution: {integrity:
sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+ '@eslint/[email protected]':
+ resolution: {integrity:
sha512-IkO+/KEUvwbVpiURZg+P7zF74z5Jxe0UgJxVni+RtoHQ6IZieXaO02kmadomap/q+l6bc/jdPGGqTjhuZnuz1Q==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
'@floating-ui/[email protected]':
resolution: {integrity:
sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
@@ -724,6 +734,15 @@ packages:
'@jsdevtools/[email protected]':
resolution: {integrity:
sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
+ '@keyv/[email protected]':
+ resolution: {integrity:
sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ keyv: ^5.6.0
+
+ '@keyv/[email protected]':
+ resolution: {integrity:
sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==}
+
'@kurkle/[email protected]':
resolution: {integrity:
sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==}
@@ -1869,8 +1888,8 @@ packages:
resolution: {integrity:
sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
engines: {node: 18 || 20 || >=22}
- [email protected]:
- resolution: {integrity:
sha512-JyJ954WzuIR8/FFzX0o5krdSTrBAkcCSRfWSleRsIHSWV+cZe2FI1PKggVkFke1hBldRs+LRxUczzE9iPmgZww==}
+ [email protected]:
+ resolution: {integrity:
sha512-GLQdD3y6UF8iVuMJl5fHgE4jdn/ua7n+toKfLgNlg3BqQtOZjpy68T8Tup8/wGWZCDlm7KMg7tPb4MPn7oN0TQ==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -1884,16 +1903,16 @@ packages:
[email protected]:
resolution: {integrity:
sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==}
- [email protected]:
- resolution: {integrity:
sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==}
+ [email protected]:
+ resolution: {integrity:
sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==}
engines: {node: 20 || >=22}
[email protected]:
resolution: {integrity:
sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
- [email protected]:
- resolution: {integrity:
sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==}
+ [email protected]:
+ resolution: {integrity:
sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -1901,8 +1920,8 @@ packages:
resolution: {integrity:
sha512-nEh+kZOPY1w+gcCMobZ6ETUp9WfibndnosbpwB1iJk/8Gt5ZF2bhS6+B6bPYz424KtwsR6Rflc3tCz1/ghX2dQ==}
engines: {node: '>=4.0'}
- [email protected]:
- resolution: {integrity:
sha512-hMQUl2bUFG339QygPM97E+mc8OY1IAchORZxm4a/frcYwKzozMzRVDBwHW0NjOqGElLm2O37AVQE8ikxlZHrMQ==}
+ [email protected]:
+ resolution: {integrity:
sha512-JCWSCdun+4Ovd9BhM/Vtlmwb7oD6Wl4YiPRXXwhAuwlPhW1un/MKgXn7GZoFm53ginnoNzus69V8JWx0K393jg==}
engines: {node: '>=18.20'}
[email protected]:
@@ -1913,6 +1932,9 @@ packages:
magicast:
optional: true
+ [email protected]:
+ resolution: {integrity:
sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==}
+
[email protected]:
resolution: {integrity:
sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: '>= 0.4'}
@@ -1933,8 +1955,8 @@ packages:
resolution: {integrity:
sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
engines: {node: '>=16'}
- [email protected]:
- resolution: {integrity:
sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==}
+ [email protected]:
+ resolution: {integrity:
sha512-/Uaf1lAzr59XcMpW0o96WoEfr+VXK2OX4U9AgFoiSHsVJ4HppnIFUjtYzsyDH2+tgANaQb2/oxYGwCPapN1FpA==}
[email protected]:
resolution: {integrity:
sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -2057,10 +2079,6 @@ packages:
resolution: {integrity:
sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
engines: {node: ^14.18.0 || >=16.10.0}
- [email protected]:
- resolution: {integrity:
sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==}
- engines: {node: '>=12'}
-
[email protected]:
resolution: {integrity:
sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
@@ -2374,8 +2392,8 @@ packages:
[email protected]:
resolution: {integrity:
sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
- [email protected]:
- resolution: {integrity:
sha512-bNglH7lPH5l+yHOes7Zr4VqxhOy4BQ9ZBUX4VdoFgxMpzJk7W1ZoO3Vgd9Pxa9PyjQ76sfm2aKH/nzEcCNRlew==}
+ [email protected]:
+ resolution: {integrity:
sha512-TDJG36L9A3CWWwZ97HKaE+Iz1sW80pNp6sAU0owzCIV3Zc9eVyRqZK8Vz6NKuMIU8WjP0pIkoqCa0VRf/yFD0Q==}
[email protected]:
resolution: {integrity:
sha512-YZcKynxVxYoKIOEpywEPwCFdg+BTbxQRNf3pbwdDCvc8O3kQD8bmIwSxKU1eOTVc4Xo+VG9Te+575mlfvOrhEQ==}
@@ -2386,10 +2404,6 @@ packages:
[email protected]:
resolution: {integrity:
sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
- [email protected]:
- resolution: {integrity:
sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
- engines: {node: '>=0.12'}
-
[email protected]:
resolution: {integrity:
sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
engines: {node: '>=0.12'}
@@ -2398,6 +2412,10 @@ packages:
resolution: {integrity:
sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
engines: {node: '>=0.12'}
+ [email protected]:
+ resolution: {integrity:
sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==}
+ engines: {node: '>=20.19.0'}
+
[email protected]:
resolution: {integrity:
sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
@@ -2484,11 +2502,14 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
- [email protected]:
- resolution: {integrity:
sha512-kZV1otBcu4xT5R1p+0x1N1wRv4pS+OIbxrA47n5a1fTnN3MWbexOx5eQgbQhGyCNbpvF/rqrbnpkGjumHF+Y0Q==}
+ [email protected]:
+ resolution: {integrity:
sha512-krdSE7Dz+TCtcVr2+rfNhlOIFFBJcUdoRvjaN7JQnsaVnxJw+BZh9wMkY3MSLCJat+yW+UPTQLKS82Epc7MGZA==}
engines: {node: ^20.0.0 || >=22.0.0}
peerDependencies:
eslint: ^8.45.0 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ eslint:
+ optional: true
[email protected]:
resolution: {integrity:
sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ==}
@@ -2510,8 +2531,8 @@ packages:
peerDependencies:
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 ||
^9.0.0 || ^10.0.0
- [email protected]:
- resolution: {integrity:
sha512-uZnh24On2bk478AkaDAKcpRiYhS3qFSaSNvpXxV6/Ek/BBDICkWGG7MnBSfjnIlCVBei5vsLlIeQYxbF22+Udg==}
+ [email protected]:
+ resolution: {integrity:
sha512-XhJSzLljuYD4UjNuFGJu2v7aD3sqNVK12w5/DCUfrNfHWegZo2+TsavNx8MuxMwEquuFAzNbNfXKU0WoZ+YUIg==}
peerDependencies:
eslint: ^9 || ^10
@@ -2521,8 +2542,8 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
- [email protected]:
- resolution: {integrity:
sha512-V0YatLe9nkGhXEXKe2Qljb1EY0sJHwDV0HUF1NKFwtsHh/fU7qGHDgv+6fchzZcgU2/7noHo2gdjnmo0P2uDPw==}
+ [email protected]:
+ resolution: {integrity:
sha512-3ywJrCMHKYhcBP5yFzGaOOX3dY7+iR3hvpuoS/0EnhRFgVWLejly+t4fOdJvWQxJdHZl1C+QBW7hybXPDld4Pw==}
engines: {node: '>=22'}
peerDependencies:
eslint: '>=10.4'
@@ -2543,8 +2564,8 @@ packages:
resolution: {integrity:
sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- [email protected]:
- resolution: {integrity:
sha512-9VaAkDURekixUQJy0oJYl2DcN6oKMfxay7XzaGYAWQwsb6qfKf+x76R2k1L8kb1boc+FyCAaTA9GmiKaaiaF+A==}
+ [email protected]:
+ resolution: {integrity:
sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
hasBin: true
peerDependencies:
@@ -2629,9 +2650,8 @@ packages:
picomatch:
optional: true
- [email protected]:
- resolution: {integrity:
sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
- engines: {node: '>=16.0.0'}
+ [email protected]:
+ resolution: {integrity:
sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==}
[email protected]:
resolution: {integrity:
sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
@@ -2648,9 +2668,8 @@ packages:
resolution: {integrity:
sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
- [email protected]:
- resolution: {integrity:
sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
- engines: {node: '>=16'}
+ [email protected]:
+ resolution: {integrity:
sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==}
[email protected]:
resolution: {integrity:
sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==}
@@ -2688,10 +2707,6 @@ packages:
[email protected]:
resolution: {integrity:
sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
- [email protected]:
- resolution: {integrity:
sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==}
- engines: {node: '>=18'}
-
[email protected]:
resolution: {integrity:
sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
engines: {node: '>= 0.4'}
@@ -2787,6 +2802,10 @@ packages:
resolution: {integrity:
sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
engines: {node: '>= 0.4'}
+ [email protected]:
+ resolution: {integrity:
sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==}
+ engines: {node: '>=20'}
+
[email protected]:
resolution: {integrity:
sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
@@ -2843,6 +2862,12 @@ packages:
[email protected]:
resolution: {integrity:
sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
+ [email protected]:
+ resolution: {integrity:
sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==}
+
+ [email protected]:
+ resolution: {integrity:
sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==}
+
[email protected]:
resolution: {integrity:
sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
@@ -2998,10 +3023,6 @@ packages:
[email protected]:
resolution: {integrity:
sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
- [email protected]:
- resolution: {integrity:
sha512-NhOds0mDx9lJu+1lBRO0xbwFo5nobA7GCk/0e5xjr6+6XugX985+0OyGX35BNrTkPAsdLcIKg02HUQJOK8D8kw==}
- engines: {node: '>=18'}
-
[email protected]:
resolution: {integrity:
sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines: {node: '>= 0.4'}
@@ -3108,9 +3129,6 @@ packages:
engines: {node: '>=6'}
hasBin: true
- [email protected]:
- resolution: {integrity:
sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
-
[email protected]:
resolution: {integrity:
sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
@@ -3148,8 +3166,8 @@ packages:
resolution: {integrity:
sha512-8ad9RyoKsb/g8/yLFE+KAlP+DhbCTRUNi/V9XGsxn0R+trJJltNwzcDNo0q/DEkOy5fQUQTAQyCXCYSE+OakTQ==}
hasBin: true
- [email protected]:
- resolution: {integrity:
sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+ [email protected]:
+ resolution: {integrity:
sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==}
[email protected]:
resolution: {integrity:
sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==}
@@ -3290,10 +3308,6 @@ packages:
[email protected]:
resolution: {integrity:
sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==}
- [email protected]:
- resolution: {integrity:
sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==}
- engines: {node: '>=18'}
-
[email protected]:
resolution: {integrity:
sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines: {node: '>=10'}
@@ -3363,8 +3377,8 @@ packages:
[email protected]:
resolution: {integrity:
sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
- [email protected]:
- resolution: {integrity:
sha512-pVxQFCcaYUEAH853+v7yoI/qzhxXSq1bTb9obMYGYAN1c3Hen+XDCEvr296XhstrwlSTNgOR7mCSD4JPjbJe5A==}
+ [email protected]:
+ resolution: {integrity:
sha512-k+1+dEIm2z/BEfdvYzT/fIyAGeDBo/1AJNJI4ilFXJRYoxP/3Ds+GP8shAOIq8jYXY9N5nGB3Ag104NsagmLAA==}
[email protected]:
resolution: {integrity:
sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
@@ -3540,8 +3554,8 @@ packages:
[email protected]:
resolution: {integrity:
sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
- [email protected]:
- resolution: {integrity:
sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==}
+ [email protected]:
+ resolution: {integrity:
sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==}
engines: {node: '>=18'}
[email protected]:
@@ -3608,10 +3622,6 @@ packages:
resolution: {integrity:
sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
engines: {node: '>= 0.4'}
- [email protected]:
- resolution: {integrity:
sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==}
- engines: {node: '>=16.17'}
-
[email protected]:
resolution: {integrity:
sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
@@ -3620,10 +3630,6 @@ packages:
resolution: {integrity:
sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
- [email protected]:
- resolution: {integrity:
sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==}
- engines: {node: '>=14.16'}
-
[email protected]:
resolution: {integrity:
sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
@@ -3773,6 +3779,10 @@ packages:
resolution: {integrity:
sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
+ [email protected]:
+ resolution: {integrity:
sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==}
+ engines: {node: '>=20'}
+
[email protected]:
resolution: {integrity:
sha512-Y3NoRtprEEZQD8RfxMCfS0ZTqc4e+i18OrXEXAvpM6TfC/3y+0L5rNbZiSnbBBEkDfFzbpd8o+cE8q3/anjMGA==}
engines: {node: '>=22'}
@@ -3913,8 +3923,8 @@ packages:
resolution: {integrity:
sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: '>= 0.4'}
- [email protected]:
- resolution: {integrity:
sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==}
+ [email protected]:
+ resolution: {integrity:
sha512-ycwFAS14Jw4mppvmK4GR/J6u3WpWpjkEApehuHtLc/8VpPNpDMbQ4WjqwplXifGeyKOzHSFLmSPqzksDQE2Sfg==}
hasBin: true
[email protected]:
@@ -4157,10 +4167,6 @@ packages:
[email protected]:
resolution: {integrity:
sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==}
- [email protected]:
- resolution: {integrity:
sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==}
- engines: {node: '>=18'}
-
[email protected]:
resolution: {integrity:
sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
@@ -4181,10 +4187,6 @@ packages:
resolution: {integrity:
sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==}
engines: {node: '>=18'}
- [email protected]:
- resolution: {integrity:
sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==}
- engines: {node: '>=12'}
-
[email protected]:
resolution: {integrity:
sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
@@ -4251,10 +4253,6 @@ packages:
resolution: {integrity:
sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
- [email protected]:
- resolution: {integrity:
sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
- engines: {node: '>=16'}
-
[email protected]:
resolution: {integrity:
sha512-YGYEVz3Fm5iy/AybuA0oyNFq7H4CgQNfRp/qfe8nurE1kuCeNm3/vfm9X4Mtl+qLyaKJUh5xrFZwogr41SMjYA==}
engines: {node: '>=20'}
@@ -4329,8 +4327,8 @@ packages:
[email protected]:
resolution: {integrity:
sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==}
- [email protected]:
- resolution: {integrity:
sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==}
+ [email protected]:
+ resolution: {integrity:
sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
@@ -4762,7 +4760,7 @@ snapshots:
dependencies:
'@babel/compat-data': 7.29.0
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.28.8
+ browserslist: 4.29.3
lru-cache: 5.1.1
semver: 6.3.1
@@ -4873,6 +4871,18 @@ snapshots:
'@braintree/[email protected]': {}
+ '@cacheable/[email protected]':
+ dependencies:
+ '@cacheable/utils': 2.5.0
+ '@keyv/bigmap': 1.3.1([email protected])
+ hookified: 1.15.1
+ keyv: 5.6.0
+
+ '@cacheable/[email protected]':
+ dependencies:
+ hashery: 1.5.1
+ keyv: 5.6.0
+
'@chakra-ui/[email protected]': {}
'@chakra-ui/[email protected](@emotion/[email protected](@types/[email protected])([email protected]))([email protected]([email protected]))([email protected])':
@@ -4958,23 +4968,23 @@ snapshots:
'@emotion/[email protected]': {}
- '@eslint-community/[email protected]([email protected]([email protected]))':
+ '@eslint-community/[email protected]([email protected]([email protected]))':
dependencies:
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
eslint-visitor-keys: 3.4.3
- '@eslint-community/[email protected]([email protected]([email protected]))':
+ '@eslint-community/[email protected]([email protected]([email protected]))':
dependencies:
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
eslint-visitor-keys: 3.4.3
'@eslint-community/[email protected]': {}
- '@eslint/[email protected]([email protected]([email protected]))':
+ '@eslint/[email protected]([email protected]([email protected]))':
dependencies:
'@eslint/core': 1.2.1
optionalDependencies:
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
'@eslint/[email protected]':
dependencies:
@@ -4992,14 +5002,14 @@ snapshots:
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/[email protected]':
+ '@eslint/[email protected]':
dependencies:
- mdn-data: 2.29.0
- source-map-js: 1.2.1
+ mdn-data: 2.35.0
+ source-map-js: 1.2.2
- '@eslint/[email protected]([email protected]([email protected]))':
+ '@eslint/[email protected]([email protected]([email protected]))':
optionalDependencies:
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
'@eslint/[email protected]': {}
@@ -5008,6 +5018,11 @@ snapshots:
'@eslint/core': 1.2.1
levn: 0.4.1
+ '@eslint/[email protected]':
+ dependencies:
+ '@eslint/core': 1.2.1
+ levn: 0.4.1
+
'@floating-ui/[email protected]':
dependencies:
'@floating-ui/utils': 0.2.11
@@ -5136,6 +5151,14 @@ snapshots:
'@jsdevtools/[email protected]': {}
+ '@keyv/[email protected]([email protected])':
+ dependencies:
+ hashery: 1.5.1
+ hookified: 1.15.1
+ keyv: 5.6.0
+
+ '@keyv/[email protected]': {}
+
'@kurkle/[email protected]': {}
'@lezer/[email protected]': {}
@@ -5252,11 +5275,11 @@ snapshots:
'@standard-schema/[email protected]': {}
- '@stylistic/[email protected]([email protected]([email protected]))':
+ '@stylistic/[email protected]([email protected]([email protected]))':
dependencies:
- '@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
+ '@eslint-community/eslint-utils': 4.9.1([email protected]([email protected]))
'@typescript-eslint/types': 8.63.0
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
eslint-visitor-keys: 4.2.1
espree: 10.4.0
estraverse: 5.3.0
@@ -5327,10 +5350,10 @@ snapshots:
dependencies:
'@swc/counter': 0.1.3
-
'@tanstack/[email protected]([email protected]([email protected]))([email protected])':
+
'@tanstack/[email protected]([email protected]([email protected]))([email protected])':
dependencies:
- '@typescript-eslint/utils':
8.71.0([email protected]([email protected]))([email protected])
- eslint: 10.9.1([email protected])
+ '@typescript-eslint/utils':
8.71.0([email protected]([email protected]))([email protected])
+ eslint: 10.11.0([email protected])
optionalDependencies:
typescript: 6.0.3
transitivePeerDependencies:
@@ -5641,15 +5664,15 @@ snapshots:
dependencies:
'@types/node': 26.6.3
-
'@typescript-eslint/[email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
+
'@typescript-eslint/[email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser':
8.71.0([email protected]([email protected]))([email protected])
+ '@typescript-eslint/parser':
8.71.0([email protected]([email protected]))([email protected])
'@typescript-eslint/scope-manager': 8.71.0
- '@typescript-eslint/type-utils':
8.71.0([email protected]([email protected]))([email protected])
- '@typescript-eslint/utils':
8.71.0([email protected]([email protected]))([email protected])
+ '@typescript-eslint/type-utils':
8.71.0([email protected]([email protected]))([email protected])
+ '@typescript-eslint/utils':
8.71.0([email protected]([email protected]))([email protected])
'@typescript-eslint/visitor-keys': 8.71.0
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
ignore: 7.0.11
natural-compare: 1.4.0
ts-api-utils: 2.5.0([email protected])
@@ -5657,14 +5680,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
-
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
dependencies:
'@typescript-eslint/scope-manager': 8.71.0
'@typescript-eslint/types': 8.71.0
'@typescript-eslint/typescript-estree': 8.71.0([email protected])
'@typescript-eslint/visitor-keys': 8.71.0
debug: 4.4.3
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
typescript: 6.0.3
transitivePeerDependencies:
- supports-color
@@ -5687,13 +5710,13 @@ snapshots:
dependencies:
typescript: 6.0.3
-
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
dependencies:
'@typescript-eslint/types': 8.71.0
'@typescript-eslint/typescript-estree': 8.71.0([email protected])
- '@typescript-eslint/utils':
8.71.0([email protected]([email protected]))([email protected])
+ '@typescript-eslint/utils':
8.71.0([email protected]([email protected]))([email protected])
debug: 4.4.3
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
ts-api-utils: 2.5.0([email protected])
typescript: 6.0.3
transitivePeerDependencies:
@@ -5718,13 +5741,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
-
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+
'@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
dependencies:
- '@eslint-community/eslint-utils': 4.10.1([email protected]([email protected]))
+ '@eslint-community/eslint-utils': 4.10.1([email protected]([email protected]))
'@typescript-eslint/scope-manager': 8.71.0
'@typescript-eslint/types': 8.71.0
'@typescript-eslint/typescript-estree': 8.71.0([email protected])
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
typescript: 6.0.3
transitivePeerDependencies:
- supports-color
@@ -6633,7 +6656,7 @@ snapshots:
[email protected]: {}
- [email protected]: {}
+ [email protected]: {}
[email protected]: {}
@@ -6646,7 +6669,7 @@ snapshots:
dependencies:
balanced-match: 1.0.2
- [email protected]:
+ [email protected]:
dependencies:
balanced-match: 4.0.4
@@ -6654,19 +6677,19 @@ snapshots:
dependencies:
fill-range: 7.1.1
- [email protected]:
+ [email protected]:
dependencies:
- baseline-browser-mapping: 2.11.14
- caniuse-lite: 1.0.30001809
- electron-to-chromium: 1.5.405
- node-releases: 2.0.53
- update-browserslist-db: 1.3.1([email protected])
+ baseline-browser-mapping: 2.11.26
+ caniuse-lite: 1.0.30001814
+ electron-to-chromium: 1.5.443
+ node-releases: 2.0.57
+ update-browserslist-db: 1.3.3([email protected])
[email protected]:
dependencies:
'@types/node': 26.6.3
- [email protected]: {}
+ [email protected]: {}
[email protected]([email protected]):
dependencies:
@@ -6685,6 +6708,14 @@ snapshots:
optionalDependencies:
magicast: 0.3.5
+ [email protected]:
+ dependencies:
+ '@cacheable/memory': 2.2.0
+ '@cacheable/utils': 2.5.0
+ hookified: 1.15.1
+ keyv: 5.6.0
+ qified: 0.10.1
+
[email protected]:
dependencies:
es-errors: 1.3.0
@@ -6706,7 +6737,7 @@ snapshots:
[email protected]: {}
- [email protected]: {}
+ [email protected]: {}
[email protected]: {}
@@ -6811,8 +6842,6 @@ snapshots:
[email protected]: {}
- [email protected]: {}
-
[email protected]: {}
[email protected]: {}
@@ -6821,7 +6850,7 @@ snapshots:
[email protected]:
dependencies:
- browserslist: 4.28.8
+ browserslist: 4.29.3
[email protected]:
dependencies:
@@ -7146,7 +7175,7 @@ snapshots:
[email protected]: {}
- [email protected]: {}
+ [email protected]: {}
[email protected]: {}
@@ -7154,12 +7183,12 @@ snapshots:
[email protected]: {}
- [email protected]: {}
-
[email protected]: {}
[email protected]: {}
+ [email protected]: {}
+
[email protected]:
dependencies:
is-arrayish: 0.2.1
@@ -7272,13 +7301,13 @@ snapshots:
[email protected]: {}
- [email protected]([email protected]([email protected])):
+ [email protected]([email protected]([email protected])):
dependencies:
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
-
[email protected]([email protected]([email protected]))([email protected]):
+
[email protected]([email protected]([email protected]))([email protected]):
dependencies:
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
esquery: 1.7.0
jsonc-eslint-parser: 3.3.0
@@ -7286,22 +7315,22 @@ snapshots:
dependencies:
requireindex: 1.1.0
- [email protected]([email protected]([email protected])):
+ [email protected]([email protected]([email protected])):
dependencies:
- '@eslint-community/eslint-utils': 4.10.1([email protected]([email protected]))
+ '@eslint-community/eslint-utils': 4.10.1([email protected]([email protected]))
'@eslint/core': 1.2.1
'@eslint/plugin-kit': 0.7.2
'@ota-meshi/ast-token-store': 0.3.0
diff-sequences: 29.6.3
- eslint: 10.9.1([email protected])
- eslint-json-compat-utils:
0.2.3([email protected]([email protected]))([email protected])
+ eslint: 10.11.0([email protected])
+ eslint-json-compat-utils:
0.2.3([email protected]([email protected]))([email protected])
jsonc-eslint-parser: 3.3.0
natural-compare: 1.4.0
synckit: 0.11.13
transitivePeerDependencies:
- '@eslint/json'
- [email protected]([email protected]([email protected])):
+ [email protected]([email protected]([email protected])):
dependencies:
aria-query: 5.3.2
array-includes: 3.1.8
@@ -7311,7 +7340,7 @@ snapshots:
axobject-query: 4.1.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
hasown: 2.0.2
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
@@ -7320,40 +7349,42 @@ snapshots:
safe-regex-test: 1.1.0
string.prototype.includes: 2.0.1
-
[email protected]([email protected]([email protected]))([email protected]):
+
[email protected]([email protected]([email protected]))([email protected]):
dependencies:
- '@typescript-eslint/utils':
8.71.0([email protected]([email protected]))([email protected])
- eslint: 10.9.1([email protected])
+ '@typescript-eslint/types': 8.71.0
+ '@typescript-eslint/utils':
8.71.0([email protected]([email protected]))([email protected])
natural-orderby: 5.0.0
+ optionalDependencies:
+ eslint: 10.11.0([email protected])
transitivePeerDependencies:
- supports-color
- typescript
-
[email protected]([email protected]([email protected]([email protected])))([email protected]([email protected]))([email protected]):
+
[email protected]([email protected]([email protected]([email protected])))([email protected]([email protected]))([email protected]):
dependencies:
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
prettier: 3.9.9
prettier-linter-helpers: 1.0.1
synckit: 0.11.13
optionalDependencies:
- eslint-config-prettier: 10.1.8([email protected]([email protected]))
+ eslint-config-prettier: 10.1.8([email protected]([email protected]))
- [email protected]([email protected]([email protected])):
+ [email protected]([email protected]([email protected])):
dependencies:
'@babel/core': 7.29.0
'@babel/parser': 7.29.2
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
hermes-parser: 0.25.1
zod: 4.3.6
zod-validation-error: 4.0.2([email protected])
transitivePeerDependencies:
- supports-color
- [email protected]([email protected]([email protected])):
+ [email protected]([email protected]([email protected])):
dependencies:
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
- [email protected]([email protected]([email protected])):
+ [email protected]([email protected]([email protected])):
dependencies:
array-includes: 3.1.8
array.prototype.findlast: 1.2.5
@@ -7361,7 +7392,7 @@ snapshots:
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.2.1
- eslint: 10.9.1([email protected])
+ eslint: 10.11.0([email protected])
estraverse: 5.3.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
@@ -7375,25 +7406,25 @@ snapshots:
string.prototype.matchall: 4.0.12
string.prototype.repeat: 1.0.0
- [email protected]([email protected]([email protected])):
+ [email protected]([email protected]([email protected])):
dependencies:
- '@eslint-community/eslint-utils': 4.10.1([email protected]([email protected]))
- '@eslint/css-tree': 4.0.5
- browserslist: 4.28.8
+ '@eslint-community/eslint-utils': 4.10.1([email protected]([email protected]))
+ '@eslint/css-tree': 4.1.1
+ browserslist: 4.29.3
change-case: 5.4.4
ci-info: 4.4.0
core-js-compat: 3.50.0
detect-indent: 7.0.2
- entities: 4.5.0
- eslint: 10.9.1([email protected])
+ entities: 8.1.0
+ eslint: 10.11.0([email protected])
find-up-simple: 1.0.1
globals: 17.12.0
+ identifier-regex: 1.1.0
indent-string: 5.0.0
is-builtin-module: 5.0.0
- is-identifier: 1.1.0
pluralize: 8.0.0
quote-js-string: 0.1.0
- regjsparser: 0.13.2
+ regjsparser: 0.13.3
reserved-identifiers: 1.2.0
semver: 7.8.5
strip-indent: 4.1.1
@@ -7412,14 +7443,14 @@ snapshots:
[email protected]: {}
- [email protected]([email protected]):
+ [email protected]([email protected]):
dependencies:
- '@eslint-community/eslint-utils': 4.10.1([email protected]([email protected]))
+ '@eslint-community/eslint-utils': 4.10.1([email protected]([email protected]))
'@eslint-community/regexpp': 4.12.2
'@eslint/config-array': 0.23.5
'@eslint/config-helpers': 0.7.0
'@eslint/core': 1.2.1
- '@eslint/plugin-kit': 0.7.2
+ '@eslint/plugin-kit': 0.7.3
'@humanfs/node': 0.16.8
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
@@ -7434,7 +7465,7 @@ snapshots:
esquery: 1.7.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
- file-entry-cache: 8.0.0
+ file-entry-cache: 11.1.5
find-up: 5.0.0
glob-parent: 6.0.2
ignore: 5.3.2
@@ -7515,9 +7546,9 @@ snapshots:
optionalDependencies:
picomatch: 4.0.7
- [email protected]:
+ [email protected]:
dependencies:
- flat-cache: 4.0.1
+ flat-cache: 6.1.23
[email protected]:
dependencies:
@@ -7532,10 +7563,11 @@ snapshots:
locate-path: 6.0.0
path-exists: 4.0.0
- [email protected]:
+ [email protected]:
dependencies:
+ cacheable: 2.5.0
flatted: 3.4.4
- keyv: 4.5.4
+ hookified: 1.15.1
[email protected]: {}
@@ -7565,8 +7597,6 @@ snapshots:
[email protected]: {}
- [email protected]: {}
-
[email protected]:
dependencies:
call-bind: 1.0.8
@@ -7686,6 +7716,10 @@ snapshots:
dependencies:
has-symbols: 1.1.0
+ [email protected]:
+ dependencies:
+ hookified: 1.15.1
+
[email protected]:
dependencies:
function-bind: 1.1.2
@@ -7793,6 +7827,10 @@ snapshots:
dependencies:
react-is: 16.13.1
+ [email protected]: {}
+
+ [email protected]: {}
+
[email protected]: {}
[email protected]: {}
@@ -7893,7 +7931,7 @@ snapshots:
[email protected]:
dependencies:
- builtin-modules: 5.3.0
+ builtin-modules: 5.4.0
[email protected]: {}
@@ -7935,11 +7973,6 @@ snapshots:
[email protected]: {}
- [email protected]:
- dependencies:
- identifier-regex: 1.1.0
- super-regex: 1.1.0
-
[email protected]: {}
[email protected]: {}
@@ -8042,8 +8075,6 @@ snapshots:
[email protected]: {}
- [email protected]: {}
-
[email protected]: {}
[email protected]: {}
@@ -8077,9 +8108,9 @@ snapshots:
dependencies:
commander: 15.0.0
- [email protected]:
+ [email protected]:
dependencies:
- json-buffer: 3.0.1
+ '@keyv/serialize': 1.1.1
[email protected]: {}
@@ -8195,12 +8226,6 @@ snapshots:
'@babel/types': 7.29.8
source-map-js: 1.2.1
- [email protected]:
- dependencies:
- p-event: 6.0.1
- type-fest: 4.41.0
- web-worker: 1.5.0
-
[email protected]:
dependencies:
semver: 7.8.5
@@ -8378,7 +8403,7 @@ snapshots:
dependencies:
'@types/mdast': 4.0.4
- [email protected]: {}
+ [email protected]: {}
[email protected]: {}
@@ -8618,7 +8643,7 @@ snapshots:
[email protected]:
dependencies:
- brace-expansion: 5.0.9
+ brace-expansion: 5.0.12
[email protected]:
dependencies:
@@ -8692,7 +8717,7 @@ snapshots:
[email protected]: {}
- [email protected]: {}
+ [email protected]: {}
[email protected]: {}
@@ -8778,10 +8803,6 @@ snapshots:
object-keys: 1.1.1
safe-push-apply: 1.0.0
- [email protected]:
- dependencies:
- p-timeout: 6.1.4
-
[email protected]:
dependencies:
yocto-queue: 0.1.0
@@ -8790,8 +8811,6 @@ snapshots:
dependencies:
p-limit: 3.1.0
- [email protected]: {}
-
[email protected]: {}
[email protected]: {}
@@ -8923,6 +8942,10 @@ snapshots:
[email protected]: {}
+ [email protected]:
+ dependencies:
+ hookified: 2.2.0
+
[email protected]: {}
[email protected]:
@@ -9088,7 +9111,7 @@ snapshots:
gopd: 1.2.0
set-function-name: 2.0.2
- [email protected]:
+ [email protected]:
dependencies:
jsesc: 3.1.0
@@ -9294,8 +9317,7 @@ snapshots:
[email protected]: {}
- [email protected]:
- optional: true
+ [email protected]: {}
[email protected]: {}
@@ -9408,12 +9430,6 @@ snapshots:
[email protected]: {}
- [email protected]:
- dependencies:
- function-timeout: 1.0.2
- make-asynchronous: 1.1.0
- time-span: 5.1.0
-
[email protected]:
dependencies:
has-flag: 4.0.0
@@ -9434,10 +9450,6 @@ snapshots:
minizlib: 3.1.0
yallist: 5.0.0
- [email protected]:
- dependencies:
- convert-hrtime: 5.0.0
-
[email protected]: {}
[email protected]: {}
@@ -9490,8 +9502,6 @@ snapshots:
dependencies:
prelude-ls: 1.2.1
- [email protected]: {}
-
[email protected]:
dependencies:
tagged-tag: 1.0.0
@@ -9529,13 +9539,13 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
- [email protected]([email protected]([email protected]))([email protected]):
+ [email protected]([email protected]([email protected]))([email protected]):
dependencies:
- '@typescript-eslint/eslint-plugin':
8.71.0(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
- '@typescript-eslint/parser':
8.71.0([email protected]([email protected]))([email protected])
+ '@typescript-eslint/eslint-plugin':
8.71.0(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
+ '@typescript-eslint/parser':
8.71.0([email protected]([email protected]))([email protected])
'@typescript-eslint/typescript-estree': 8.71.0([email protected])
- '@typescript-eslint/utils':
8.71.0([email protected]([email protected]))([email protected])
- eslint: 10.9.1([email protected])
+ '@typescript-eslint/utils':
8.71.0([email protected]([email protected]))([email protected])
+ eslint: 10.11.0([email protected])
typescript: 6.0.3
transitivePeerDependencies:
- supports-color
@@ -9601,9 +9611,9 @@ snapshots:
[email protected]: {}
- [email protected]([email protected]):
+ [email protected]([email protected]):
dependencies:
- browserslist: 4.28.8
+ browserslist: 4.29.3
escalade: 3.2.0
picocolors: 1.1.1
diff --git a/airflow-core/src/airflow/ui/rules/i18n.js
b/airflow-core/src/airflow/ui/rules/i18n.js
index 811dea1d252..bf71a66b65e 100644
--- a/airflow-core/src/airflow/ui/rules/i18n.js
+++ b/airflow-core/src/airflow/ui/rules/i18n.js
@@ -39,11 +39,9 @@ const getKeys = (obj, prefix = "") => {
const newPrefix = prefix ? `${prefix}.${key}` : key;
const value = obj[key];
- if (typeof value === "object" && value !== null && !Array.isArray(value)) {
- return [newPrefix, ...getKeys(value, newPrefix)];
- }
-
- return [newPrefix];
+ return typeof value === "object" && value !== null && !Array.isArray(value)
+ ? [newPrefix, ...getKeys(value, newPrefix)]
+ : [newPrefix];
});
};
diff --git a/airflow-core/src/airflow/ui/rules/rem.js
b/airflow-core/src/airflow/ui/rules/rem.js
index ab0199f3e87..75198a4e29c 100644
--- a/airflow-core/src/airflow/ui/rules/rem.js
+++ b/airflow-core/src/airflow/ui/rules/rem.js
@@ -95,16 +95,13 @@ export const remPlugin = {
if (attr.value !== null && attr.value.type ===
AST_NODE_TYPES.Literal) {
return fixer.replaceText(attr.value, `{${fixedValue}}`);
}
+
// For JSX expressions with literal values, replace just the
literal
- if (
- attr.value !== null &&
+ return attr.value !== null &&
attr.value.type === AST_NODE_TYPES.JSXExpressionContainer
&&
attr.value.expression.type === AST_NODE_TYPES.Literal
- ) {
- return fixer.replaceText(attr.value.expression,
fixedValue);
- }
-
- return null;
+ ? fixer.replaceText(attr.value.expression, fixedValue)
+ : null;
},
messageId: "noRemInProps",
node: attr,
diff --git a/airflow-core/src/airflow/ui/src/components/AnsiRenderer.tsx
b/airflow-core/src/airflow/ui/src/components/AnsiRenderer.tsx
index 554a2b112d8..d4e2c1a9c5d 100644
--- a/airflow-core/src/airflow/ui/src/components/AnsiRenderer.tsx
+++ b/airflow-core/src/airflow/ui/src/components/AnsiRenderer.tsx
@@ -60,11 +60,7 @@ const createClass = (bundle: AnserJsonEntry): string |
undefined => {
classNames += `ansi-${bundle.decoration} `;
}
- if (classNames === "") {
- return undefined;
- }
-
- return classNames.slice(0, classNames.length - 1);
+ return classNames === "" ? undefined : classNames.slice(0, classNames.length
- 1);
};
// Map RGB values to Chakra UI semantic tokens
diff --git
a/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceConfirmationDialog.tsx
b/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceConfirmationDialog.tsx
index 336ab7ed6be..c3b4a43e57f 100644
---
a/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceConfirmationDialog.tsx
+++
b/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceConfirmationDialog.tsx
@@ -69,10 +69,10 @@ const ClearTaskInstanceConfirmationDialog = ({
},
requestBody: {
dag_run_id: dagDetails?.dagRunId ?? "",
- include_downstream: useExplicitTaskIds ? false : dagDetails?.downstream,
+ include_downstream: !useExplicitTaskIds && dagDetails?.downstream,
include_future: dagDetails?.future,
include_past: dagDetails?.past,
- include_upstream: useExplicitTaskIds ? false : dagDetails?.upstream,
+ include_upstream: !useExplicitTaskIds && dagDetails?.upstream,
only_failed: dagDetails?.onlyFailed,
task_ids: useExplicitTaskIds
? dagDetails.taskIds
diff --git
a/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceDialog.tsx
b/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceDialog.tsx
index 8d04075adb9..8299596a423 100644
---
a/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceDialog.tsx
+++
b/airflow-core/src/airflow/ui/src/components/Clear/TaskInstance/ClearTaskInstanceDialog.tsx
@@ -84,6 +84,7 @@ const ClearTaskInstanceDialog = (props: Props) => {
/* eslint-enable react/destructuring-assignment */
const { t: translate } = useTranslation();
const { onClose, onOpen, open } = useDisclosure();
+ const isDialogOpen = openDialog && !open;
const [clearTaskInstanceDefaultOptions] =
useClearTaskInstanceDefaultOptions();
const [preventRunningTaskDefault] = useClearPreventRunningTaskDefault();
@@ -255,7 +256,7 @@ const ClearTaskInstanceDialog = (props: Props) => {
}
lazyMount
onOpenChange={onCloseDialog}
- open={openDialog ? !open : false}
+ open={isDialogOpen}
title={
<>
<strong>
diff --git a/airflow-core/src/airflow/ui/src/components/DateTimeInput.tsx
b/airflow-core/src/airflow/ui/src/components/DateTimeInput.tsx
index 767dc8393d6..54516ea816d 100644
--- a/airflow-core/src/airflow/ui/src/components/DateTimeInput.tsx
+++ b/airflow-core/src/airflow/ui/src/components/DateTimeInput.tsx
@@ -118,11 +118,10 @@ export const DateTimeInput = forwardRef<HTMLDivElement,
Props>(
if (fieldName === "start" && inputs.date !== "" &&
!validateDateInput(inputs.date)) {
return { field: "start", message:
translate("dateRangeFilter.validation.invalidDateFormat") };
}
- if (fieldName === "startTime" && inputs.time !== "" &&
!validateTimeInput(inputs.time)) {
- return { field: "startTime", message:
translate("dateRangeFilter.validation.invalidTimeFormat") };
- }
- return undefined;
+ return fieldName === "startTime" && inputs.time !== "" &&
!validateTimeInput(inputs.time)
+ ? { field: "startTime", message:
translate("dateRangeFilter.validation.invalidTimeFormat") }
+ : undefined;
};
const getBorderColor = (fieldName: ValidationError["field"]) =>
diff --git a/airflow-core/src/airflow/ui/src/components/DurationChart.tsx
b/airflow-core/src/airflow/ui/src/components/DurationChart.tsx
index 77053be4c6c..df2f60c3c67 100644
--- a/airflow-core/src/airflow/ui/src/components/DurationChart.tsx
+++ b/airflow-core/src/airflow/ui/src/components/DurationChart.tsx
@@ -185,7 +185,7 @@ export const DurationChart = ({
}}
datasetIdKey="id"
options={{
- animation: isAutoRefreshing ? false : undefined,
+ animation: !isAutoRefreshing && undefined,
maintainAspectRatio: false,
onClick: (_event, elements) => {
const [element] = elements;
diff --git a/airflow-core/src/airflow/ui/src/components/FilterBar/FilterBar.tsx
b/airflow-core/src/airflow/ui/src/components/FilterBar/FilterBar.tsx
index 91cae568161..6552e453b8c 100644
--- a/airflow-core/src/airflow/ui/src/components/FilterBar/FilterBar.tsx
+++ b/airflow-core/src/airflow/ui/src/components/FilterBar/FilterBar.tsx
@@ -113,11 +113,7 @@ export const FilterBar = ({
synchronizedFilters.length === prevFilters.length &&
synchronizedFilters.every((filter, index) => filter ===
prevFilters[index]);
- if (toAdd.length === 0 && filtersUnchanged) {
- return prevFilters;
- }
-
- return [...synchronizedFilters, ...toAdd];
+ return toAdd.length === 0 && filtersUnchanged ? prevFilters :
[...synchronizedFilters, ...toAdd];
});
// configs is intentionally omitted — it is structurally stable across
renders and including
// it would risk infinite re-render loops. initialValuesKey captures all
relevant URL changes.
diff --git
a/airflow-core/src/airflow/ui/src/components/FilterBar/filters/DateRangeCalendar.tsx
b/airflow-core/src/airflow/ui/src/components/FilterBar/filters/DateRangeCalendar.tsx
index 994558a334e..8e42fac450e 100644
---
a/airflow-core/src/airflow/ui/src/components/FilterBar/filters/DateRangeCalendar.tsx
+++
b/airflow-core/src/airflow/ui/src/components/FilterBar/filters/DateRangeCalendar.tsx
@@ -70,22 +70,16 @@ export const DateRangeCalendar = ({
if (state.isEnd) {
return "brand.muted";
}
- if (state.isInRange) {
- return "brand.subtle";
- }
- return "transparent";
+ return state.isInRange ? "brand.subtle" : "transparent";
};
const getTextColor = () => {
if (state.isStart || state.isEnd) {
return "brand.contrast";
}
- if (!state.isCurrentMonth) {
- return "fg.muted";
- }
- return "fg";
+ return state.isCurrentMonth ? "fg" : "fg.muted";
};
return {
diff --git
a/airflow-core/src/airflow/ui/src/components/FilterBar/filters/DateRangeInputs.tsx
b/airflow-core/src/airflow/ui/src/components/FilterBar/filters/DateRangeInputs.tsx
index 59505ad9472..e9593ad69b1 100644
---
a/airflow-core/src/airflow/ui/src/components/FilterBar/filters/DateRangeInputs.tsx
+++
b/airflow-core/src/airflow/ui/src/components/FilterBar/filters/DateRangeInputs.tsx
@@ -66,11 +66,8 @@ export const DateRangeInputs = ({
if (getFieldError("range") && (fieldName === "start" || fieldName ===
"end")) {
return "danger.solid";
}
- if (editingState.selectionTarget === fieldName) {
- return "brand.focusRing";
- }
- return "border";
+ return editingState.selectionTarget === fieldName ? "brand.focusRing" :
"border";
};
const clearField = (field: "end" | "start") => {
diff --git a/airflow-core/src/airflow/ui/src/components/FilterBar/utils.ts
b/airflow-core/src/airflow/ui/src/components/FilterBar/utils.ts
index d704bf1caad..5364a5211d6 100644
--- a/airflow-core/src/airflow/ui/src/components/FilterBar/utils.ts
+++ b/airflow-core/src/airflow/ui/src/components/FilterBar/utils.ts
@@ -59,11 +59,7 @@ export const getDefaultFilterValue = (config: FilterConfig):
FilterValue => {
return { endDate: undefined, startDate: undefined };
}
- if (config.type === "multiselect") {
- return [];
- }
-
- return "";
+ return config.type === "multiselect" ? [] : "";
};
export const parseFilterDate = (date?: string | null) =>
diff --git
a/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldMultiSelect.tsx
b/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldMultiSelect.tsx
index 04a901b30bc..714f5c20459 100644
---
a/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldMultiSelect.tsx
+++
b/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldMultiSelect.tsx
@@ -25,13 +25,8 @@ import { paramPlaceholder, useParamStore } from
"src/queries/useParamStore";
import type { FlexibleFormElementProps } from ".";
-const labelLookup = (key: string, valuesDisplay: Record<string, string> |
undefined): string => {
- if (valuesDisplay && typeof valuesDisplay === "object") {
- return valuesDisplay[key] ?? key;
- }
-
- return key;
-};
+const labelLookup = (key: string, valuesDisplay: Record<string, string> |
undefined): string =>
+ valuesDisplay && typeof valuesDisplay === "object" ? (valuesDisplay[key] ??
key) : key;
export const FieldMultiSelect = ({ name, namespace = "default", onUpdate }:
FlexibleFormElementProps) => {
const { t: translate } = useTranslation("components");
diff --git
a/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldSelector.tsx
b/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldSelector.tsx
index d88016dcf0d..f2341c16247 100644
--- a/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldSelector.tsx
+++ b/airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldSelector.tsx
@@ -38,11 +38,9 @@ const inferType = (param: ParamSpec) => {
if (Boolean(param.schema.type)) {
// If there are multiple types, we assume that the first one is the
correct one that is not "null".
// "null" is only used to signal the value is optional.
- if (Array.isArray(param.schema.type)) {
- return param.schema.type.find((type) => type !== "null") ?? "string";
- }
-
- return param.schema.type ?? "string";
+ return Array.isArray(param.schema.type)
+ ? (param.schema.type.find((type) => type !== "null") ?? "string")
+ : (param.schema.type ?? "string");
}
// If the type is not defined, we infer it from the value.
@@ -51,11 +49,7 @@ const inferType = (param: ParamSpec) => {
}
// Missing value, return 'null' as typeof(null) = 'dict'
- if (param.value === null) {
- return "null";
- }
-
- return typeof param.value;
+ return param.value === null ? "null" : typeof param.value;
};
const isFieldAdvancedArray = (fieldType: string, fieldSchema: ParamSchema) =>
diff --git a/airflow-core/src/airflow/ui/src/components/Graph/DagNode.tsx
b/airflow-core/src/airflow/ui/src/components/Graph/DagNode.tsx
index 4a415ce4cf1..73e1a5f9e93 100644
--- a/airflow-core/src/airflow/ui/src/components/Graph/DagNode.tsx
+++ b/airflow-core/src/airflow/ui/src/components/Graph/DagNode.tsx
@@ -35,7 +35,7 @@ export const DagNode = ({
}: NodeProps<NodeType<CustomNodeProps, "dag">>) => {
const refetchInterval = useAutoRefresh({ dagId: label });
const { data: dag } = useDagServiceGetDag({ dagId: label }, undefined, {
- refetchInterval: (query) => (query.state.data?.scheduling_state ===
"draining" ? refetchInterval : false),
+ refetchInterval: (query) => query.state.data?.scheduling_state ===
"draining" && refetchInterval,
});
const { data: unfinishedRuns } = useDagRunServiceGetDagRuns(
{ dagId: label, limit: 1, state: ["queued", "running"] },
diff --git
a/airflow-core/src/airflow/ui/src/components/Graph/SegmentedStateBar.tsx
b/airflow-core/src/airflow/ui/src/components/Graph/SegmentedStateBar.tsx
index cf4c8ff43af..8040efb68e4 100644
--- a/airflow-core/src/airflow/ui/src/components/Graph/SegmentedStateBar.tsx
+++ b/airflow-core/src/airflow/ui/src/components/Graph/SegmentedStateBar.tsx
@@ -32,11 +32,9 @@ export const SegmentedStateBar = ({ childStates,
fallbackState, height = "6px" }
const entries = sortStateEntries(childStates);
if (entries.length === 0) {
- if (!fallbackState) {
- return undefined;
- }
-
- return <Box bg={`${fallbackState}.solid`} borderRadius="2px"
height={height} mt="auto" />;
+ return fallbackState ? (
+ <Box bg={`${fallbackState}.solid`} borderRadius="2px" height={height}
mt="auto" />
+ ) : undefined;
}
return (
diff --git a/airflow-core/src/airflow/ui/src/components/Graph/TaskLink.tsx
b/airflow-core/src/airflow/ui/src/components/Graph/TaskLink.tsx
index 9fd76ee7185..7f45a68f413 100644
--- a/airflow-core/src/airflow/ui/src/components/Graph/TaskLink.tsx
+++ b/airflow-core/src/airflow/ui/src/components/Graph/TaskLink.tsx
@@ -42,11 +42,7 @@ export const TaskLink = forwardRef<HTMLAnchorElement, Props>(
compositeId,
);
- if (match) {
- return { dagId: match[1], taskId: match[2] };
- }
-
- return { dagId: undefined, taskId: undefined };
+ return match ? { dagId: match[1], taskId: match[2] } : { dagId:
undefined, taskId: undefined };
};
const { dagId: extractedDagId, taskId: extractedTaskId } =
parseCompositeId(id);
diff --git a/airflow-core/src/airflow/ui/src/components/MonacoEditor/index.tsx
b/airflow-core/src/airflow/ui/src/components/MonacoEditor/index.tsx
index 949146d6524..63fffff5d6b 100644
--- a/airflow-core/src/airflow/ui/src/components/MonacoEditor/index.tsx
+++ b/airflow-core/src/airflow/ui/src/components/MonacoEditor/index.tsx
@@ -27,21 +27,13 @@ import { useMonacoReady } from "./useMonacoReady";
export const MonacoEditor = (props: EditorProps) => {
const isMonacoReady = useMonacoReady();
- if (!isMonacoReady) {
- return null;
- }
-
- return <EditorComponent {...props} />;
+ return isMonacoReady ? <EditorComponent {...props} /> : null;
};
export const MonacoDiffEditor = (props: DiffEditorProps) => {
const isMonacoReady = useMonacoReady();
- if (!isMonacoReady) {
- return null;
- }
-
- return <DiffEditorComponent {...props} />;
+ return isMonacoReady ? <DiffEditorComponent {...props} /> : null;
};
export const DiffEditor = MonacoDiffEditor;
diff --git a/airflow-core/src/airflow/ui/src/components/ReactMarkdownBlocks.tsx
b/airflow-core/src/airflow/ui/src/components/ReactMarkdownBlocks.tsx
index d7084d8f953..98eccc4c515 100644
--- a/airflow-core/src/airflow/ui/src/components/ReactMarkdownBlocks.tsx
+++ b/airflow-core/src/airflow/ui/src/components/ReactMarkdownBlocks.tsx
@@ -275,9 +275,9 @@ export const MarkdownCodeBlock = ({
return <MarkdownMathBlock style={style} value={value} />;
}
- if (language === "mermaid") {
- return <MarkdownMermaid chart={value} fallbackStyle={style} />;
- }
-
- return <MarkdownPlainCodeBlock language={language} style={style}
value={value} />;
+ return language === "mermaid" ? (
+ <MarkdownMermaid chart={value} fallbackStyle={style} />
+ ) : (
+ <MarkdownPlainCodeBlock language={language} style={style} value={value} />
+ );
};
diff --git a/airflow-core/src/airflow/ui/src/components/SqlParserProvider.tsx
b/airflow-core/src/airflow/ui/src/components/SqlParserProvider.tsx
index e008779a5cd..d42288d3b0c 100644
--- a/airflow-core/src/airflow/ui/src/components/SqlParserProvider.tsx
+++ b/airflow-core/src/airflow/ui/src/components/SqlParserProvider.tsx
@@ -35,9 +35,5 @@ export const SqlParserProvider = ({ children }: { readonly
children: ReactNode }
.finally(() => setIsReady(true));
}, []);
- if (!isReady) {
- return undefined;
- }
-
- return children;
+ return isReady ? children : undefined;
};
diff --git a/airflow-core/src/airflow/ui/src/hooks/navigation/useNavigation.ts
b/airflow-core/src/airflow/ui/src/hooks/navigation/useNavigation.ts
index eaf8585bdb6..65f74e5666e 100644
--- a/airflow-core/src/airflow/ui/src/hooks/navigation/useNavigation.ts
+++ b/airflow-core/src/airflow/ui/src/hooks/navigation/useNavigation.ts
@@ -43,11 +43,10 @@ const detectModeFromUrl = (pathname: string):
NavigationMode => {
if (pathname.includes("/runs/") && !pathname.includes("/tasks/")) {
return NavigationModes.RUN;
}
- if (pathname.includes("/tasks/") && !pathname.includes("/runs/")) {
- return NavigationModes.TASK;
- }
- return NavigationModes.TI;
+ return pathname.includes("/tasks/") && !pathname.includes("/runs/")
+ ? NavigationModes.TASK
+ : NavigationModes.TI;
};
const isValidDirection = (direction: NavigationDirection, mode:
NavigationMode): boolean => {
diff --git a/airflow-core/src/airflow/ui/src/hooks/useAdvancedSearch.ts
b/airflow-core/src/airflow/ui/src/hooks/useAdvancedSearch.ts
index f3d4a629334..d8aa8d72a96 100644
--- a/airflow-core/src/airflow/ui/src/hooks/useAdvancedSearch.ts
+++ b/airflow-core/src/airflow/ui/src/hooks/useAdvancedSearch.ts
@@ -37,7 +37,7 @@ export const useAdvancedSearch = (key: string) => {
const [storedEnabled, setStoredEnabled] =
useLocalStorage<boolean>(advancedSearchKey(key), defaultEnabled);
const urlValues = searchParams.getAll(SearchParamsKeys.ADVANCED_SEARCH);
- const enabled = urlValues.includes(key) ? true :
urlValues.includes(`-${key}`) ? false : storedEnabled;
+ const enabled = urlValues.includes(key) || (!urlValues.includes(`-${key}`)
&& storedEnabled);
const onToggle = (nextEnabled: boolean) => {
setSearchParams((previous) => {
diff --git a/airflow-core/src/airflow/ui/src/layouts/Details/DagBreadcrumb.tsx
b/airflow-core/src/airflow/ui/src/layouts/Details/DagBreadcrumb.tsx
index 8f4d2552f7f..ac570efae33 100644
--- a/airflow-core/src/airflow/ui/src/layouts/Details/DagBreadcrumb.tsx
+++ b/airflow-core/src/airflow/ui/src/layouts/Details/DagBreadcrumb.tsx
@@ -103,7 +103,7 @@ export const DagBreadcrumb = () => {
undefined,
{
enabled: Boolean(runId),
- refetchInterval: (query) => (isStatePending(query.state.data?.state) ?
refetchInterval : false),
+ refetchInterval: (query) => isStatePending(query.state.data?.state) &&
refetchInterval,
},
);
@@ -127,7 +127,7 @@ export const DagBreadcrumb = () => {
undefined,
{
enabled: Boolean(runId) && Boolean(taskId) && !hasExpandedInstances,
- refetchInterval: (query) => (isStatePending(query.state.data?.state) ?
refetchInterval : false),
+ refetchInterval: (query) => isStatePending(query.state.data?.state) &&
refetchInterval,
},
);
diff --git a/airflow-core/src/airflow/ui/src/layouts/Details/DetailsLayout.tsx
b/airflow-core/src/airflow/ui/src/layouts/Details/DetailsLayout.tsx
index 1c5c3f3cc46..b290ab4a3b1 100644
--- a/airflow-core/src/airflow/ui/src/layouts/Details/DetailsLayout.tsx
+++ b/airflow-core/src/airflow/ui/src/layouts/Details/DetailsLayout.tsx
@@ -95,7 +95,7 @@ export const DetailsLayout = ({ children, error, isLoading,
outletContext, tabs
const { dagId = "", runId } = useParams();
const refetchInterval = useAutoRefresh({ dagId });
const { data: dag } = useDagServiceGetDag({ dagId }, undefined, {
- refetchInterval: (query) => (query.state.data?.scheduling_state ===
"draining" ? refetchInterval : false),
+ refetchInterval: (query) => query.state.data?.scheduling_state ===
"draining" && refetchInterval,
});
// Only asked while the Dag can still be drained; the answer decides whether
// pausing needs to offer the drain choice at all.
diff --git
a/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/GanttTimeline.tsx
b/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/GanttTimeline.tsx
index 06e5924a740..0d617683815 100644
--- a/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/GanttTimeline.tsx
+++ b/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/GanttTimeline.tsx
@@ -289,10 +289,10 @@ export const GanttTimeline = ({
// from the filtered list so the adjacent execution bar keeps
rounded corners.
const segments =
bodyWidthPx > 0
- ? allSegments.filter((segment) =>
- segment.state !== "scheduled" && segment.state !== "queued"
- ? true
- : segmentLayout(segment).widthPx >=
MIN_SEGMENT_RENDER_PX,
+ ? allSegments.filter(
+ (segment) =>
+ (segment.state !== "scheduled" && segment.state !==
"queued") ||
+ segmentLayout(segment).widthPx >= MIN_SEGMENT_RENDER_PX,
)
: allSegments;
const taskId = node.id;
@@ -341,9 +341,9 @@ export const GanttTimeline = ({
// Task groups don't have a try number
const touchesNext =
- tryNumber === undefined ? false : segments[segIndex +
1]?.tryNumber === tryNumber;
+ tryNumber !== undefined && segments[segIndex +
1]?.tryNumber === tryNumber;
const touchesPrev =
- tryNumber === undefined ? false : segments[segIndex -
1]?.tryNumber === tryNumber;
+ tryNumber !== undefined && segments[segIndex -
1]?.tryNumber === tryNumber;
return (
<TaskInstanceTooltip
diff --git
a/airflow-core/src/airflow/ui/src/layouts/Details/Graph/hooks/useFilteredNodesAndEdges.ts
b/airflow-core/src/airflow/ui/src/layouts/Details/Graph/hooks/useFilteredNodesAndEdges.ts
index d70a04290fb..3a1eb06184a 100644
---
a/airflow-core/src/airflow/ui/src/layouts/Details/Graph/hooks/useFilteredNodesAndEdges.ts
+++
b/airflow-core/src/airflow/ui/src/layouts/Details/Graph/hooks/useFilteredNodesAndEdges.ts
@@ -64,11 +64,8 @@ export const useFilteredNodesAndEdges = ({
if (edge.source === node.id) {
return [edge.target];
}
- if (edge.target === node.id) {
- return [edge.source];
- }
- return [];
+ return edge.target === node.id ? [edge.source] : [];
});
const connectedTaskIds = connectedIds.filter((id) => nodeTypeMap.get(id)
=== "task");
diff --git
a/airflow-core/src/airflow/ui/src/layouts/Details/Graph/useGraphFilteredNodes.ts
b/airflow-core/src/airflow/ui/src/layouts/Details/Graph/useGraphFilteredNodes.ts
index 34f26022c58..4fafe005923 100644
---
a/airflow-core/src/airflow/ui/src/layouts/Details/Graph/useGraphFilteredNodes.ts
+++
b/airflow-core/src/airflow/ui/src/layouts/Details/Graph/useGraphFilteredNodes.ts
@@ -52,11 +52,7 @@ const getTaskDurationSeconds = (
const start = new Date(minStartDate).getTime();
const end = new Date(maxEndDate).getTime();
- if (Number.isNaN(start) || Number.isNaN(end)) {
- return undefined;
- }
-
- return (end - start) / 1000;
+ return Number.isNaN(start) || Number.isNaN(end) ? undefined : (end - start)
/ 1000;
};
const isNodeFiltered = (node: ReactFlowNode<CustomNodeProps>, filters:
GraphFilterValues): boolean => {
diff --git a/airflow-core/src/airflow/ui/src/mocks/handlers/dags.ts
b/airflow-core/src/airflow/ui/src/mocks/handlers/dags.ts
index 765a16b5bf1..e7564dec209 100644
--- a/airflow-core/src/airflow/ui/src/mocks/handlers/dags.ts
+++ b/airflow-core/src/airflow/ui/src/mocks/handlers/dags.ts
@@ -122,11 +122,8 @@ const filterDags = ({ paused, timetableTypes }: { paused:
string | null; timetab
if (paused === "true") {
return allDags.filter((dag) => dag.is_paused);
}
- if (paused === "false") {
- return allDags.filter((dag) => !dag.is_paused);
- }
- return allDags;
+ return paused === "false" ? allDags.filter((dag) => !dag.is_paused) :
allDags;
};
export const handlers: Array<HttpHandler> = [
diff --git a/airflow-core/src/airflow/ui/src/pages/AssetsList/AssetsList.tsx
b/airflow-core/src/airflow/ui/src/pages/AssetsList/AssetsList.tsx
index 2e30e31ec98..4609a2bf8fe 100644
--- a/airflow-core/src/airflow/ui/src/pages/AssetsList/AssetsList.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/AssetsList/AssetsList.tsx
@@ -68,11 +68,7 @@ const createColumns = (translate: TFunction):
Array<ColumnDef<AssetResponse>> =>
const assetEvent = original.last_asset_event;
const timestamp = assetEvent?.timestamp;
- if (timestamp === null || timestamp === undefined) {
- return undefined;
- }
-
- return <Time datetime={timestamp} />;
+ return timestamp === null || timestamp === undefined ? undefined : <Time
datetime={timestamp} />;
},
header: () => translate("lastAssetEvent"),
},
diff --git
a/airflow-core/src/airflow/ui/src/pages/Connections/ConnectionForm.tsx
b/airflow-core/src/airflow/ui/src/pages/Connections/ConnectionForm.tsx
index bdd46efb968..d1ad9354bac 100644
--- a/airflow-core/src/airflow/ui/src/pages/Connections/ConnectionForm.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Connections/ConnectionForm.tsx
@@ -172,8 +172,7 @@ const ConnectionForm = ({
)}
rules={{
required: translate("connections.form.connectionIdRequired"),
- validate: (value) =>
- value.trim() === "" ?
translate("connections.form.connectionIdRequirement") : true,
+ validate: (value) => value.trim() !== "" ||
translate("connections.form.connectionIdRequirement"),
}}
/>
diff --git
a/airflow-core/src/airflow/ui/src/pages/Dag/Backfills/BackfillDagRunsModal.tsx
b/airflow-core/src/airflow/ui/src/pages/Dag/Backfills/BackfillDagRunsModal.tsx
index 6b007afe29f..5ffea667f24 100644
---
a/airflow-core/src/airflow/ui/src/pages/Dag/Backfills/BackfillDagRunsModal.tsx
+++
b/airflow-core/src/airflow/ui/src/pages/Dag/Backfills/BackfillDagRunsModal.tsx
@@ -93,11 +93,11 @@ const getColumns = (
cell: ({ row }) => {
const state = row.original.dag_run_state;
- if (state === null || state === undefined) {
- return <Text color="fg.muted">—</Text>;
- }
-
- return <StateBadge
state={state}>{translate(`states.${state}`)}</StateBadge>;
+ return state === null || state === undefined ? (
+ <Text color="fg.muted">—</Text>
+ ) : (
+ <StateBadge state={state}>{translate(`states.${state}`)}</StateBadge>
+ );
},
enableSorting: false,
header: translate("dagRunState"),
@@ -107,11 +107,11 @@ const getColumns = (
cell: ({ row }) => {
const reason = row.original.exception_reason;
- if (reason === null || reason === "") {
- return <Text color="fg.muted">—</Text>;
- }
-
- return <Text>{translateExceptionReason(reason, translate)}</Text>;
+ return reason === null || reason === "" ? (
+ <Text color="fg.muted">—</Text>
+ ) : (
+ <Text>{translateExceptionReason(reason, translate)}</Text>
+ );
},
enableSorting: false,
header: translate("components:backfill.notCreatedReason"),
@@ -160,7 +160,7 @@ export const BackfillDagRunsModal = ({ backfillId, dagId,
onClose, open }: Backf
isLoading: isBackfillLoading,
} = useBackfillServiceGetBackfill({ backfillId: backfillId ?? 0 },
undefined, {
enabled: open && backfillId !== undefined,
- refetchInterval: (query) => (query.state.data?.completed_at === null ?
refetchInterval : false),
+ refetchInterval: (query) => query.state.data?.completed_at === null &&
refetchInterval,
});
const shouldPoll = backfill?.completed_at === null;
diff --git
a/airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarCell.tsx
b/airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarCell.tsx
index 73d3df9b6b5..b8f41360971 100644
--- a/airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarCell.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarCell.tsx
@@ -66,10 +66,7 @@ export const CalendarCell = ({
? Object.entries(cellData.counts)
.filter(
([key, value]) =>
- key !== "total" &&
- key !== "backfill" &&
- value > 0 &&
- (viewMode === "failed" ? key === "failed" : true),
+ key !== "total" && key !== "backfill" && value > 0 && (viewMode
!== "failed" || key === "failed"),
)
.map(([key]) => key)
: [];
diff --git
a/airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarTooltip.tsx
b/airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarTooltip.tsx
index 6075e2e9f97..b1469ed1fd4 100644
--- a/airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarTooltip.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarTooltip.tsx
@@ -60,19 +60,10 @@ export const CalendarTooltip = ({ cellData, viewMode =
"total" }: Props) => {
// In failed mode, only show failed runs; in total mode, show all non-zero
states
const states = Object.entries(counts)
- .filter(([key, value]) => {
- if (key === "total" || key === "backfill") {
- return false;
- }
- if (value === 0) {
- return false;
- }
- if (viewMode === "failed") {
- return key === "failed";
- }
-
- return true;
- })
+ .filter(
+ ([key, value]) =>
+ key !== "total" && key !== "backfill" && value !== 0 && (viewMode !==
"failed" || key === "failed"),
+ )
.map(([state, count]) => ({
color: stateColorMap[state as keyof typeof stateColorMap] || "gray.500",
count,
diff --git a/airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx
b/airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx
index dc102cb8576..1ddb81b04e8 100644
--- a/airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx
@@ -77,17 +77,12 @@ export const Dag = () => {
},
undefined,
{
- refetchInterval: (query) => {
+ refetchInterval: (query) =>
// Auto-refresh when there are active runs or pending runs
- if (
- query.state.data?.scheduling_state === "draining" ||
- (hasPendingRuns ?? (query.state.data &&
(query.state.data.active_runs_count ?? 0) > 0))
- ) {
- return refetchInterval;
- }
-
- return false;
- },
+ query.state.data?.scheduling_state === "draining" ||
+ (hasPendingRuns ?? (query.state.data &&
(query.state.data.active_runs_count ?? 0) > 0))
+ ? refetchInterval
+ : false,
},
);
diff --git
a/airflow-core/src/airflow/ui/src/pages/Dashboard/PoolSummary/PoolSummary.test.tsx
b/airflow-core/src/airflow/ui/src/pages/Dashboard/PoolSummary/PoolSummary.test.tsx
index af777e4d766..826341f05e0 100644
---
a/airflow-core/src/airflow/ui/src/pages/Dashboard/PoolSummary/PoolSummary.test.tsx
+++
b/airflow-core/src/airflow/ui/src/pages/Dashboard/PoolSummary/PoolSummary.test.tsx
@@ -56,11 +56,9 @@ vi.mock("react-i18next", () => ({
return `Deferred not counted in slots: ${options?.count}`;
}
- if (namespace === "dashboard" && key ===
"deferredSlotsNotCountedTooltip") {
- return mocks.deferredSlotsNotCountedTooltip;
- }
-
- return `${namespace}:${key}`;
+ return namespace === "dashboard" && key ===
"deferredSlotsNotCountedTooltip"
+ ? mocks.deferredSlotsNotCountedTooltip
+ : `${namespace}:${key}`;
},
}),
}));
diff --git
a/airflow-core/src/airflow/ui/src/pages/Dashboard/PoolSummary/PoolSummary.tsx
b/airflow-core/src/airflow/ui/src/pages/Dashboard/PoolSummary/PoolSummary.tsx
index d251157e484..865605bea49 100644
---
a/airflow-core/src/airflow/ui/src/pages/Dashboard/PoolSummary/PoolSummary.tsx
+++
b/airflow-core/src/airflow/ui/src/pages/Dashboard/PoolSummary/PoolSummary.tsx
@@ -46,7 +46,7 @@ export const PoolSummary = () => {
refetchInterval: (query) => {
const apiError = query.state.error;
- return apiError?.status === 403 ? false : refetchInterval;
+ return apiError?.status !== 403 && refetchInterval;
},
},
);
diff --git
a/airflow-core/src/airflow/ui/src/pages/Dashboard/Stats/DagImportErrorsModal.tsx
b/airflow-core/src/airflow/ui/src/pages/Dashboard/Stats/DagImportErrorsModal.tsx
index 4fe139d1a6b..7adea18d4fe 100644
---
a/airflow-core/src/airflow/ui/src/pages/Dashboard/Stats/DagImportErrorsModal.tsx
+++
b/airflow-core/src/airflow/ui/src/pages/Dashboard/Stats/DagImportErrorsModal.tsx
@@ -102,8 +102,7 @@ export const DagImportErrorsModal = ({ onClose, open }:
ImportDAGErrorModalProps
// Reparse is a queued request the dag processor picks up on its next
// cycle, so once a reparse has been issued the modal polls until it is
// closed. autoRefreshInterval mirrors what the dashboard cards use.
- refetchInterval:
- pollAfterReparse && autoRefreshInterval !== undefined ?
autoRefreshInterval * 1000 : false,
+ refetchInterval: pollAfterReparse && autoRefreshInterval !== undefined
&& autoRefreshInterval * 1000,
},
);
diff --git a/airflow-core/src/airflow/ui/src/pages/Deadlines/index.tsx
b/airflow-core/src/airflow/ui/src/pages/Deadlines/index.tsx
index 4d7b796dbbf..a851017ceae 100644
--- a/airflow-core/src/airflow/ui/src/pages/Deadlines/index.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Deadlines/index.tsx
@@ -137,7 +137,8 @@ export const Deadlines = () => {
const deadlineTimeLte = searchParams.get(SearchParamsKeys.DEADLINE_TIME_LTE);
const teams = searchParams.getAll(SearchParamsKeys.TEAMS);
- const missedFilter = filteredMissed === "true" ? true : filteredMissed ===
"false" ? false : undefined;
+ const missedFilter =
+ filteredMissed === "true" || filteredMissed === "false" ? filteredMissed
=== "true" : undefined;
const { data, error, isFetching, isLoading } =
useDeadlinesServiceGetDeadlines({
dagId: filteredDagId !== null && filteredDagId !== "" ? filteredDagId :
"~",
diff --git
a/airflow-core/src/airflow/ui/src/pages/HITLTaskInstances/HITLTaskInstances.tsx
b/airflow-core/src/airflow/ui/src/pages/HITLTaskInstances/HITLTaskInstances.tsx
index 5d5536edb70..15e138b38b1 100644
---
a/airflow-core/src/airflow/ui/src/pages/HITLTaskInstances/HITLTaskInstances.tsx
+++
b/airflow-core/src/airflow/ui/src/pages/HITLTaskInstances/HITLTaskInstances.tsx
@@ -319,7 +319,7 @@ export const HITLTaskInstances = ({
),
);
- return hasPendingWithoutResponse ? baseRefetchInterval : false;
+ return hasPendingWithoutResponse && baseRefetchInterval;
},
},
);
diff --git a/airflow-core/src/airflow/ui/src/pages/LandingPage.tsx
b/airflow-core/src/airflow/ui/src/pages/LandingPage.tsx
index 5d66a1b13ab..27d9481e9dc 100644
--- a/airflow-core/src/airflow/ui/src/pages/LandingPage.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/LandingPage.tsx
@@ -25,9 +25,5 @@ import { useDefaultLandingPage } from
"src/hooks/useUserSettings";
export const LandingPage = () => {
const [defaultLandingPage] = useDefaultLandingPage();
- if (defaultLandingPage === "dags") {
- return <Navigate replace to="/dags" />;
- }
-
- return <Dashboard />;
+ return defaultLandingPage === "dags" ? <Navigate replace to="/dags" /> :
<Dashboard />;
};
diff --git a/airflow-core/src/airflow/ui/src/pages/Pools/PoolForm.tsx
b/airflow-core/src/airflow/ui/src/pages/Pools/PoolForm.tsx
index faa8eb9dce1..417449c633a 100644
--- a/airflow-core/src/airflow/ui/src/pages/Pools/PoolForm.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Pools/PoolForm.tsx
@@ -115,16 +115,11 @@ const PoolForm = ({ error, initialPool, isPending,
manageMutate, setError }: Poo
</Field.Root>
)}
rules={{
- validate: (value: number) => {
- if (!Number.isFinite(value)) {
- return translate("common:validation.mustBeValidNumber");
- }
- if (value < POOL_SLOTS_MIN) {
- return translate("common:validation.mustBeAtLeast", { min:
POOL_SLOTS_MIN });
- }
-
- return true;
- },
+ validate: (value: number) =>
+ Number.isFinite(value)
+ ? value >= POOL_SLOTS_MIN ||
+ translate("common:validation.mustBeAtLeast", { min:
POOL_SLOTS_MIN })
+ : translate("common:validation.mustBeValidNumber"),
}}
/>
diff --git a/airflow-core/src/airflow/ui/src/pages/Run/AssetEvents.tsx
b/airflow-core/src/airflow/ui/src/pages/Run/AssetEvents.tsx
index 4c8f6d6a5a3..dbf6d11761d 100644
--- a/airflow-core/src/airflow/ui/src/pages/Run/AssetEvents.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Run/AssetEvents.tsx
@@ -35,12 +35,12 @@ export const AssetEvents = () => {
dagRunId: runId,
},
undefined,
- { refetchInterval: (query) => (isStatePending(query.state.data?.state) ?
refetchInterval : false) },
+ { refetchInterval: (query) => isStatePending(query.state.data?.state) &&
refetchInterval },
);
const { data, isLoading } = useDagRunServiceGetUpstreamAssetEvents({ dagId,
dagRunId: runId }, undefined, {
enabled: dagRun?.run_type === "asset_triggered",
- refetchInterval: () => (isStatePending(dagRun?.state) ? refetchInterval :
false),
+ refetchInterval: () => isStatePending(dagRun?.state) && refetchInterval,
});
return <AssetEventsTable data={data} isLoading={isLoading}
titleKey="common:sourceAssetEvent" />;
diff --git a/airflow-core/src/airflow/ui/src/pages/Run/Details.tsx
b/airflow-core/src/airflow/ui/src/pages/Run/Details.tsx
index 3197eb03125..9c9d8e1799f 100644
--- a/airflow-core/src/airflow/ui/src/pages/Run/Details.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Run/Details.tsx
@@ -47,7 +47,7 @@ export const Details = () => {
dagRunId: runId,
},
undefined,
- { refetchInterval: (query) => (isStatePending(query.state.data?.state) ?
refetchInterval : false) },
+ { refetchInterval: (query) => isStatePending(query.state.data?.state) &&
refetchInterval },
);
const { data: dagRunStats } = useDagRunServiceGetDagRunStats({ dagId,
dagRunId: runId });
diff --git a/airflow-core/src/airflow/ui/src/pages/Run/Run.tsx
b/airflow-core/src/airflow/ui/src/pages/Run/Run.tsx
index 75c3a415838..62966082512 100644
--- a/airflow-core/src/airflow/ui/src/pages/Run/Run.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/Run/Run.tsx
@@ -62,7 +62,7 @@ export const Run = () => {
},
undefined,
{
- refetchInterval: (query) => (isStatePending(query.state.data?.state) ?
refetchInterval : false),
+ refetchInterval: (query) => isStatePending(query.state.data?.state) &&
refetchInterval,
},
);
diff --git a/airflow-core/src/airflow/ui/src/pages/TaskInstance/AssetEvents.tsx
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/AssetEvents.tsx
index 408edd320d7..5c2c11f79db 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/AssetEvents.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/AssetEvents.tsx
@@ -102,7 +102,7 @@ export const AssetEvents = () => {
},
undefined,
{
- refetchInterval: () => (isStatePending(taskInstance?.state) ?
refetchInterval : false),
+ refetchInterval: () => isStatePending(taskInstance?.state) &&
refetchInterval,
},
);
diff --git a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Details.tsx
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Details.tsx
index c35a3462dd7..ceca6f20611 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Details.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Details.tsx
@@ -92,7 +92,7 @@ export const Details = () => {
},
undefined,
{
- refetchInterval: (query) => (isStatePending(query.state.data?.state) ?
refetchInterval : false),
+ refetchInterval: (query) => isStatePending(query.state.data?.state) &&
refetchInterval,
},
);
@@ -109,11 +109,9 @@ export const Details = () => {
return value;
}
- if (typeof value === "number" || typeof value === "boolean" || typeof
value === "bigint") {
- return value.toString();
- }
-
- return translate("common:none", { defaultValue: "None" });
+ return typeof value === "number" || typeof value === "boolean" || typeof
value === "bigint"
+ ? value.toString()
+ : translate("common:none", { defaultValue: "None" });
};
// Keyed off the selected try's own state, so an earlier failed try keeps
its reason while the
@@ -150,11 +148,11 @@ export const Details = () => {
taskInstance={taskInstance}
/>
)}
- <ExtraLinks refetchInterval={isStatePending(tryInstance?.state) ?
refetchInterval : false} />
+ <ExtraLinks refetchInterval={isStatePending(tryInstance?.state) &&
refetchInterval} />
{taskInstance === undefined ||
![null, "queued", "scheduled"].includes(taskInstance.state) ? undefined
: (
<BlockingDeps
- refetchInterval={isStatePending(tryInstance?.state) ?
refetchInterval : false}
+ refetchInterval={isStatePending(tryInstance?.state) &&
refetchInterval}
taskInstance={taskInstance}
/>
)}
diff --git
a/airflow-core/src/airflow/ui/src/pages/TaskInstance/HITLResponse.tsx
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/HITLResponse.tsx
index f366057c193..2f5d1ed10d2 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/HITLResponse.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/HITLResponse.tsx
@@ -52,7 +52,7 @@ export const HITLResponse = () => {
undefined,
{
enabled: !isNaN(parsedMapIndex),
- refetchInterval: (query) => (isStatePending(query.state.data?.state) ?
refetchInterval : false),
+ refetchInterval: (query) => isStatePending(query.state.data?.state) &&
refetchInterval,
},
);
diff --git
a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/logSelection.ts
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/logSelection.ts
index 8c05efb8283..9d63f491270 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/logSelection.ts
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/logSelection.ts
@@ -141,11 +141,9 @@ export const getBottomDragClampTarget = ({
const { lastRow } = boundary;
const offset = lastRow.childNodes.length;
- if (selection.focusNode === lastRow && selection.focusOffset === offset) {
- return undefined;
- }
-
- return { node: lastRow, offset };
+ return selection.focusNode === lastRow && selection.focusOffset === offset
+ ? undefined
+ : { node: lastRow, offset };
};
/**
@@ -160,11 +158,9 @@ export const mergePinnedIndexes = (
): Array<number> => {
const validPins = pinnedIndexes.filter((index) => index >= 0 && index <
count);
- if (validPins.length === 0) {
- return defaultIndexes;
- }
-
- return [...new Set([...validPins, ...defaultIndexes])].sort((first, second)
=> first - second);
+ return validPins.length === 0
+ ? defaultIndexes
+ : [...new Set([...validPins, ...defaultIndexes])].sort((first, second) =>
first - second);
};
/**
diff --git
a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/useLogGroups.tsx
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/useLogGroups.tsx
index 1d0a68bcf65..01348946d1b 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/useLogGroups.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/useLogGroups.tsx
@@ -96,11 +96,7 @@ export const useLogGroups = ({
const isGroupAncestryExpanded = (groupId: number): boolean => {
const parentId = groupParentMap.get(groupId);
- if (parentId === undefined) {
- return true;
- }
-
- return expandedGroups.has(parentId) && isGroupAncestryExpanded(parentId);
+ return parentId === undefined || (expandedGroups.has(parentId) &&
isGroupAncestryExpanded(parentId));
};
const isEntryVisible = (entry: ParsedLogEntry): boolean => {
@@ -108,11 +104,9 @@ export const useLogGroups = ({
return true;
}
- if (entry.group.type === "header") {
- return isGroupAncestryExpanded(entry.group.id);
- }
-
- return expandedGroups.has(entry.group.id) &&
isGroupAncestryExpanded(entry.group.id);
+ return entry.group.type === "header"
+ ? isGroupAncestryExpanded(entry.group.id)
+ : expandedGroups.has(entry.group.id) &&
isGroupAncestryExpanded(entry.group.id);
};
const items: Array<VisibleItem> = [];
diff --git a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/utils.ts
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/utils.ts
index e3040081940..ae2c97ca9ca 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/utils.ts
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/utils.ts
@@ -114,11 +114,8 @@ export const getHighlightColor = ({
if (searchMatchIndices?.has(index)) {
return "yellow.subtle";
}
- if (hashIndex !== undefined && index === hashIndex) {
- return "brand.emphasized";
- }
- return "transparent";
+ return hashIndex !== undefined && index === hashIndex ? "brand.emphasized" :
"transparent";
};
/**
@@ -152,11 +149,7 @@ export const splitBySearchQuery = (text: string, query:
string): Array<Highlight
segments.push({ highlight: false, text: text.slice(lastIndex) });
}
- if (segments.length === 0) {
- return [{ highlight: false, text }];
- }
-
- return segments;
+ return segments.length === 0 ? [{ highlight: false, text }] : segments;
};
type VirtualizerInstance = Virtualizer<HTMLDivElement, Element>;
@@ -196,10 +189,9 @@ export const scrollToBottom = ({ element, virtualizer }:
ScrollToBottomOptions):
* Used to pause following new log lines while the user is selecting text, so
* auto-scrolling does not move the text out from under the cursor.
*/
-export const isSelectionWithin = (selection: Selection | null, container:
HTMLElement | null): boolean => {
- if (!selection || selection.isCollapsed || selection.rangeCount === 0 ||
!container) {
- return false;
- }
-
- return container.contains(selection.anchorNode) ||
container.contains(selection.focusNode);
-};
+export const isSelectionWithin = (selection: Selection | null, container:
HTMLElement | null): boolean =>
+ selection !== null &&
+ !selection.isCollapsed &&
+ selection.rangeCount !== 0 &&
+ container !== null &&
+ (container.contains(selection.anchorNode) ||
container.contains(selection.focusNode));
diff --git
a/airflow-core/src/airflow/ui/src/pages/TaskInstance/TaskInstance.tsx
b/airflow-core/src/airflow/ui/src/pages/TaskInstance/TaskInstance.tsx
index 284bf61b2b6..c6f69f29993 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskInstance/TaskInstance.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskInstance/TaskInstance.tsx
@@ -111,7 +111,7 @@ export const TaskInstance = () => {
undefined,
{
enabled: !isNaN(parsedMapIndex),
- refetchInterval: (query) => (isStatePending(query.state.data?.state) ?
refetchInterval : false),
+ refetchInterval: (query) => isStatePending(query.state.data?.state) &&
refetchInterval,
staleTime: 0,
},
);
@@ -140,12 +140,12 @@ export const TaskInstance = () => {
const { tabs: requiredActionTabs } = useRequiredActionTabs({ dagId,
dagRunId: runId, taskId }, newTabs, {
autoRedirect: true,
- refetchInterval: isStatePending(taskInstance?.state) ? refetchInterval :
false,
+ refetchInterval: isStatePending(taskInstance?.state) && refetchInterval,
});
const { tabs: displayTabs } = useHITLReviewTabs({ dagId, dagRunId: runId,
taskId }, requiredActionTabs, {
mapIndex: parsedMapIndex,
- refetchInterval: isStatePending(taskInstance?.state) ? refetchInterval :
false,
+ refetchInterval: isStatePending(taskInstance?.state) && refetchInterval,
});
return (
diff --git
a/airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStore.tsx
b/airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStore.tsx
index b67dbd2aff9..811e2df8a39 100644
--- a/airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStore.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStore.tsx
@@ -134,7 +134,7 @@ export const TaskStateStore = () => {
taskId,
},
undefined,
- { refetchInterval: isStatePending(taskInstance?.state) ? refetchInterval :
false },
+ { refetchInterval: isStatePending(taskInstance?.state) && refetchInterval
},
);
const columns = getColumns({ dagId, mapIndex, runId, taskId, translate });
diff --git
a/airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStoreModal.tsx
b/airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStoreModal.tsx
index a25af40481d..40608e5ec55 100644
---
a/airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStoreModal.tsx
+++
b/airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStoreModal.tsx
@@ -125,11 +125,8 @@ export const TaskStateStoreModal = ({
if (expiresAt === "never") {
return null;
}
- if (expiresAt === "custom") {
- return dayjs.tz(customExpiresAt, selectedTimezone).toISOString();
- }
- return "default";
+ return expiresAt === "custom" ? dayjs.tz(customExpiresAt,
selectedTimezone).toISOString() : "default";
};
const onSave = () => {
diff --git
a/airflow-core/src/airflow/ui/src/queries/useDagBundleRefetchInterval.ts
b/airflow-core/src/airflow/ui/src/queries/useDagBundleRefetchInterval.ts
index 62e9cd38bf3..569eb78f7b0 100644
--- a/airflow-core/src/airflow/ui/src/queries/useDagBundleRefetchInterval.ts
+++ b/airflow-core/src/airflow/ui/src/queries/useDagBundleRefetchInterval.ts
@@ -32,7 +32,9 @@ const MIN_REFETCH_INTERVAL_MS = 10_000;
export const useDagBundleRefetchInterval = (): number | false => {
const configuredInterval = useAutoRefresh({});
- return configuredInterval === false || configuredInterval === 0
- ? false
- : Math.max(configuredInterval, MIN_REFETCH_INTERVAL_MS);
+ return (
+ configuredInterval !== false &&
+ configuredInterval !== 0 &&
+ Math.max(configuredInterval, MIN_REFETCH_INTERVAL_MS)
+ );
};
diff --git a/airflow-core/src/airflow/ui/src/queries/useDagRunStateCounts.tsx
b/airflow-core/src/airflow/ui/src/queries/useDagRunStateCounts.tsx
index 4e51070b4d4..238f54cc563 100644
--- a/airflow-core/src/airflow/ui/src/queries/useDagRunStateCounts.tsx
+++ b/airflow-core/src/airflow/ui/src/queries/useDagRunStateCounts.tsx
@@ -41,7 +41,6 @@ export const useDagRunStateCounts = ({
return useDagServiceGetDagRunStateCountsUi({ dagIds: sortedDagIds },
undefined, {
enabled: sortedDagIds.length > 0,
placeholderData: (prev) => prev,
- refetchInterval:
- refetchInterval === false ? false : hasPendingRun ? refetchInterval :
refetchInterval * 10,
+ refetchInterval: refetchInterval !== false && (hasPendingRun ?
refetchInterval : refetchInterval * 10),
});
};
diff --git a/airflow-core/src/airflow/ui/src/queries/useDags.tsx
b/airflow-core/src/airflow/ui/src/queries/useDags.tsx
index df0cd6de996..4ccf18ca4df 100644
--- a/airflow-core/src/airflow/ui/src/queries/useDags.tsx
+++ b/airflow-core/src/airflow/ui/src/queries/useDags.tsx
@@ -100,15 +100,14 @@ export const useDags = ({
// Filter changes swap the query key, which would otherwise drop the
list to skeletons
placeholderData: (prev) => prev,
refetchInterval: (query) =>
- refetchInterval === false
- ? false
- : query.state.data?.dags.some(
- (dag) =>
- dag.scheduling_state === "draining" ||
- (!dag.is_paused && dag.latest_dag_runs.some((dr) =>
isStatePending(dr.state))),
- )
- ? refetchInterval
- : refetchInterval * 10,
+ refetchInterval !== false &&
+ (query.state.data?.dags.some(
+ (dag) =>
+ dag.scheduling_state === "draining" ||
+ (!dag.is_paused && dag.latest_dag_runs.some((dr) =>
isStatePending(dr.state))),
+ )
+ ? refetchInterval
+ : refetchInterval * 10),
},
);
diff --git a/airflow-core/src/airflow/ui/src/queries/useDeadlines.ts
b/airflow-core/src/airflow/ui/src/queries/useDeadlines.ts
index b0e7e98424e..48b21e752db 100644
--- a/airflow-core/src/airflow/ui/src/queries/useDeadlines.ts
+++ b/airflow-core/src/airflow/ui/src/queries/useDeadlines.ts
@@ -48,7 +48,7 @@ export const useDeadlines = ({ dagId, enabled, limit, offset
= 0 }: UseDeadlines
// Stop polling only when every deadline in the full result set is
missed
const allMissed = data.total_entries > 0 &&
data.deadlines.every((deadline) => deadline.missed);
- return allMissed ? false : refetchInterval;
+ return !allMissed && refetchInterval;
},
},
);
diff --git a/airflow-core/src/airflow/ui/src/queries/useLogs.tsx
b/airflow-core/src/airflow/ui/src/queries/useLogs.tsx
index 6e102a0f33b..2bf51a65e33 100644
--- a/airflow-core/src/airflow/ui/src/queries/useLogs.tsx
+++ b/airflow-core/src/airflow/ui/src/queries/useLogs.tsx
@@ -334,10 +334,9 @@ export const useLogs = (
{
enabled: Boolean(taskInstance),
refetchInterval: (query) =>
- isStatePending(taskInstance?.state) ||
- dayjs(query.state.dataUpdatedAt).isBefore(taskInstance?.end_date)
- ? refetchInterval
- : false,
+ (isStatePending(taskInstance?.state) ||
+ dayjs(query.state.dataUpdatedAt).isBefore(taskInstance?.end_date)) &&
+ refetchInterval,
...options,
},
);
diff --git a/airflow-core/src/airflow/ui/src/queries/useParamStore.ts
b/airflow-core/src/airflow/ui/src/queries/useParamStore.ts
index 68b182b4ac9..38200ad76b5 100644
--- a/airflow-core/src/airflow/ui/src/queries/useParamStore.ts
+++ b/airflow-core/src/airflow/ui/src/queries/useParamStore.ts
@@ -120,11 +120,9 @@ const createParamStore = () =>
2,
);
- if (state.conf === newConf && JSON.stringify(state.paramsDict) ===
JSON.stringify(newParamsDict)) {
- return {};
- }
-
- return { conf: newConf, paramsDict: newParamsDict };
+ return state.conf === newConf && JSON.stringify(state.paramsDict) ===
JSON.stringify(newParamsDict)
+ ? {}
+ : { conf: newConf, paramsDict: newParamsDict };
}),
}));
diff --git a/airflow-core/src/airflow/ui/src/queries/useRefreshOnNewDagRuns.ts
b/airflow-core/src/airflow/ui/src/queries/useRefreshOnNewDagRuns.ts
index ac64acf6762..345e5e65812 100644
--- a/airflow-core/src/airflow/ui/src/queries/useRefreshOnNewDagRuns.ts
+++ b/airflow-core/src/airflow/ui/src/queries/useRefreshOnNewDagRuns.ts
@@ -43,7 +43,7 @@ export const useRefreshOnNewDagRuns = (
const { data: latestDagRun } = useDagServiceGetLatestRunInfo({ dagId },
undefined, {
enabled: Boolean(dagId),
- refetchInterval: Boolean(dagId) && !hasPendingRuns && !isPaused ?
pollIntervalMs : false,
+ refetchInterval: Boolean(dagId) && !hasPendingRuns && !isPaused &&
pollIntervalMs,
});
useEffect(() => {
diff --git a/airflow-core/src/airflow/ui/src/queryClient.ts
b/airflow-core/src/airflow/ui/src/queryClient.ts
index fbe1638cd1b..1f8aef9929e 100644
--- a/airflow-core/src/airflow/ui/src/queryClient.ts
+++ b/airflow-core/src/airflow/ui/src/queryClient.ts
@@ -33,11 +33,9 @@ const retryFunction = (failureCount: number, error: unknown)
=> {
const { status } = error as { status?: number };
// Do not retry for client errors (4xx). 429 should be eventually retried
though.
- if (status !== undefined && status >= 400 && status < 500 && status !== 429)
{
- return false;
- }
-
- return failureCount < RETRY_COUNT;
+ return (
+ (status === undefined || status < 400 || status >= 500 || status === 429)
&& failureCount < RETRY_COUNT
+ );
};
// Track active 403 toast to prevent duplicates when multiple mutations fail
diff --git
a/airflow-core/src/airflow/ui/src/system-components/Select/ValueText.tsx
b/airflow-core/src/airflow/ui/src/system-components/Select/ValueText.tsx
index 284d109ddd5..b652aff9b2f 100644
--- a/airflow-core/src/airflow/ui/src/system-components/Select/ValueText.tsx
+++ b/airflow-core/src/airflow/ui/src/system-components/Select/ValueText.tsx
@@ -44,11 +44,10 @@ export const ValueText = forwardRef<HTMLSpanElement,
ValueTextProps>((props, ref
if (children) {
return children(items);
}
- if (items.length === 1) {
- return select.collection.stringifyItem(items[0]);
- }
- return `${formatNumber(items.length, i18n.language)} selected`;
+ return items.length === 1
+ ? select.collection.stringifyItem(items[0])
+ : `${formatNumber(items.length, i18n.language)} selected`;
}}
</ChakraSelect.Context>
</ChakraSelect.ValueText>
diff --git a/airflow-core/src/airflow/ui/src/utils/datetimeUtils.ts
b/airflow-core/src/airflow/ui/src/utils/datetimeUtils.ts
index cd513705a14..893e3024407 100644
--- a/airflow-core/src/airflow/ui/src/utils/datetimeUtils.ts
+++ b/airflow-core/src/airflow/ui/src/utils/datetimeUtils.ts
@@ -173,11 +173,9 @@ const formatDuration = (
// Below a millisecond the digits are timestamp resolution and clock skew
rather than signal. "<"
// is mathematical notation, not prose, so CLDR has no pattern for it and
none is needed.
- if (seconds > 0 && seconds < 0.001) {
- return `<${formatParts([{ unit: "millisecond", value: 1 }], locale,
style)}`;
- }
-
- return formatParts(getDurationParts(seconds), locale, style);
+ return seconds > 0 && seconds < 0.001
+ ? `<${formatParts([{ unit: "millisecond", value: 1 }], locale, style)}`
+ : formatParts(getDurationParts(seconds), locale, style);
};
/**
@@ -204,16 +202,11 @@ const DURATION_TICK_STEPS_SECONDS = [
604_800,
];
-export const getDurationTickStep = (maxSeconds: number, maxTicks = 8): number
=> {
- if (!Number.isFinite(maxSeconds) || maxSeconds <= 0) {
- return 1;
- }
-
- return (
- DURATION_TICK_STEPS_SECONDS.find((candidate) => maxSeconds / candidate <=
maxTicks) ??
- Math.ceil(maxSeconds / maxTicks)
- );
-};
+export const getDurationTickStep = (maxSeconds: number, maxTicks = 8): number
=>
+ !Number.isFinite(maxSeconds) || maxSeconds <= 0
+ ? 1
+ : (DURATION_TICK_STEPS_SECONDS.find((candidate) => maxSeconds / candidate
<= maxTicks) ??
+ Math.ceil(maxSeconds / maxTicks));
/** Elapsed seconds between two timestamps, counting an absent `endDate` as
still running. */
export const getElapsedSeconds = (startDate?: string | null, endDate?: string
| null): number | undefined => {
@@ -234,13 +227,10 @@ export const formatDate = (
date: number | string | null | undefined,
timezone: string,
format: string = DEFAULT_DATETIME_FORMAT,
-) => {
- if (date === null || date === undefined || !dayjs(date).isValid()) {
- return dayjs().tz(timezone).format(format);
- }
-
- return dayjs(date).tz(timezone).format(format);
-};
+) =>
+ date === null || date === undefined || !dayjs(date).isValid()
+ ? dayjs().tz(timezone).format(format)
+ : dayjs(date).tz(timezone).format(format);
// Ordered largest first so the first unit the difference reaches wins: "45
minutes ago" rather than
// "2700 seconds ago". Months and years use the mean Gregorian lengths CLDR
assumes for relative
diff --git a/airflow-core/src/airflow/ui/src/utils/jsonPreview.ts
b/airflow-core/src/airflow/ui/src/utils/jsonPreview.ts
index 53ace97a10c..3449bd7fef4 100644
--- a/airflow-core/src/airflow/ui/src/utils/jsonPreview.ts
+++ b/airflow-core/src/airflow/ui/src/utils/jsonPreview.ts
@@ -60,18 +60,14 @@ export const getJsonPreviewEntries = (content: object):
Array<JsonPreviewEntry>
// Items nested in an array have no key to identify them, so one badge
each would read
// `{…} {…} {…}`. Summarise the array as a whole instead.
- if (!content.every((item: unknown) => isPrimitive(item))) {
- return [{ id: "items", isComplex: true, itemCount: content.length,
value: "[…]" }];
- }
-
- return content.map((item: unknown, index) => ({ id: String(index),
...formatValue(item) }));
+ return content.every((item: unknown) => isPrimitive(item))
+ ? content.map((item: unknown, index) => ({ id: String(index),
...formatValue(item) }))
+ : [{ id: "items", isComplex: true, itemCount: content.length, value:
"[…]" }];
}
const entries = Object.entries(content);
- if (entries.length === 0) {
- return undefined;
- }
-
- return entries.map(([key, value]) => ({ id: key, label: key,
...formatValue(value) }));
+ return entries.length === 0
+ ? undefined
+ : entries.map(([key, value]) => ({ id: key, label: key,
...formatValue(value) }));
};
diff --git a/airflow-core/src/airflow/ui/src/utils/links.ts
b/airflow-core/src/airflow/ui/src/utils/links.ts
index 935b29ef70c..8a01db4abc4 100644
--- a/airflow-core/src/airflow/ui/src/utils/links.ts
+++ b/airflow-core/src/airflow/ui/src/utils/links.ts
@@ -140,11 +140,7 @@ export const getSafeExternalUrl = (url: string): string |
undefined => {
return trimmed;
}
- if (SAFE_EXTERNAL_URL_SCHEMES.has(parsed.protocol)) {
- return trimmed;
- }
-
- return undefined;
+ return SAFE_EXTERNAL_URL_SCHEMES.has(parsed.protocol) ? trimmed : undefined;
};
export const buildTaskInstanceUrl = (params: {
diff --git a/airflow-core/src/airflow/ui/src/utils/logs.ts
b/airflow-core/src/airflow/ui/src/utils/logs.ts
index a35348bd771..989f1647b3d 100644
--- a/airflow-core/src/airflow/ui/src/utils/logs.ts
+++ b/airflow-core/src/airflow/ui/src/utils/logs.ts
@@ -76,9 +76,7 @@ export const parseStreamingLogContent = (
}
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
- if (typeof data === "object" && data !== null) {
- return [data] as unknown as TaskInstancesLogResponse["content"];
- }
-
- return [];
+ return typeof data === "object" && data !== null
+ ? ([data] as unknown as TaskInstancesLogResponse["content"])
+ : [];
};
diff --git a/airflow-core/src/airflow/ui/src/utils/pluginAppliesTo.ts
b/airflow-core/src/airflow/ui/src/utils/pluginAppliesTo.ts
index 5cad719f258..86fce62e4b3 100644
--- a/airflow-core/src/airflow/ui/src/utils/pluginAppliesTo.ts
+++ b/airflow-core/src/airflow/ui/src/utils/pluginAppliesTo.ts
@@ -85,13 +85,10 @@ const matchesOperators = (
const matchesOperatorNames = (
criteria: Array<string>,
{ task, taskInstance }: AppliesToContext,
-): boolean | undefined => {
- if (taskInstance !== undefined) {
- return matchesAnyName(criteria, knownNames(taskInstance.operator_name));
- }
-
- return matchesAnyName(criteria, knownNames(task?.operator_name));
-};
+): boolean | undefined =>
+ taskInstance === undefined
+ ? matchesAnyName(criteria, knownNames(task?.operator_name))
+ : matchesAnyName(criteria, knownNames(taskInstance.operator_name));
/**
* Decide whether a plugin view should be shown for the current route.
@@ -127,10 +124,6 @@ export const matchesAppliesTo = (view: PluginView,
context: AppliesToContext): b
].filter((verdict) => verdict !== undefined);
// No criterion was evaluable (either none configured, or none judgeable
here).
- if (verdicts.length === 0) {
- return true;
- }
-
return verdicts.every(Boolean);
};
diff --git a/airflow-core/src/airflow/ui/src/utils/query.ts
b/airflow-core/src/airflow/ui/src/utils/query.ts
index f0ef2c015db..f364fcab0de 100644
--- a/airflow-core/src/airflow/ui/src/utils/query.ts
+++ b/airflow-core/src/airflow/ui/src/utils/query.ts
@@ -67,12 +67,12 @@ export const useAutoRefresh = ({
},
);
- const pendingRuns = checkPendingRuns ? (dagRunData?.dag_runs ?? []).length
>= 1 : true;
+ const pendingRuns = !checkPendingRuns || (dagRunData?.dag_runs ?? []).length
>= 1;
- const paused = Boolean(dagId) ? dag?.is_paused : false;
+ const paused = Boolean(dagId) && dag?.is_paused;
const canRefresh = autoRefreshInterval !== undefined && !paused &&
pendingRuns;
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
- return (canRefresh ? autoRefreshInterval * 1000 : false) as number | false;
+ return (canRefresh && autoRefreshInterval * 1000) as number | false;
};
diff --git a/airflow-core/src/airflow/ui/src/utils/tab.ts
b/airflow-core/src/airflow/ui/src/utils/tab.ts
index b9a1f4eb5ac..d0f28d1aff4 100644
--- a/airflow-core/src/airflow/ui/src/utils/tab.ts
+++ b/airflow-core/src/airflow/ui/src/utils/tab.ts
@@ -50,9 +50,5 @@ export const getTabPath = (matches: Array<RouteMatch>,
entities: Array<TabEntity
return "";
}
- if (tabMatch.handle.tab === TabName.Overview) {
- return "";
- }
-
- return `/${tabMatch.handle.tab}`;
+ return tabMatch.handle.tab === TabName.Overview ? "" :
`/${tabMatch.handle.tab}`;
};
diff --git a/airflow-core/src/airflow/ui/tests/e2e/pages/ConnectionsPage.ts
b/airflow-core/src/airflow/ui/tests/e2e/pages/ConnectionsPage.ts
index b107c99da4d..80e0eb1d559 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/pages/ConnectionsPage.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/pages/ConnectionsPage.ts
@@ -123,11 +123,7 @@ export class ConnectionsPage extends BasePage {
public async connectionExists(connectionId: string): Promise<boolean> {
const emptyState = await this.emptyState.isVisible({ timeout: 1000
}).catch(() => false);
- if (emptyState) {
- return false;
- }
-
- return (await this.findConnectionRow(connectionId)) !== undefined;
+ return !emptyState && (await this.findConnectionRow(connectionId)) !==
undefined;
}
public async createConnection(details: ConnectionDetails): Promise<void> {
@@ -338,11 +334,9 @@ export class ConnectionsPage extends BasePage {
return false;
}
- if (searchTerm === "") {
- return ids.length > 0;
- }
-
- return ids.every((id) =>
id.toLowerCase().includes(searchTerm.toLowerCase()));
+ return searchTerm === ""
+ ? ids.length > 0
+ : ids.every((id) =>
id.toLowerCase().includes(searchTerm.toLowerCase()));
},
{ message: "Search results did not match search term", timeout: 30_000
},
)
@@ -365,11 +359,7 @@ export class ConnectionsPage extends BasePage {
private async findConnectionRow(connectionId: string): Promise<Locator |
undefined> {
const hasSearch = await this.searchInput.isVisible({ timeout: 500
}).catch(() => false);
- if (hasSearch) {
- return await this.findConnectionRowUsingSearch(connectionId);
- }
-
- return undefined;
+ return hasSearch ? await this.findConnectionRowUsingSearch(connectionId) :
undefined;
}
private async findConnectionRowUsingSearch(connectionId: string):
Promise<Locator | undefined> {
@@ -385,11 +375,7 @@ export class ConnectionsPage extends BasePage {
const rowExists = await row.isVisible({ timeout: 3000 }).catch(() =>
false);
- if (!rowExists) {
- return undefined;
- }
-
- return row;
+ return rowExists ? row : undefined;
}
private async waitForConnectionsListLoad(): Promise<void> {
diff --git a/airflow-core/src/airflow/ui/tests/e2e/pages/DagsPage.ts
b/airflow-core/src/airflow/ui/tests/e2e/pages/DagsPage.ts
index 11dc5b6a50d..510ab7ac3a6 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/pages/DagsPage.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/pages/DagsPage.ts
@@ -239,11 +239,9 @@ export class DagsPage extends BasePage {
const cardList = this.page.locator('[data-testid="card-list"]');
const isCardView = await cardList.isVisible();
- if (isCardView) {
- return this.page.locator('[data-testid="dag-id"]').count();
- }
-
- return this.page.getByTestId("table-list").locator(DATA_ROWS).count();
+ return isCardView
+ ? this.page.locator('[data-testid="dag-id"]').count()
+ : this.page.getByTestId("table-list").locator(DATA_ROWS).count();
}
public async getFilterOptions(filter: Locator): Promise<Array<string>> {
diff --git a/airflow-core/src/airflow/ui/tests/e2e/pages/EventsPage.ts
b/airflow-core/src/airflow/ui/tests/e2e/pages/EventsPage.ts
index 2d1bc1382b2..492966b0fb0 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/pages/EventsPage.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/pages/EventsPage.ts
@@ -81,11 +81,7 @@ export class EventsPage extends BasePage {
public async getEventLogRows(): Promise<Array<Locator>> {
const count = await this.tableRows.count();
- if (count === 0) {
- return [];
- }
-
- return this.tableRows.all();
+ return count === 0 ? [] : this.tableRows.all();
}
public async getEventTypes(): Promise<Array<string>> {
diff --git a/airflow-core/src/airflow/ui/tests/e2e/specs/dag-tasks.spec.ts
b/airflow-core/src/airflow/ui/tests/e2e/specs/dag-tasks.spec.ts
index 82b86da6e0d..d81a7997f51 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/specs/dag-tasks.spec.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/specs/dag-tasks.spec.ts
@@ -74,9 +74,7 @@ test.describe("Dag Tasks Tab", () => {
async () => {
const texts = await dagsPage.taskRows.allTextContents();
- if (texts.length === 0) return false;
-
- return texts.every((text) => text.includes(operator));
+ return texts.length > 0 && texts.every((text) =>
text.includes(operator));
},
{ timeout: 20_000 },
)
@@ -110,9 +108,7 @@ test.describe("Dag Tasks Tab", () => {
async () => {
const texts = await dagsPage.taskRows.allTextContents();
- if (texts.length === 0) return false;
-
- return texts.every((text) => text.includes(rule));
+ return texts.length > 0 && texts.every((text) =>
text.includes(rule));
},
{ timeout: 20_000 },
)
diff --git a/airflow-core/src/airflow/ui/tests/e2e/utils/shared.ts
b/airflow-core/src/airflow/ui/tests/e2e/utils/shared.ts
index 37c44aed131..7094733be88 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/utils/shared.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/utils/shared.ts
@@ -26,11 +26,7 @@ import { testConfig } from "playwright.config";
export type RequestLike = APIRequestContext | Page;
export function getRequestContext(source: RequestLike): APIRequestContext {
- if ("request" in source) {
- return source.request;
- }
-
- return source;
+ return "request" in source ? source.request : source;
}
export const { baseUrl } = testConfig.connection;