diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..435e8f91 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "build-tools"] + path = build-tools + url = https://github.com/RedHatInsights/insights-frontend-builder-common.git diff --git a/.tekton/koku-frontend-mfe-pull-request.yaml b/.tekton/koku-frontend-mfe-pull-request.yaml index 0d901985..9c95b32c 100644 --- a/.tekton/koku-frontend-mfe-pull-request.yaml +++ b/.tekton/koku-frontend-mfe-pull-request.yaml @@ -31,7 +31,7 @@ spec: - name: image-expires-after value: 5d - name: dockerfile - value: Dockerfile + value: build-tools/Dockerfile - name: path-context value: . pipelineSpec: @@ -45,7 +45,7 @@ spec: - name: name value: show-sbom - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-show-sbom:0.1@sha256:945a7c9066d3e0a95d3fddb7e8a6992e4d632a2a75d8f3a9bd2ff2fef0ec9aa0 + value: quay.io/konflux-ci/tekton-catalog/task-show-sbom:0.1@sha256:04f15cbce548e1db7770eee3f155ccb2cc0140a6c371dc67e9a34d83673ea0c0 - name: kind value: task resolver: bundles @@ -152,7 +152,7 @@ spec: - name: name value: init - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:4c6712db9419461b8c8a39523c012cb0dc061fb58563bb9170b3777d74f54659 + value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:2f59e9a3c20ce4509356389d327087213cc82c079b30811935837791da140f9f - name: kind value: task resolver: bundles @@ -169,7 +169,7 @@ spec: - name: name value: git-clone - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:d091a9e19567a4cbdc5acd57903c71ba71dc51d749a4ba7477e689608851e981 + value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:92cf275b60f7bd23472acc4bc6e9a4bc9a9cbd78a680a23087fa4df668b85a34 - name: kind value: task resolver: bundles @@ -194,7 +194,7 @@ spec: - name: name value: prefetch-dependencies - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.1@sha256:29bbe92528ed10c9f36f5565c2cca5837806fe7a0e2cde31b73098384ce69aae + value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.2@sha256:dfef566290e002e47f766ead3906922a26978a54b84727705a21dec64df7d9a3 - name: kind value: task resolver: bundles @@ -210,66 +210,6 @@ spec: workspace: git-auth - name: netrc workspace: netrc - - name: parse-build-deploy-script - params: - - name: path-context - value: $(params.path-context) - taskRef: - resolver: git - params: - - name: url - value: https://github.com/RedHatInsights/konflux-consoledot-frontend-build - - name: revision - value: a6838b71b88dc1e84f11764c9734e4880096585d # replace with the latest commit from https://github.com/RedHatInsights/konflux-consoledot-frontend-build/commits - - name: pathInRepo - value: tasks/parse-build-deploy-script/parse-build-deploy-script.yaml - workspaces: - - name: source - workspace: workspace - runAfter: - - clone-repository - - name: create-frontend-dockerfile - taskRef: - resolver: git - params: - - name: url - value: https://github.com/RedHatInsights/konflux-consoledot-frontend-build - - name: revision - value: c0ff4861d5aa77584f51576b65f2eb9e12e1ded8 - - name: pathInRepo - value: tasks/create-frontend-dockerfile/create-frontend-dockerfile.yaml - workspaces: - - name: source - workspace: workspace - params: - - name: path-context - value: $(params.path-context) - - name: component - value: $(tasks.parse-build-deploy-script.results.component) - - name: image - value: $(tasks.parse-build-deploy-script.results.image) - - name: node-build-version - value: $(tasks.parse-build-deploy-script.results.node-build-version) - - name: quay-expire-time - value: $(tasks.parse-build-deploy-script.results.quay-expire-time) - - name: npm-build-script - value: $(tasks.parse-build-deploy-script.results.npm-build-script) - - name: yarn-build-script - value: $(tasks.parse-build-deploy-script.results.yarn-build-script) - - name: route-path - value: $(tasks.parse-build-deploy-script.results.route-path) - - name: beta-route-path - value: $(tasks.parse-build-deploy-script.results.beta-route-path) - - name: preview-route-path - value: $(tasks.parse-build-deploy-script.results.preview-route-path) - - name: ci-root - value: $(tasks.parse-build-deploy-script.results.ci-root) - - name: server-name - value: $(tasks.parse-build-deploy-script.results.server-name) - - name: dist-folder - value: $(tasks.parse-build-deploy-script.results.dist-folder) - runAfter: - - parse-build-deploy-script - name: build-container params: - name: IMAGE @@ -293,13 +233,12 @@ spec: value: $(params.build-args-file) runAfter: - prefetch-dependencies - - create-frontend-dockerfile taskRef: params: - name: name value: buildah - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.3@sha256:4f662943e85e9d0b0c52a6be7718e9c77cd4f1072150a988b606d52f2469135a + value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.4@sha256:9ccddd19868ab459b0368af00ec823c82277b684928f18f3d18769a9f5353d12 - name: kind value: task resolver: bundles @@ -331,7 +270,7 @@ spec: - name: name value: build-image-index - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:be5e5d4ef43f14f6dc3f8da4df52b3e3b2529f9d64e706471b0317b5a07a9046 + value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:d34e4245b767c5b1b5edbbad9fc9cf8050cf19a69c8e55856479848405c596ec - name: kind value: task resolver: bundles @@ -351,7 +290,7 @@ spec: - name: name value: source-build - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.1@sha256:9d8f146d0474440165db38a3efdf55da73856de332ebf8d598197f92156ee44e + value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.2@sha256:2a01b61339c57cc3b27d8f54c271c32ba1db147a957230c6aa7f4f3c95bce6ee - name: kind value: task resolver: bundles @@ -367,6 +306,54 @@ spec: workspaces: - name: workspace workspace: workspace + - name: sast-shell-check + params: + - name: image-digest + value: $(tasks.build-image-index.results.IMAGE_DIGEST) + - name: image-url + value: $(tasks.build-image-index.results.IMAGE_URL) + runAfter: + - build-image-index + taskRef: + params: + - name: name + value: sast-shell-check + - name: bundle + value: quay.io/konflux-ci/tekton-catalog/task-sast-shell-check:0.1@sha256:77724eb55158ed966316e1d478f7e208dbf98202231d8ebf20e0f55ad92f667c + - name: kind + value: task + resolver: bundles + when: + - input: $(params.skip-checks) + operator: in + values: + - "false" + workspaces: + - name: workspace + workspace: workspace + - name: sast-unicode-check + params: + - name: image-url + value: $(tasks.build-image-index.results.IMAGE_URL) + runAfter: + - build-image-index + taskRef: + params: + - name: name + value: sast-unicode-check + - name: bundle + value: quay.io/konflux-ci/tekton-catalog/task-sast-unicode-check:0.1@sha256:b1a9af196a79baa75632ef494eb6db987f57e870d882d47f5b495e1441c01e3b + - name: kind + value: task + resolver: bundles + when: + - input: $(params.skip-checks) + operator: in + values: + - "false" + workspaces: + - name: workspace + workspace: workspace - name: deprecated-base-image-check params: - name: IMAGE_URL @@ -380,7 +367,7 @@ spec: - name: name value: deprecated-image-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:241f87f75a6e4303fbd64b32ba1715d76fe3805c48a6c21829e6a564bcc3a576 + value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.5@sha256:5d63b920b71192906fe4d6c4903f594e6f34c5edcff9d21714a08b5edcfbc667 - name: kind value: task resolver: bundles @@ -402,7 +389,7 @@ spec: - name: name value: clair-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:f636f2cbe91d9d4d9685a38c8bc680a36e17f568ec0e60a93da82d1284b488c5 + value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:03383b5a8674edef0ae184dd81f00386017624a5af255cb0b5803d7659483ba5 - name: kind value: task resolver: bundles @@ -422,7 +409,7 @@ spec: - name: name value: ecosystem-cert-preflight-checks - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks:0.1@sha256:df8a25a3431a70544172ed4844f9d0c6229d39130633960729f825a031a7dea9 + value: quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks:0.2@sha256:2ad615f9b8141ed2e0b060ebda366ce43cf55a9dd7c98e2d93970ff328dca8b2 - name: kind value: task resolver: bundles @@ -444,7 +431,7 @@ spec: - name: name value: sast-snyk-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.3@sha256:30cc34ccf6ca34e7f0951fd508fe4436d07388e7244baab77baf4ef9bdcefff4 + value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.3@sha256:aa63af0a12a82cff2ffe885f810b855f032926c622f7b03052f30a652a307a50 - name: kind value: task resolver: bundles @@ -469,7 +456,7 @@ spec: - name: name value: clamav-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.2@sha256:0db068e8a59612472a2483f5113893d0c5c9102e9ad7647d9a4789360e5bc2dc + value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.2@sha256:c30c12681b02eb4b83aeb4021d0e714a72db4d1d3bb14579652f4d1a763473ab - name: kind value: task resolver: bundles @@ -489,7 +476,7 @@ spec: - name: name value: apply-tags - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.1@sha256:fa7aa88ffe01eeeaa07c8720b27e50e27f6f136ef33595efaa16a0eb4598ea02 + value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.1@sha256:e1d365ce85d6448f6ebd0d0a000d0f45b694950b7545a2c34bfbcf992c80df61 - name: kind value: task resolver: bundles @@ -510,7 +497,7 @@ spec: - name: name value: push-dockerfile - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:389dc0f7bb175b9ca04e79ee67352fedd62fff8b1d196029534cd5638c73a0fc + value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:eb74e4acece2b14f6995119320f0dccdcc0767f44bd3b317be56f2d29d118a90 - name: kind value: task resolver: bundles @@ -530,7 +517,7 @@ spec: - name: name value: rpms-signature-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:3bf6d1bcd57af1095b06b4c489f965551364b1f1f72a807de9cab3c23142dca5 + value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:d00d159c370e3c99447516970c316ef57dfd27c29e0ce3cff50727c9c40936d8 - name: kind value: task resolver: bundles diff --git a/.tekton/koku-frontend-mfe-push.yaml b/.tekton/koku-frontend-mfe-push.yaml index ea0b8c43..ff681c21 100644 --- a/.tekton/koku-frontend-mfe-push.yaml +++ b/.tekton/koku-frontend-mfe-push.yaml @@ -28,7 +28,7 @@ spec: - name: output-image value: quay.io/redhat-user-workloads/cost-mgmt-dev-tenant/koku-frontend-mfe:{{revision}} - name: dockerfile - value: Dockerfile + value: build-tools/Dockerfile - name: path-context value: . pipelineSpec: @@ -42,7 +42,7 @@ spec: - name: name value: show-sbom - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-show-sbom:0.1@sha256:945a7c9066d3e0a95d3fddb7e8a6992e4d632a2a75d8f3a9bd2ff2fef0ec9aa0 + value: quay.io/konflux-ci/tekton-catalog/task-show-sbom:0.1@sha256:04f15cbce548e1db7770eee3f155ccb2cc0140a6c371dc67e9a34d83673ea0c0 - name: kind value: task resolver: bundles @@ -149,7 +149,7 @@ spec: - name: name value: init - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:4c6712db9419461b8c8a39523c012cb0dc061fb58563bb9170b3777d74f54659 + value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:2f59e9a3c20ce4509356389d327087213cc82c079b30811935837791da140f9f - name: kind value: task resolver: bundles @@ -166,7 +166,7 @@ spec: - name: name value: git-clone - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:d091a9e19567a4cbdc5acd57903c71ba71dc51d749a4ba7477e689608851e981 + value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:92cf275b60f7bd23472acc4bc6e9a4bc9a9cbd78a680a23087fa4df668b85a34 - name: kind value: task resolver: bundles @@ -191,7 +191,7 @@ spec: - name: name value: prefetch-dependencies - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.1@sha256:29bbe92528ed10c9f36f5565c2cca5837806fe7a0e2cde31b73098384ce69aae + value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.2@sha256:dfef566290e002e47f766ead3906922a26978a54b84727705a21dec64df7d9a3 - name: kind value: task resolver: bundles @@ -207,66 +207,6 @@ spec: workspace: git-auth - name: netrc workspace: netrc - - name: parse-build-deploy-script - params: - - name: path-context - value: $(params.path-context) - taskRef: - resolver: git - params: - - name: url - value: https://github.com/RedHatInsights/konflux-consoledot-frontend-build - - name: revision - value: a6838b71b88dc1e84f11764c9734e4880096585d # replace with the latest commit from https://github.com/RedHatInsights/konflux-consoledot-frontend-build/commits - - name: pathInRepo - value: tasks/parse-build-deploy-script/parse-build-deploy-script.yaml - workspaces: - - name: source - workspace: workspace - runAfter: - - clone-repository - - name: create-frontend-dockerfile - taskRef: - resolver: git - params: - - name: url - value: https://github.com/RedHatInsights/konflux-consoledot-frontend-build - - name: revision - value: c0ff4861d5aa77584f51576b65f2eb9e12e1ded8 - - name: pathInRepo - value: tasks/create-frontend-dockerfile/create-frontend-dockerfile.yaml - workspaces: - - name: source - workspace: workspace - params: - - name: path-context - value: $(params.path-context) - - name: component - value: $(tasks.parse-build-deploy-script.results.component) - - name: image - value: $(tasks.parse-build-deploy-script.results.image) - - name: node-build-version - value: $(tasks.parse-build-deploy-script.results.node-build-version) - - name: quay-expire-time - value: $(tasks.parse-build-deploy-script.results.quay-expire-time) - - name: npm-build-script - value: $(tasks.parse-build-deploy-script.results.npm-build-script) - - name: yarn-build-script - value: $(tasks.parse-build-deploy-script.results.yarn-build-script) - - name: route-path - value: $(tasks.parse-build-deploy-script.results.route-path) - - name: beta-route-path - value: $(tasks.parse-build-deploy-script.results.beta-route-path) - - name: preview-route-path - value: $(tasks.parse-build-deploy-script.results.preview-route-path) - - name: ci-root - value: $(tasks.parse-build-deploy-script.results.ci-root) - - name: server-name - value: $(tasks.parse-build-deploy-script.results.server-name) - - name: dist-folder - value: $(tasks.parse-build-deploy-script.results.dist-folder) - runAfter: - - parse-build-deploy-script - name: build-container params: - name: IMAGE @@ -290,13 +230,12 @@ spec: value: $(params.build-args-file) runAfter: - prefetch-dependencies - - create-frontend-dockerfile taskRef: params: - name: name value: buildah - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.3@sha256:4f662943e85e9d0b0c52a6be7718e9c77cd4f1072150a988b606d52f2469135a + value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.4@sha256:9ccddd19868ab459b0368af00ec823c82277b684928f18f3d18769a9f5353d12 - name: kind value: task resolver: bundles @@ -328,7 +267,7 @@ spec: - name: name value: build-image-index - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:be5e5d4ef43f14f6dc3f8da4df52b3e3b2529f9d64e706471b0317b5a07a9046 + value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:d34e4245b767c5b1b5edbbad9fc9cf8050cf19a69c8e55856479848405c596ec - name: kind value: task resolver: bundles @@ -348,7 +287,7 @@ spec: - name: name value: source-build - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.1@sha256:9d8f146d0474440165db38a3efdf55da73856de332ebf8d598197f92156ee44e + value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.2@sha256:2a01b61339c57cc3b27d8f54c271c32ba1db147a957230c6aa7f4f3c95bce6ee - name: kind value: task resolver: bundles @@ -364,6 +303,54 @@ spec: workspaces: - name: workspace workspace: workspace + - name: sast-shell-check + params: + - name: image-digest + value: $(tasks.build-image-index.results.IMAGE_DIGEST) + - name: image-url + value: $(tasks.build-image-index.results.IMAGE_URL) + runAfter: + - build-image-index + taskRef: + params: + - name: name + value: sast-shell-check + - name: bundle + value: quay.io/konflux-ci/tekton-catalog/task-sast-shell-check:0.1@sha256:77724eb55158ed966316e1d478f7e208dbf98202231d8ebf20e0f55ad92f667c + - name: kind + value: task + resolver: bundles + when: + - input: $(params.skip-checks) + operator: in + values: + - "false" + workspaces: + - name: workspace + workspace: workspace + - name: sast-unicode-check + params: + - name: image-url + value: $(tasks.build-image-index.results.IMAGE_URL) + runAfter: + - build-image-index + taskRef: + params: + - name: name + value: sast-unicode-check + - name: bundle + value: quay.io/konflux-ci/tekton-catalog/task-sast-unicode-check:0.1@sha256:b1a9af196a79baa75632ef494eb6db987f57e870d882d47f5b495e1441c01e3b + - name: kind + value: task + resolver: bundles + when: + - input: $(params.skip-checks) + operator: in + values: + - "false" + workspaces: + - name: workspace + workspace: workspace - name: deprecated-base-image-check params: - name: IMAGE_URL @@ -377,7 +364,7 @@ spec: - name: name value: deprecated-image-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:241f87f75a6e4303fbd64b32ba1715d76fe3805c48a6c21829e6a564bcc3a576 + value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.5@sha256:5d63b920b71192906fe4d6c4903f594e6f34c5edcff9d21714a08b5edcfbc667 - name: kind value: task resolver: bundles @@ -399,7 +386,7 @@ spec: - name: name value: clair-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:f636f2cbe91d9d4d9685a38c8bc680a36e17f568ec0e60a93da82d1284b488c5 + value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:03383b5a8674edef0ae184dd81f00386017624a5af255cb0b5803d7659483ba5 - name: kind value: task resolver: bundles @@ -419,7 +406,7 @@ spec: - name: name value: ecosystem-cert-preflight-checks - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks:0.1@sha256:df8a25a3431a70544172ed4844f9d0c6229d39130633960729f825a031a7dea9 + value: quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks:0.2@sha256:2ad615f9b8141ed2e0b060ebda366ce43cf55a9dd7c98e2d93970ff328dca8b2 - name: kind value: task resolver: bundles @@ -441,7 +428,7 @@ spec: - name: name value: sast-snyk-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.3@sha256:30cc34ccf6ca34e7f0951fd508fe4436d07388e7244baab77baf4ef9bdcefff4 + value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.3@sha256:aa63af0a12a82cff2ffe885f810b855f032926c622f7b03052f30a652a307a50 - name: kind value: task resolver: bundles @@ -466,7 +453,7 @@ spec: - name: name value: clamav-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.2@sha256:0db068e8a59612472a2483f5113893d0c5c9102e9ad7647d9a4789360e5bc2dc + value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.2@sha256:c30c12681b02eb4b83aeb4021d0e714a72db4d1d3bb14579652f4d1a763473ab - name: kind value: task resolver: bundles @@ -486,7 +473,7 @@ spec: - name: name value: apply-tags - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.1@sha256:fa7aa88ffe01eeeaa07c8720b27e50e27f6f136ef33595efaa16a0eb4598ea02 + value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.1@sha256:e1d365ce85d6448f6ebd0d0a000d0f45b694950b7545a2c34bfbcf992c80df61 - name: kind value: task resolver: bundles @@ -507,7 +494,7 @@ spec: - name: name value: push-dockerfile - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:389dc0f7bb175b9ca04e79ee67352fedd62fff8b1d196029534cd5638c73a0fc + value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:eb74e4acece2b14f6995119320f0dccdcc0767f44bd3b317be56f2d29d118a90 - name: kind value: task resolver: bundles @@ -527,7 +514,7 @@ spec: - name: name value: rpms-signature-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:3bf6d1bcd57af1095b06b4c489f965551364b1f1f72a807de9cab3c23142dca5 + value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:d00d159c370e3c99447516970c316ef57dfd27c29e0ce3cff50727c9c40936d8 - name: kind value: task resolver: bundles diff --git a/build-tools b/build-tools new file mode 160000 index 00000000..3fad2bd4 --- /dev/null +++ b/build-tools @@ -0,0 +1 @@ +Subproject commit 3fad2bd4c68059879453623e3e4a5339b0f51628 diff --git a/package-lock.json b/package-lock.json index 34cbfc2e..3652941f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,27 +10,27 @@ "hasInstallScript": true, "license": "GNU AGPLv3", "dependencies": { - "@patternfly/patternfly": "5.4.2", - "@patternfly/react-charts": "7.4.8", - "@patternfly/react-component-groups": "5.5.5", - "@patternfly/react-core": "5.4.12", - "@patternfly/react-icons": "5.4.2", - "@patternfly/react-table": "5.4.13", - "@patternfly/react-tokens": "5.4.1", - "@redhat-cloud-services/frontend-components": "^5.2.3", - "@redhat-cloud-services/frontend-components-notifications": "^4.1.14", - "@redhat-cloud-services/frontend-components-translations": "^3.2.18", - "@redhat-cloud-services/frontend-components-utilities": "^5.0.10", - "@reduxjs/toolkit": "^2.5.1", - "@unleash/proxy-client-react": "^4.5.1", - "axios": "^1.7.9", + "@patternfly/patternfly": "6.2.0-prerelease.26", + "@patternfly/react-charts": "8.2.0-prerelease.26", + "@patternfly/react-component-groups": "6.2.0-prerelease.7", + "@patternfly/react-core": "6.2.0-prerelease.34", + "@patternfly/react-icons": "6.2.0-prerelease.12", + "@patternfly/react-table": "6.2.0-prerelease.35", + "@patternfly/react-tokens": "6.2.0-prerelease.11", + "@redhat-cloud-services/frontend-components": "^6.0.2", + "@redhat-cloud-services/frontend-components-notifications": "^5.0.2", + "@redhat-cloud-services/frontend-components-translations": "^4.0.1", + "@redhat-cloud-services/frontend-components-utilities": "^6.0.2", + "@reduxjs/toolkit": "^2.6.1", + "@unleash/proxy-client-react": "^5.0.0", + "axios": "^1.8.4", "date-fns": "^4.1.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", "qs": "^6.14.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-intl": "^7.1.5", + "react-intl": "^7.1.9", "react-redux": "^9.2.0", "react-router-dom": "^6.28.0", "redux": "^5.0.1", @@ -40,17 +40,17 @@ "yaml": "^2.7.0" }, "devDependencies": { - "@eslint/compat": "^1.2.6", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "^9.19.0", - "@formatjs/cli": "^6.5.1", - "@formatjs/ecma402-abstract": "^2.3.2", - "@formatjs/fast-memoize": "^2.2.6", - "@formatjs/icu-messageformat-parser": "^2.11.0", - "@formatjs/intl-localematcher": "^0.5.10", - "@redhat-cloud-services/frontend-components-config": "^6.4.5", + "@eslint/compat": "^1.2.7", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.23.0", + "@formatjs/cli": "^6.6.2", + "@formatjs/ecma402-abstract": "^2.3.4", + "@formatjs/fast-memoize": "^2.2.7", + "@formatjs/icu-messageformat-parser": "^2.11.2", + "@formatjs/intl-localematcher": "^0.6.1", + "@redhat-cloud-services/frontend-components-config": "^6.4.8", "@redhat-cloud-services/tsc-transform-imports": "^1.0.23", - "@swc/core": "^1.10.12", + "@swc/core": "^1.11.13", "@swc/jest": "^0.2.37", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", @@ -61,22 +61,22 @@ "@types/react-dom": "^18.3.5", "@types/react-redux": "^7.1.34", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^8.23.0", - "@typescript-eslint/parser": "^8.23.0", - "copy-webpack-plugin": "^12.0.2", - "eslint": "^9.19.0", - "eslint-plugin-formatjs": "^5.2.13", + "@typescript-eslint/eslint-plugin": "^8.27.0", + "@typescript-eslint/parser": "^8.27.0", + "copy-webpack-plugin": "^13.0.0", + "eslint": "^9.23.0", + "eslint-plugin-formatjs": "^5.3.0", "eslint-plugin-jest-dom": "^5.5.0", - "eslint-plugin-jsdoc": "^50.6.3", + "eslint-plugin-jsdoc": "^50.6.9", "eslint-plugin-markdown": "^5.1.0", - "eslint-plugin-prettier": "^5.2.3", + "eslint-plugin-prettier": "^5.2.4", "eslint-plugin-react": "^7.37.4", - "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-sort-keys-fix": "^1.1.2", "eslint-plugin-testing-library": "^7.1.1", "git-revision-webpack-plugin": "^5.0.0", - "globals": "^15.14.0", + "globals": "^16.0.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -84,12 +84,12 @@ "jest-transform-stub": "^2.0.0", "jws": "^4.0.0", "npm-run-all": "^4.1.5", - "prettier": "^3.4.2", + "prettier": "^3.5.3", "rimraf": "^6.0.1", "swc_mut_cjs_exports": "^8.0.1", - "ts-jest": "^29.2.5", + "ts-jest": "^29.3.0", "ts-patch": "^3.3.0", - "typescript": "^5.7.3" + "typescript": "^5.8.2" }, "engines": { "node": ">=20.15.0", @@ -715,9 +715,9 @@ } }, "node_modules/@eslint/compat": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.6.tgz", - "integrity": "sha512-k7HNCqApoDHM6XzT30zGoETj+D+uUcZUb+IVAJmar3u6bvHf7hhHJcWx09QHj4/a2qrKZMWU0E16tvkiAdv06Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.7.tgz", + "integrity": "sha512-xvv7hJE32yhegJ8xNAnb62ggiAwTYHBpUCWhRxEj/ksvgDJuSXfoDkBcRYaYNFiJ+jH0IE3K16hd+xXzhBgNbg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -733,13 +733,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", - "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.5", + "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -747,10 +747,20 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz", + "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/core": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", - "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -761,9 +771,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "dev": true, "license": "MIT", "dependencies": { @@ -798,9 +808,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.19.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", - "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", + "version": "9.23.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz", + "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==", "dev": true, "license": "MIT", "engines": { @@ -808,9 +818,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", - "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -818,13 +828,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", - "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.10.0", + "@eslint/core": "^0.12.0", "levn": "^0.4.1" }, "engines": { @@ -832,9 +842,9 @@ } }, "node_modules/@formatjs/cli": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.5.1.tgz", - "integrity": "sha512-JptxQysoKiVZkGfd1u9GTlt88IQ1NUCUpxWI7Obkr7cZAupIBT5QbyL1NPq3UAyTgXODQ+09IUwZhJwVExW41g==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.6.2.tgz", + "integrity": "sha512-i4eAgnhvQCTTAYE/CVcXDwe2ZwM5U7SXo3Dt+XdpGq6agBJVgPm6qigZBB3M3NFHI7rKX0vpmFOu7zfHWafKlg==", "dev": true, "license": "MIT", "bin": { @@ -845,13 +855,13 @@ }, "peerDependencies": { "@glimmer/env": "^0.1.7", - "@glimmer/reference": "^0.91.1 || ^0.92.0 || ^0.93.0", - "@glimmer/syntax": "^0.92.0 || ^0.93.0", - "@glimmer/validator": "^0.92.0 || ^0.93.0", - "@vue/compiler-core": "^3.4.0", - "content-tag": "^2.0.1 || ^3.0.0", - "ember-template-recast": "^6.1.4", - "vue": "^3.4.0" + "@glimmer/reference": "^0.94.0", + "@glimmer/syntax": "^0.94.9", + "@glimmer/validator": "^0.94.0", + "@vue/compiler-core": "^3.5.12", + "content-tag": "^3.0.0", + "ember-template-recast": "^6.1.5", + "vue": "^3.5.12" }, "peerDependenciesMeta": { "@glimmer/env": { @@ -881,61 +891,61 @@ } }, "node_modules/@formatjs/ecma402-abstract": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.2.tgz", - "integrity": "sha512-6sE5nyvDloULiyOMbOTJEEgWL32w+VHkZQs8S02Lnn8Y/O5aQhjOEXwWzvR7SsBE/exxlSpY2EsWZgqHbtLatg==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.4.tgz", + "integrity": "sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==", "license": "MIT", "dependencies": { - "@formatjs/fast-memoize": "2.2.6", - "@formatjs/intl-localematcher": "0.5.10", - "decimal.js": "10", - "tslib": "2" + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/intl-localematcher": "0.6.1", + "decimal.js": "^10.4.3", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/fast-memoize": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.6.tgz", - "integrity": "sha512-luIXeE2LJbQnnzotY1f2U2m7xuQNj2DA8Vq4ce1BY9ebRZaoPB1+8eZ6nXpLzsxuW5spQxr7LdCg+CApZwkqkw==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", "license": "MIT", "dependencies": { - "tslib": "2" + "tslib": "^2.8.0" } }, "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.0.tgz", - "integrity": "sha512-Hp81uTjjdTk3FLh/dggU5NK7EIsVWc5/ZDWrIldmf2rBuPejuZ13CZ/wpVE2SToyi4EiroPTQ1XJcJuZFIxTtw==", + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.2.tgz", + "integrity": "sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==", "license": "MIT", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.2", - "@formatjs/icu-skeleton-parser": "1.8.12", - "tslib": "2" + "@formatjs/ecma402-abstract": "2.3.4", + "@formatjs/icu-skeleton-parser": "1.8.14", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.12", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.12.tgz", - "integrity": "sha512-QRAY2jC1BomFQHYDMcZtClqHR55EEnB96V7Xbk/UiBodsuFc5kujybzt87+qj1KqmJozFhk6n4KiT1HKwAkcfg==", + "version": "1.8.14", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.14.tgz", + "integrity": "sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==", "license": "MIT", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.2", - "tslib": "2" + "@formatjs/ecma402-abstract": "2.3.4", + "tslib": "^2.8.0" } }, "node_modules/@formatjs/intl": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-3.1.3.tgz", - "integrity": "sha512-yWtB1L4vOr17MLII3bcNRmjx6qBkSupJuA6nJz1zVxpWbJXKQL5vgvjRCehTO3z7HolxFjtLdfV0/RN+bC34Fg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-3.1.5.tgz", + "integrity": "sha512-cCTrhTqXGbacet55cKrRlT6lhhDqCBJCqoyngksWNqKzr832jDqrMLjf2tihJArx6TNhPdCJOVgyDw93DhfFhA==", "license": "MIT", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.2", - "@formatjs/fast-memoize": "2.2.6", - "@formatjs/icu-messageformat-parser": "2.11.0", - "intl-messageformat": "10.7.14", - "tslib": "2" + "@formatjs/ecma402-abstract": "2.3.4", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.2", + "intl-messageformat": "10.7.16", + "tslib": "^2.8.0" }, "peerDependencies": { - "typescript": "5" + "typescript": "5.8.2" }, "peerDependenciesMeta": { "typescript": { @@ -944,31 +954,31 @@ } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz", - "integrity": "sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.1.tgz", + "integrity": "sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==", "license": "MIT", "dependencies": { - "tslib": "2" + "tslib": "^2.8.0" } }, "node_modules/@formatjs/ts-transformer": { - "version": "3.13.31", - "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.13.31.tgz", - "integrity": "sha512-DrPadj1CarzCzCzSmqHgtmH+VGswlg0A6ZYWU40XCqxu96yUl6xOFqdrk7Lb3actFKfC7zD283Ax8RS3FcVDEw==", + "version": "3.13.33", + "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.13.33.tgz", + "integrity": "sha512-J52P8685QW5THfR9baUuaxcvFiROEjUVF0Y3SheeVPp/gevoYcN8DywizK00ELd37S4Egg/Ym+nk5gF5TKZTxA==", "dev": true, "license": "MIT", "dependencies": { - "@formatjs/icu-messageformat-parser": "2.11.0", - "@types/json-stable-stringify": "1", - "@types/node": "14 || 16 || 17 || 18 || 20 || 22", - "chalk": "4", - "json-stable-stringify": "1", - "tslib": "2", - "typescript": "5" + "@formatjs/icu-messageformat-parser": "2.11.2", + "@types/json-stable-stringify": "^1.1.0", + "@types/node": "^22.0.0", + "chalk": "^4.1.2", + "json-stable-stringify": "^1.1.1", + "tslib": "^2.8.0", + "typescript": "5.8.2" }, "peerDependencies": { - "ts-jest": "27 || 28 || 29" + "ts-jest": "^29" }, "peerDependenciesMeta": { "ts-jest": { @@ -1046,9 +1056,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2179,54 +2189,111 @@ } }, "node_modules/@patternfly/patternfly": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-5.4.2.tgz", - "integrity": "sha512-+BaokNR8/AmTYMESxby9UtQXPGACg449BXQd0KejAvW/uGxlgO6mY1X1205DeBEHoK3e/vXkYXjvZPpv/tcxSA==", + "version": "6.2.0-prerelease.26", + "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-6.2.0-prerelease.26.tgz", + "integrity": "sha512-pfcdKL1F2Lya4uWgGa7zmUu0wzny6iD8nKtX5wndyvxUZh8SoaQQIDf+EEw2PquzODsafb8N+VaOkjrRCAFBIQ==", "license": "MIT" }, "node_modules/@patternfly/react-charts": { - "version": "7.4.8", - "resolved": "https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-7.4.8.tgz", - "integrity": "sha512-Rv2ajbb7kmwcrZIolcaH8RzIMx3+6ldtJlKQoChmNggXGgKFtg3/QBlc9Qj+14LW0LSQ12ZprmRvHZ/Viyq+Qw==", + "version": "8.2.0-prerelease.26", + "resolved": "https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-8.2.0-prerelease.26.tgz", + "integrity": "sha512-jpOFD/wYMPOL3xMcTQa1XHONWmcH0/Rw5nD1tHt4CrCqNARQgZjz4mJ2MUhSE+bDBwK0YLg38XngdCLzlFSWGw==", "license": "MIT", "dependencies": { - "@patternfly/react-styles": "^5.4.1", - "@patternfly/react-tokens": "^5.4.1", + "@patternfly/react-styles": "^6.2.0-prerelease.11", + "@patternfly/react-tokens": "^6.2.0-prerelease.11", "hoist-non-react-statics": "^3.3.2", "lodash": "^4.17.21", - "tslib": "^2.7.0", - "victory-area": "^37.3.4", - "victory-axis": "^37.3.4", - "victory-bar": "^37.3.4", - "victory-box-plot": "^37.3.4", - "victory-chart": "^37.3.4", - "victory-core": "^37.3.4", - "victory-create-container": "^37.3.4", - "victory-cursor-container": "^37.3.4", - "victory-group": "^37.3.4", - "victory-legend": "^37.3.4", - "victory-line": "^37.3.4", - "victory-pie": "^37.3.4", - "victory-scatter": "^37.3.4", - "victory-stack": "^37.3.4", - "victory-tooltip": "^37.3.4", - "victory-voronoi-container": "^37.3.4", - "victory-zoom-container": "^37.3.4" + "tslib": "^2.8.1" }, "peerDependencies": { + "echarts": "^5.6.0", "react": "^17 || ^18", - "react-dom": "^17 || ^18" + "react-dom": "^17 || ^18", + "victory-area": "^37.3.6", + "victory-axis": "^37.3.6", + "victory-bar": "^37.3.6", + "victory-box-plot": "^37.3.6", + "victory-chart": "^37.3.6", + "victory-core": "^37.3.6", + "victory-create-container": "^37.3.6", + "victory-cursor-container": "^37.3.6", + "victory-group": "^37.3.6", + "victory-legend": "^37.3.6", + "victory-line": "^37.3.6", + "victory-pie": "^37.3.6", + "victory-scatter": "^37.3.6", + "victory-stack": "^37.3.6", + "victory-tooltip": "^37.3.6", + "victory-voronoi-container": "^37.3.6", + "victory-zoom-container": "^37.3.6" + }, + "peerDependenciesMeta": { + "echarts": { + "optional": true + }, + "victory-area": { + "optional": true + }, + "victory-axis": { + "optional": true + }, + "victory-bar": { + "optional": true + }, + "victory-box-plot": { + "optional": true + }, + "victory-chart": { + "optional": true + }, + "victory-core": { + "optional": true + }, + "victory-create-container": { + "optional": true + }, + "victory-cursor-container": { + "optional": true + }, + "victory-group": { + "optional": true + }, + "victory-legend": { + "optional": true + }, + "victory-line": { + "optional": true + }, + "victory-pie": { + "optional": true + }, + "victory-scatter": { + "optional": true + }, + "victory-stack": { + "optional": true + }, + "victory-tooltip": { + "optional": true + }, + "victory-voronoi-container": { + "optional": true + }, + "victory-zoom-container": { + "optional": true + } } }, "node_modules/@patternfly/react-component-groups": { - "version": "5.5.5", - "resolved": "https://registry.npmjs.org/@patternfly/react-component-groups/-/react-component-groups-5.5.5.tgz", - "integrity": "sha512-Cgp1XxyBWnEDKAQsP+B7A4wlz6Bcp0bjwSMamdOiCR4GALtpBXXGrv6daAomoVCkL9l3zibcAfm/o9d9XBE9Ag==", + "version": "6.2.0-prerelease.7", + "resolved": "https://registry.npmjs.org/@patternfly/react-component-groups/-/react-component-groups-6.2.0-prerelease.7.tgz", + "integrity": "sha512-AeTe47T5+3W1OlpbZp3grG7o4E/N5zL+Glky9pAzmnqQYWq3/EwswA/4lH4aM/J6ATb9C3BZ43n8xMJm0Fp7iA==", "license": "MIT", "dependencies": { - "@patternfly/react-core": "^5.4.1", - "@patternfly/react-icons": "^5.4.0", - "@patternfly/react-table": "^5.4.1", + "@patternfly/react-core": "^6.0.0", + "@patternfly/react-icons": "^6.0.0", + "@patternfly/react-table": "^6.0.0", "clsx": "^2.1.1", "react-jss": "^10.10.0" }, @@ -2236,17 +2303,17 @@ } }, "node_modules/@patternfly/react-core": { - "version": "5.4.12", - "resolved": "https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.4.12.tgz", - "integrity": "sha512-RI1xS1JGJdE/FvpkMzawaE21oeTc/e+WbxvFXqZfLhTz60P8RzVG1nYWXDL747Onkz3SYtY79PhQ8nsLeO5sJQ==", + "version": "6.2.0-prerelease.34", + "resolved": "https://registry.npmjs.org/@patternfly/react-core/-/react-core-6.2.0-prerelease.34.tgz", + "integrity": "sha512-JfsV54oBfrEt2C07VxnBY/Tf2NNQNB6Siy4WY5is2LLt8Kwe6YHb9G6c/gx6pQJmvLCjcB9CrXHSHjCovYTh5g==", "license": "MIT", "dependencies": { - "@patternfly/react-icons": "^5.4.2", - "@patternfly/react-styles": "^5.4.1", - "@patternfly/react-tokens": "^5.4.1", - "focus-trap": "7.6.2", - "react-dropzone": "^14.2.3", - "tslib": "^2.7.0" + "@patternfly/react-icons": "^6.2.0-prerelease.12", + "@patternfly/react-styles": "^6.2.0-prerelease.11", + "@patternfly/react-tokens": "^6.2.0-prerelease.11", + "focus-trap": "7.6.4", + "react-dropzone": "^14.3.5", + "tslib": "^2.8.1" }, "peerDependencies": { "react": "^17 || ^18", @@ -2254,9 +2321,9 @@ } }, "node_modules/@patternfly/react-icons": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.4.2.tgz", - "integrity": "sha512-CMQ5oHYzW6TPVTs2jpNJmP2vGCAKR/YeTPwHGO9dLkAUej1IcIxtCCWK2Fdo2UJsnBjuZihasyw2b6ehvbUm9Q==", + "version": "6.2.0-prerelease.12", + "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-6.2.0-prerelease.12.tgz", + "integrity": "sha512-L1bHrugPbQj6FrNZANbKvV1sYoEcIFo/IJmgRXFc8WW4pIm21IZRknLcefgjeVySQKJ98IQGjQ/557SWXqEDpg==", "license": "MIT", "peerDependencies": { "react": "^17 || ^18", @@ -2264,23 +2331,23 @@ } }, "node_modules/@patternfly/react-styles": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.4.1.tgz", - "integrity": "sha512-XA8PXksD8uiA3RTwxdUwJXOCf+V6sVd+2HKapWAdRLvtSV+Sdk7NgCvalb4IAQncsddLopjPQD8gAHA298+N8w==", + "version": "6.2.0-prerelease.11", + "resolved": "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-6.2.0-prerelease.11.tgz", + "integrity": "sha512-DOIk+nwpStcUEmbDD//cPz2C1Gy8An8zaH9G69URgZy17TGneMSc3xsMzpmOFAgWtEXL/urljGGjIPm6ZmsPMQ==", "license": "MIT" }, "node_modules/@patternfly/react-table": { - "version": "5.4.13", - "resolved": "https://registry.npmjs.org/@patternfly/react-table/-/react-table-5.4.13.tgz", - "integrity": "sha512-cYw+pgpZXKGg3dZxudteUURqmj5O0ec7aNE80NLqFTcnI0MAOnfrFzCNApXJErn+MjD0VolMcC+H48eaRkT8TA==", + "version": "6.2.0-prerelease.35", + "resolved": "https://registry.npmjs.org/@patternfly/react-table/-/react-table-6.2.0-prerelease.35.tgz", + "integrity": "sha512-i8iIsgMXDIiqVQ9CuBk0dB9jUnU5VTxuMXlbwJzqH3MhfvjxMvahfpEHSaTL8Nv3oq/k9ULhZbJstXbewrRMag==", "license": "MIT", "dependencies": { - "@patternfly/react-core": "^5.4.12", - "@patternfly/react-icons": "^5.4.2", - "@patternfly/react-styles": "^5.4.1", - "@patternfly/react-tokens": "^5.4.1", + "@patternfly/react-core": "^6.2.0-prerelease.34", + "@patternfly/react-icons": "^6.2.0-prerelease.12", + "@patternfly/react-styles": "^6.2.0-prerelease.11", + "@patternfly/react-tokens": "^6.2.0-prerelease.11", "lodash": "^4.17.21", - "tslib": "^2.7.0" + "tslib": "^2.8.1" }, "peerDependencies": { "react": "^17 || ^18", @@ -2288,9 +2355,9 @@ } }, "node_modules/@patternfly/react-tokens": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.4.1.tgz", - "integrity": "sha512-eygdHE7Krta1mijAv/E8RHiKIgysD0eeNTo8EXUYC8/M4e5K6sqpr2p6rQBF8QiRMN8FnbXvZT3K2OQ28pYt9Q==", + "version": "6.2.0-prerelease.11", + "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-6.2.0-prerelease.11.tgz", + "integrity": "sha512-1JobJw5+ppWMJgi68Z+D0vAto2ACz8w87QPNvhsOs0I5lWIFr9DI/6e/i/3sXVDMeEbmnYnldK+/a9o+f1qo4g==", "license": "MIT" }, "node_modules/@pkgjs/parseargs": { @@ -2367,41 +2434,42 @@ } }, "node_modules/@redhat-cloud-services/frontend-components": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-5.2.3.tgz", - "integrity": "sha512-CN1cclfZU9B2mXwLAtqJDsvXpEcQQV2jYBcGg+OZBPBiX0qJ+dpWqF44zMapRMx5xOhc3olc4YML1a52D2OFYw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-6.0.2.tgz", + "integrity": "sha512-T/ULBO6QkfJ354O2GDgbZTof5RzxV4SHbwVAgKlVOUNcKKkPdHKPzIbfwi4TWM8/AB+gU+EqjofE3w3UPdbhkg==", "license": "Apache-2.0", "dependencies": { - "@patternfly/react-component-groups": "^5.5.5", - "@redhat-cloud-services/frontend-components-utilities": "^5.0.4", - "@redhat-cloud-services/types": "^1.0.19", + "@patternfly/react-component-groups": "^6.0.0", + "@redhat-cloud-services/frontend-components-utilities": "^6.0.0", + "@redhat-cloud-services/types": "^2.0.0", "@scalprum/core": "^0.8.1", "@scalprum/react-core": "^0.9.1", "classnames": "^2.2.5", "sanitize-html": "^2.13.1" }, "peerDependencies": { - "@patternfly/react-core": "^5.4.11", - "@patternfly/react-icons": "^5.4.2", - "@patternfly/react-table": "^5.4.12", + "@patternfly/react-core": "^6.0.0", + "@patternfly/react-icons": "^6.0.0", + "@patternfly/react-table": "^6.0.0", + "@patternfly/react-tokens": "^6.0.0", "lodash": "^4.17.15", "prop-types": "^15.6.2", "react": "^18.2.0", "react-content-loader": "^6.2.0", "react-dom": "^18.2.0", - "react-redux": "^7.0.0", + "react-redux": "^7.0.0 || ^8.0.0 || ^9.0.0", "react-router-dom": "^5.0.0 || ^6.0.0" } }, "node_modules/@redhat-cloud-services/frontend-components-config": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.4.5.tgz", - "integrity": "sha512-soNkbbCij8J9Vw44S3vREt2Gt6PFQ4nHE9iLI+BzaCt7Psab1zSq/G7iDgXntVhLr6X2JtfPRZl8xZjuYJs5tA==", + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.4.8.tgz", + "integrity": "sha512-/qaCh4agr27ffO9DzKuHzKPFIPFUGwrwZ+2vRoygzn3gHZlAHbdkVkkmjwlXsUKPSuZkVY0gCyAdRxy4TqdJUg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", - "@redhat-cloud-services/frontend-components-config-utilities": "^4.1.3", + "@redhat-cloud-services/frontend-components-config-utilities": "^4.1.6", "@redhat-cloud-services/tsc-transform-imports": "^1.0.21", "@swc/core": "^1.3.76", "assert": "^2.0.0", @@ -2448,9 +2516,9 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-config-utilities": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-4.1.4.tgz", - "integrity": "sha512-J0/4xPzEXtCxwvRQ5P20v/dGUjD7/I1ORr33gTSp/kK8bMHHz9rbzgUdJvNvWCZCA6KmgtV9g4yWISlSopbAcg==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-4.1.6.tgz", + "integrity": "sha512-cO9ssCR9lpbT4PuPPwD5Ug96O/d0FyA5lPuouWUxwwdHr+DeZU8ejeCW/PaslHwv/9hfEkbckEcRn9lk0Q8lhw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2506,9 +2574,9 @@ "license": "MIT" }, "node_modules/@redhat-cloud-services/frontend-components-config-utilities/node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, "license": "MIT", "engines": { @@ -2520,32 +2588,32 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-notifications": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-notifications/-/frontend-components-notifications-4.1.14.tgz", - "integrity": "sha512-7RZYa/g7fRB+cIfVSPrdLLlG4/90dQ5Zk1hgDmiKMjqGLNqz4pzucarhEJdcH+JV/tVxifWkrgnazf3msvanwQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-notifications/-/frontend-components-notifications-5.0.2.tgz", + "integrity": "sha512-EOsxzFezul/XS2aIc6U6JFx9zapg1q5caZJM1xoQRjG7qJ2LCZAxShFALlgQDAbG3HtDAInAxOy+LWrosyYAvg==", "license": "Apache-2.0", "dependencies": { - "@redhat-cloud-services/frontend-components": "^5.0.5", - "@redhat-cloud-services/frontend-components-utilities": "^5.0.4", + "@redhat-cloud-services/frontend-components": "^6.0.0", + "@redhat-cloud-services/frontend-components-utilities": "^6.0.0", "redux-promise-middleware": "6.1.3" }, "peerDependencies": { - "@patternfly/react-core": "^5.0.0", - "@patternfly/react-icons": "^5.0.0", + "@patternfly/react-core": "^6.0.0", + "@patternfly/react-icons": "^6.0.0", "prop-types": "^15.6.2", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-redux": "^7.2.9", + "react-redux": "^7.2.9 || ^8.0.0 || ^9.0.0", "redux": ">=4.2.0" } }, "node_modules/@redhat-cloud-services/frontend-components-translations": { - "version": "3.2.18", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-translations/-/frontend-components-translations-3.2.18.tgz", - "integrity": "sha512-5zKTZnFUqMcPf/hZlgANbKC6w0PS4q8Wit3ykkzCHIEeR0VHuySeyH3PoB7jSoeQHtbe51fqLM+ZMWeYLAmyfw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-translations/-/frontend-components-translations-4.0.1.tgz", + "integrity": "sha512-I1f5G3YD9+OZcskuACGTm3ePBJbP5Ov++J+yIJmrEmbYdr5UOopDI2PCL8AIQvlCR3XcLGzpiGATlagP3EI7NA==", "license": "Apache-2.0", "optionalDependencies": { - "@redhat-cloud-services/frontend-components-utilities": "^5.0.4" + "@redhat-cloud-services/frontend-components-utilities": "^6.0.0" }, "peerDependencies": { "prop-types": "^15.6.2", @@ -2555,13 +2623,13 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-utilities": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-utilities/-/frontend-components-utilities-5.0.10.tgz", - "integrity": "sha512-fO4qJGwSJk61O+H1CJ6ss/LOmEQV9ihM7gWX6oQqrgtevG/pS95JSHfVJ/AjYUKkkScM/12kMmHvdKXTV3QlZA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-utilities/-/frontend-components-utilities-6.0.2.tgz", + "integrity": "sha512-1YH75PeABT190fY33Bh6aj+wJumQVwAjSd5Txw4/Ky80wpTdjEDr2aOyz2gWWhXRDFCwOeRIbABUwOEuZtvuUg==", "license": "Apache-2.0", "dependencies": { "@redhat-cloud-services/rbac-client": "^1.0.111 || 2.x", - "@redhat-cloud-services/types": "^1.0.19", + "@redhat-cloud-services/types": "^2.0.0", "@sentry/browser": "^7.119.1", "awesome-debounce-promise": "^2.1.0", "axios": "^0.28.1 || ^1.7.0", @@ -2571,14 +2639,31 @@ "react-content-loader": "^6.2.0" }, "peerDependencies": { - "@patternfly/react-core": "^5.0.0", - "@patternfly/react-table": "^5.0.0", + "@patternfly/react-core": "^6.0.0", + "@patternfly/react-table": "^6.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-redux": "^7.0.0", + "react-redux": "^7.0.0 || ^8.0.0 || ^9.0.0", "react-router-dom": "^5.0.0 || ^6.0.0" } }, + "node_modules/@redhat-cloud-services/frontend-components/node_modules/@patternfly/react-component-groups": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@patternfly/react-component-groups/-/react-component-groups-6.1.0.tgz", + "integrity": "sha512-8RkQv9wQk+D+nUMFtl4uk0ddMvxZ/+jFwnnXe2fw/BulouDVbpKRI24C1S8i1OQHr3++CbocBmmWRV0iw9Kvlw==", + "license": "MIT", + "dependencies": { + "@patternfly/react-core": "^6.0.0", + "@patternfly/react-icons": "^6.0.0", + "@patternfly/react-table": "^6.0.0", + "clsx": "^2.1.1", + "react-jss": "^10.10.0" + }, + "peerDependencies": { + "react": "^17 || ^18", + "react-dom": "^17 || ^18" + } + }, "node_modules/@redhat-cloud-services/javascript-clients-shared": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@redhat-cloud-services/javascript-clients-shared/-/javascript-clients-shared-1.2.7.tgz", @@ -2662,15 +2747,15 @@ } }, "node_modules/@redhat-cloud-services/types": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-1.0.19.tgz", - "integrity": "sha512-rRAIqLdtqZsBjY//kXfCY8VHEvw1LQxjdLaMRyr1qyGXZZTopl5itFcyOIJkQfeLuBYVibork1pYUI6Czxy3EQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-2.0.0.tgz", + "integrity": "sha512-T9KvjntxMtRkNcyYCKB9OktIy7hhy24Y4n1nDZgGsysSnfWOrnmsrLUI7pyrwqsRVzjIjI3oYf7qH7DE5LcFag==", "license": "Apache-2.0" }, "node_modules/@reduxjs/toolkit": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.5.1.tgz", - "integrity": "sha512-UHhy3p0oUpdhnSxyDjaRDYaw8Xra75UiLbCiRozVPHjfDwNYkh0TsVm/1OmTW8Md+iDAJmYPWUKMvsMc2GtpNg==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.6.1.tgz", + "integrity": "sha512-SSlIqZNYhqm/oMkXbtofwZSt9lrncblzo6YcZ9zoX+zLngRBrCOjK4lNLdkNucJF58RHOWrD9txT3bT3piH7Zw==", "license": "MIT", "dependencies": { "immer": "^10.0.3", @@ -2882,19 +2967,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", @@ -2916,15 +2988,15 @@ } }, "node_modules/@swc/core": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.12.tgz", - "integrity": "sha512-+iUL0PYpPm6N9AdV1wvafakvCqFegQus1aoEDxgFsv3/uNVNIyRaupf/v/Zkp5hbep2EzhtoJR0aiJIzDbXWHg==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.13.tgz", + "integrity": "sha512-9BXdYz12Wl0zWmZ80PvtjBWeg2ncwJ9L5WJzjhN6yUTZWEV/AwAdVdJnIEp4pro3WyKmAaMxcVOSbhuuOZco5g==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.17" + "@swc/types": "^0.1.19" }, "engines": { "node": ">=10" @@ -2934,16 +3006,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.10.12", - "@swc/core-darwin-x64": "1.10.12", - "@swc/core-linux-arm-gnueabihf": "1.10.12", - "@swc/core-linux-arm64-gnu": "1.10.12", - "@swc/core-linux-arm64-musl": "1.10.12", - "@swc/core-linux-x64-gnu": "1.10.12", - "@swc/core-linux-x64-musl": "1.10.12", - "@swc/core-win32-arm64-msvc": "1.10.12", - "@swc/core-win32-ia32-msvc": "1.10.12", - "@swc/core-win32-x64-msvc": "1.10.12" + "@swc/core-darwin-arm64": "1.11.13", + "@swc/core-darwin-x64": "1.11.13", + "@swc/core-linux-arm-gnueabihf": "1.11.13", + "@swc/core-linux-arm64-gnu": "1.11.13", + "@swc/core-linux-arm64-musl": "1.11.13", + "@swc/core-linux-x64-gnu": "1.11.13", + "@swc/core-linux-x64-musl": "1.11.13", + "@swc/core-win32-arm64-msvc": "1.11.13", + "@swc/core-win32-ia32-msvc": "1.11.13", + "@swc/core-win32-x64-msvc": "1.11.13" }, "peerDependencies": { "@swc/helpers": "*" @@ -2955,9 +3027,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.12.tgz", - "integrity": "sha512-pOANQegUTAriW7jq3SSMZGM5l89yLVMs48R0F2UG6UZsH04SiViCnDctOGlA/Sa++25C+rL9MGMYM1jDLylBbg==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.13.tgz", + "integrity": "sha512-loSERhLaQ9XDS+5Kdx8cLe2tM1G0HLit8MfehipAcsdctpo79zrRlkW34elOf3tQoVPKUItV0b/rTuhjj8NtHg==", "cpu": [ "arm64" ], @@ -2972,9 +3044,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.12.tgz", - "integrity": "sha512-m4kbpIDDsN1FrwfNQMU+FTrss356xsXvatLbearwR+V0lqOkjLBP0VmRvQfHEg+uy13VPyrT9gj4HLoztlci7w==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.13.tgz", + "integrity": "sha512-uSA4UwgsDCIysUPfPS8OrQTH2h9spO7IYFd+1NB6dJlVGUuR6jLKuMBOP1IeLeax4cGHayvkcwSJ3OvxHwgcZQ==", "cpu": [ "x64" ], @@ -2989,9 +3061,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.12.tgz", - "integrity": "sha512-OY9LcupgqEu8zVK+rJPes6LDJJwPDmwaShU96beTaxX2K6VrXbpwm5WbPS/8FfQTsmpnuA7dCcMPUKhNgmzTrQ==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.13.tgz", + "integrity": "sha512-boVtyJzS8g30iQfe8Q46W5QE/cmhKRln/7NMz/5sBP/am2Lce9NL0d05NnFwEWJp1e2AMGHFOdRr3Xg1cDiPKw==", "cpu": [ "arm" ], @@ -3006,9 +3078,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.12.tgz", - "integrity": "sha512-nJD587rO0N4y4VZszz3xzVr7JIiCzSMhEMWnPjuh+xmPxDBz0Qccpr8xCr1cSxpl1uY7ERkqAGlKr6CwoV5kVg==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.13.tgz", + "integrity": "sha512-+IK0jZ84zHUaKtwpV+T+wT0qIUBnK9v2xXD03vARubKF+eUqCsIvcVHXmLpFuap62dClMrhCiwW10X3RbXNlHw==", "cpu": [ "arm64" ], @@ -3023,9 +3095,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.12.tgz", - "integrity": "sha512-oqhSmV+XauSf0C//MoQnVErNUB/5OzmSiUzuazyLsD5pwqKNN+leC3JtRQ/QVzaCpr65jv9bKexT9+I2Tt3xDw==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.13.tgz", + "integrity": "sha512-+ukuB8RHD5BHPCUjQwuLP98z+VRfu+NkKQVBcLJGgp0/+w7y0IkaxLY/aKmrAS5ofCNEGqKL+AOVyRpX1aw+XA==", "cpu": [ "arm64" ], @@ -3040,9 +3112,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.12.tgz", - "integrity": "sha512-XldSIHyjD7m1Gh+/8rxV3Ok711ENLI420CU2EGEqSe3VSGZ7pHJvJn9ZFbYpWhsLxPqBYMFjp3Qw+J6OXCPXCA==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.13.tgz", + "integrity": "sha512-q9H3WI3U3dfJ34tdv60zc8oTuWvSd5fOxytyAO9Pc5M82Hic3jjWaf2xBekUg07ubnMZpyfnv+MlD+EbUI3Llw==", "cpu": [ "x64" ], @@ -3057,9 +3129,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.12.tgz", - "integrity": "sha512-wvPXzJxzPgTqhyp1UskOx1hRTtdWxlyFD1cGWOxgLsMik0V9xKRgqKnMPv16Nk7L9xl6quQ6DuUHj9ID7L3oVw==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.13.tgz", + "integrity": "sha512-9aaZnnq2pLdTbAzTSzy/q8dr7Woy3aYIcQISmw1+Q2/xHJg5y80ZzbWSWKYca/hKonDMjIbGR6dp299I5J0aeA==", "cpu": [ "x64" ], @@ -3074,9 +3146,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.12.tgz", - "integrity": "sha512-TUYzWuu1O7uyIcRfxdm6Wh1u+gNnrW5M1DUgDOGZLsyQzgc2Zjwfh2llLhuAIilvCVg5QiGbJlpibRYJ/8QGsg==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.13.tgz", + "integrity": "sha512-n3QZmDewkHANcoHvtwvA6yJbmS4XJf0MBMmwLZoKDZ2dOnC9D/jHiXw7JOohEuzYcpLoL5tgbqmjxa3XNo9Oow==", "cpu": [ "arm64" ], @@ -3091,9 +3163,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.12.tgz", - "integrity": "sha512-4Qrw+0Xt+Fe2rz4OJ/dEPMeUf/rtuFWWAj/e0vL7J5laUHirzxawLRE5DCJLQTarOiYR6mWnmadt9o3EKzV6Xg==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.13.tgz", + "integrity": "sha512-wM+Nt4lc6YSJFthCx3W2dz0EwFNf++j0/2TQ0Js9QLJuIxUQAgukhNDVCDdq8TNcT0zuA399ALYbvj5lfIqG6g==", "cpu": [ "ia32" ], @@ -3108,9 +3180,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.12.tgz", - "integrity": "sha512-YiloZXLW7rUxJpALwHXaGjVaAEn+ChoblG7/3esque+Y7QCyheoBUJp2DVM1EeVA43jBfZ8tvYF0liWd9Tpz1A==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.13.tgz", + "integrity": "sha512-+X5/uW3s1L5gK7wAo0E27YaAoidJDo51dnfKSfU7gF3mlEUuWH8H1bAy5OTt2mU4eXtfsdUMEVXSwhDlLtQkuA==", "cpu": [ "x64" ], @@ -3150,9 +3222,9 @@ } }, "node_modules/@swc/types": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", - "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.19.tgz", + "integrity": "sha512-WkAZaAfj44kh/UFdAQcrMP1I0nwRqpt27u+08LMBYMqmQfwwMofYoMh/48NGkMMRfC4ynpfwRbJuu8ErfNloeA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3821,488 +3893,104 @@ "node_modules/@types/serve-index": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", - "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz", - "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/type-utils": "8.23.0", - "@typescript-eslint/utils": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", - "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", - "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", - "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.23.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz", - "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", - "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", - "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.23.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz", - "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==", + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz", - "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==", + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.23.0", - "@typescript-eslint/utils": "8.23.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "@types/node": "*" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", - "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@types/node": "*" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", - "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "dependencies": { + "@types/yargs-parser": "*" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", - "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz", + "integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/visitor-keys": "8.23.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.27.0", + "@typescript-eslint/type-utils": "8.27.0", + "@typescript-eslint/utils": "8.27.0", + "@typescript-eslint/visitor-keys": "8.27.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", "ts-api-utils": "^2.0.1" }, "engines": { @@ -4313,20 +4001,23 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", - "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", + "node_modules/@typescript-eslint/parser": { + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.27.0.tgz", + "integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.23.0", - "@typescript-eslint/types": "8.23.0", - "@typescript-eslint/typescript-estree": "8.23.0" + "@typescript-eslint/scope-manager": "8.27.0", + "@typescript-eslint/types": "8.27.0", + "@typescript-eslint/typescript-estree": "8.27.0", + "@typescript-eslint/visitor-keys": "8.27.0", + "debug": "^4.3.4" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4337,18 +4028,18 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", - "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.27.0.tgz", + "integrity": "sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.23.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.27.0", + "@typescript-eslint/visitor-keys": "8.27.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4358,49 +4049,34 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.27.0.tgz", + "integrity": "sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", + "@typescript-eslint/typescript-estree": "8.27.0", + "@typescript-eslint/utils": "8.27.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.20.0.tgz", - "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.27.0.tgz", + "integrity": "sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==", "dev": true, "license": "MIT", "engines": { @@ -4412,20 +4088,20 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz", - "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz", + "integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/visitor-keys": "8.20.0", + "@typescript-eslint/types": "8.27.0", + "@typescript-eslint/visitor-keys": "8.27.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^2.0.0" + "ts-api-utils": "^2.0.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4435,7 +4111,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -4465,16 +4141,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.20.0.tgz", - "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.27.0.tgz", + "integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.20.0", - "@typescript-eslint/types": "8.20.0", - "@typescript-eslint/typescript-estree": "8.20.0" + "@typescript-eslint/scope-manager": "8.27.0", + "@typescript-eslint/types": "8.27.0", + "@typescript-eslint/typescript-estree": "8.27.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4485,17 +4161,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz", - "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.27.0.tgz", + "integrity": "sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/types": "8.27.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -4520,15 +4196,15 @@ } }, "node_modules/@unleash/proxy-client-react": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@unleash/proxy-client-react/-/proxy-client-react-4.5.1.tgz", - "integrity": "sha512-vo9fcAbSM7SItBF0XuKqD/nderEfXCA5EC30ozm1HHWZr2tE4RxodsN26Nh1rGqgDkNVr2MssMX13p9G4P2aSw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@unleash/proxy-client-react/-/proxy-client-react-5.0.0.tgz", + "integrity": "sha512-f00yLXSdA2ifB1RvqD1T4Il3Yk0CjVibKYS4cdOeLb6LhyH4kIeyJwtQO1slUrKRUy8VBt8Hmm2Rh1JEGlkfSQ==", "license": "Apache-2.0", "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "unleash-proxy-client": "^3.7.2" + "unleash-proxy-client": "^3.7.3" } }, "node_modules/@webassemblyjs/ast": { @@ -5287,9 +4963,9 @@ } }, "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", + "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -6436,18 +6112,17 @@ "license": "MIT" }, "node_modules/copy-webpack-plugin": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", - "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-13.0.0.tgz", + "integrity": "sha512-FgR/h5a6hzJqATDGd9YG41SeDViH+0bkHn6WNXCi5zKAZkeESeSxLySSsFLHqLEVCh0E+rITmCf0dusXWYukeQ==", "dev": true, "license": "MIT", "dependencies": { - "fast-glob": "^3.3.2", "glob-parent": "^6.0.1", - "globby": "^14.0.0", "normalize-path": "^3.0.0", "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2" + "serialize-javascript": "^6.0.2", + "tinyglobby": "^0.2.12" }, "engines": { "node": ">= 18.12.0" @@ -7765,22 +7440,23 @@ } }, "node_modules/eslint": { - "version": "9.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", - "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", + "version": "9.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz", + "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.10.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.19.0", - "@eslint/plugin-kit": "^0.2.5", + "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.2.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.23.0", + "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", + "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", @@ -7788,7 +7464,7 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", + "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", @@ -7825,24 +7501,24 @@ } }, "node_modules/eslint-plugin-formatjs": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/eslint-plugin-formatjs/-/eslint-plugin-formatjs-5.2.13.tgz", - "integrity": "sha512-mxUuVpq2T+59uubEQe2aow3dpnGQ3g5kXZHS/NZt0/GqXjSFWYWxX5vxrrPW+74jPO2RaW8jYwBcfOcSucRzGQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-formatjs/-/eslint-plugin-formatjs-5.3.0.tgz", + "integrity": "sha512-Ir8mW0h4/mSxkTiAExn+9d/JykC69ZsrXJsHgGU7mdnmmBHMYczYvkGZt8M9kQaHRoloWLsG32djdZMol6ZyFw==", "dev": true, "license": "MIT", "dependencies": { - "@formatjs/icu-messageformat-parser": "2.11.0", - "@formatjs/ts-transformer": "3.13.31", - "@types/eslint": "9", - "@types/picomatch": "3", - "@typescript-eslint/utils": "8.20.0", + "@formatjs/icu-messageformat-parser": "2.11.2", + "@formatjs/ts-transformer": "3.13.33", + "@types/eslint": "^9.6.1", + "@types/picomatch": "^3", + "@typescript-eslint/utils": "^8.27.0", "magic-string": "^0.30.0", "picomatch": "2 || 3 || 4", - "tslib": "2", + "tslib": "^2.8.0", "unicode-emoji-utils": "^1.2.0" }, "peerDependencies": { - "eslint": "9" + "eslint": "^9.23.0" } }, "node_modules/eslint-plugin-jest-dom": { @@ -7871,9 +7547,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "50.6.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.3.tgz", - "integrity": "sha512-NxbJyt1M5zffPcYZ8Nb53/8nnbIScmiLAMdoe0/FAszwb7lcSiX3iYBTsuF7RV84dZZJC8r3NghomrUXsmWvxQ==", + "version": "50.6.9", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.9.tgz", + "integrity": "sha512-7/nHu3FWD4QRG8tCVqcv+BfFtctUtEDWc29oeDXB4bwmDM2/r1ndl14AG/2DUntdqH7qmpvdemJKwb3R97/QEw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -7913,14 +7589,14 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", - "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.4.tgz", + "integrity": "sha512-SFtuYmnhwYCtuCDTKPoK+CEzCnEgKTU2qTLwoCxvrC0MFBTIXo1i6hDYOI4cwHaE5GZtlWmTN3YfucYi7KJwPw==", "dev": true, "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" + "synckit": "^0.10.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -7943,6 +7619,36 @@ } } }, + "node_modules/eslint-plugin-prettier/node_modules/@pkgr/core": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.0.tgz", + "integrity": "sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/eslint-plugin-prettier/node_modules/synckit": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.10.3.tgz", + "integrity": "sha512-R1urvuyiTaWfeCggqEvpDJwAlDVdsT9NM+IP//Tk2x7qHCkSvBk/fwFgw/TLAHzZlrAnnazMcRw0ZD8HlYFTEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.0", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/eslint-plugin-react": { "version": "7.37.4", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", @@ -7977,9 +7683,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", - "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", "dev": true, "license": "MIT", "engines": { @@ -8082,9 +7788,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -8473,9 +8179,9 @@ } }, "node_modules/fastq": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, "license": "ISC", "dependencies": { @@ -8505,6 +8211,21 @@ "bser": "2.1.1" } }, + "node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -8680,16 +8401,16 @@ } }, "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, "license": "ISC" }, "node_modules/focus-trap": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.2.tgz", - "integrity": "sha512-9FhUxK1hVju2+AiQIDJ5Dd//9R2n2RAfJ0qfhF4IHGHgcoEUTMpbTeG/zbEuwaiYXfuAH6XE0/aCyxDdRM+W5w==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.4.tgz", + "integrity": "sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==", "license": "MIT", "dependencies": { "tabbable": "^6.2.0" @@ -9116,9 +8837,9 @@ } }, "node_modules/globals": { - "version": "15.14.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", - "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", + "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==", "dev": true, "license": "MIT", "engines": { @@ -9145,40 +8866,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -9924,15 +9611,15 @@ } }, "node_modules/intl-messageformat": { - "version": "10.7.14", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.14.tgz", - "integrity": "sha512-mMGnE4E1otdEutV5vLUdCxRJygHB5ozUBxsPB5qhitewssrS/qGruq9bmvIRkkGsNeK5ZWLfYRld18UHGTIifQ==", + "version": "10.7.16", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.16.tgz", + "integrity": "sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==", "license": "BSD-3-Clause", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.2", - "@formatjs/fast-memoize": "2.2.6", - "@formatjs/icu-messageformat-parser": "2.11.0", - "tslib": "2" + "@formatjs/ecma402-abstract": "2.3.4", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.2", + "tslib": "^2.8.0" } }, "node_modules/ipaddr.js": { @@ -14150,9 +13837,9 @@ } }, "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "license": "MIT", "bin": { @@ -14481,23 +14168,23 @@ "license": "MIT" }, "node_modules/react-intl": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-7.1.5.tgz", - "integrity": "sha512-cVvsVdaOnZ85XBXU0Lc2PVGNhGlzl4UBV+aWAGe/zrV5Xr+CEW7izUsAp/fIuwvCsJl9R+aokppm+P7cdhnpUA==", + "version": "7.1.9", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-7.1.9.tgz", + "integrity": "sha512-VmM0pD/olitUrzGswkphoPCoVZmaJKNJR0gPKVQfiK5Vy0+l5ucoSsYbTfwu/j0WzYzZl/Gdfr2H7Z22AJ5TBg==", "license": "BSD-3-Clause", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.2", - "@formatjs/icu-messageformat-parser": "2.11.0", - "@formatjs/intl": "3.1.3", - "@types/hoist-non-react-statics": "3", + "@formatjs/ecma402-abstract": "2.3.4", + "@formatjs/icu-messageformat-parser": "2.11.2", + "@formatjs/intl": "3.1.5", + "@types/hoist-non-react-statics": "^3.3.1", "@types/react": "16 || 17 || 18 || 19", - "hoist-non-react-statics": "3", - "intl-messageformat": "10.7.14", - "tslib": "2" + "hoist-non-react-statics": "^3.3.2", + "intl-messageformat": "10.7.16", + "tslib": "^2.8.0" }, "peerDependencies": { - "react": "^16.6.0 || 17 || 18 || 19", - "typescript": "5" + "react": "16 || 17 || 18 || 19", + "typescript": "5.8.2" }, "peerDependenciesMeta": { "typescript": { @@ -14952,9 +14639,9 @@ } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", "engines": { @@ -15491,9 +15178,9 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -15863,19 +15550,6 @@ "dev": true, "license": "MIT" }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/slashes": { "version": "3.0.12", "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", @@ -16644,6 +16318,23 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "license": "MIT" }, + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -16773,9 +16464,9 @@ } }, "node_modules/ts-jest": { - "version": "29.2.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", - "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", + "version": "29.3.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.0.tgz", + "integrity": "sha512-4bfGBX7Gd1Aqz3SyeDS9O276wEU/BInZxskPrbhZLyv+c1wskDCqDFMJQJLWrIr/fKoAH4GE5dKUlrdyvo+39A==", "dev": true, "license": "MIT", "dependencies": { @@ -16786,7 +16477,8 @@ "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.6.3", + "semver": "^7.7.1", + "type-fest": "^4.37.0", "yargs-parser": "^21.1.1" }, "bin": { @@ -16821,6 +16513,19 @@ } } }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.38.0.tgz", + "integrity": "sha512-2dBz5D5ycHIoliLYLi0Q2V7KRaDlH0uWIvmk7TYlAg5slqwiPv1ezJdZm1QEM0xgk29oYWMCbIG7E6gHpvChlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ts-loader": { "version": "9.5.2", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz", @@ -17026,9 +16731,9 @@ } }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -17082,19 +16787,6 @@ "dev": true, "license": "MIT" }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/union": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", @@ -17132,9 +16824,9 @@ } }, "node_modules/unleash-proxy-client": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/unleash-proxy-client/-/unleash-proxy-client-3.7.2.tgz", - "integrity": "sha512-1SvHsl3kQh1DT9EKMQsN9alOvXZEz9hpxa3mG6QWtTmXJqa6VZi25dQ2U8Y2KAULKg6ARLMUQkod74Fe/pKp0g==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/unleash-proxy-client/-/unleash-proxy-client-3.7.3.tgz", + "integrity": "sha512-Cd7ovrhAIpwveNFdtpzs7HO0WeArC2fbjIVGL2Cjza8bHD+jJ1JbSuy3tFuKvvUkbVKq/EGV0RgosEa/3UVLgg==", "license": "Apache-2.0", "peer": true, "dependencies": { diff --git a/package.json b/package.json index 76b28b39..92c1625b 100644 --- a/package.json +++ b/package.json @@ -49,27 +49,27 @@ "verify": "npm-run-all build lint test" }, "dependencies": { - "@patternfly/patternfly": "5.4.2", - "@patternfly/react-charts": "7.4.8", - "@patternfly/react-component-groups": "5.5.5", - "@patternfly/react-core": "5.4.12", - "@patternfly/react-icons": "5.4.2", - "@patternfly/react-table": "5.4.13", - "@patternfly/react-tokens": "5.4.1", - "@redhat-cloud-services/frontend-components": "^5.2.3", - "@redhat-cloud-services/frontend-components-notifications": "^4.1.14", - "@redhat-cloud-services/frontend-components-translations": "^3.2.18", - "@redhat-cloud-services/frontend-components-utilities": "^5.0.10", - "@reduxjs/toolkit": "^2.5.1", - "@unleash/proxy-client-react": "^4.5.1", - "axios": "^1.7.9", + "@patternfly/patternfly": "6.2.0-prerelease.26", + "@patternfly/react-charts": "8.2.0-prerelease.26", + "@patternfly/react-component-groups": "6.2.0-prerelease.7", + "@patternfly/react-core": "6.2.0-prerelease.34", + "@patternfly/react-icons": "6.2.0-prerelease.12", + "@patternfly/react-table": "6.2.0-prerelease.35", + "@patternfly/react-tokens": "6.2.0-prerelease.11", + "@redhat-cloud-services/frontend-components": "^6.0.2", + "@redhat-cloud-services/frontend-components-notifications": "^5.0.2", + "@redhat-cloud-services/frontend-components-translations": "^4.0.1", + "@redhat-cloud-services/frontend-components-utilities": "^6.0.2", + "@reduxjs/toolkit": "^2.6.1", + "@unleash/proxy-client-react": "^5.0.0", + "axios": "^1.8.4", "date-fns": "^4.1.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", "qs": "^6.14.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-intl": "^7.1.5", + "react-intl": "^7.1.9", "react-redux": "^9.2.0", "react-router-dom": "^6.28.0", "redux": "^5.0.1", @@ -79,17 +79,17 @@ "yaml": "^2.7.0" }, "devDependencies": { - "@eslint/compat": "^1.2.6", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "^9.19.0", - "@formatjs/cli": "^6.5.1", - "@formatjs/ecma402-abstract": "^2.3.2", - "@formatjs/fast-memoize": "^2.2.6", - "@formatjs/icu-messageformat-parser": "^2.11.0", - "@formatjs/intl-localematcher": "^0.5.10", - "@redhat-cloud-services/frontend-components-config": "^6.4.5", + "@eslint/compat": "^1.2.7", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.23.0", + "@formatjs/cli": "^6.6.2", + "@formatjs/ecma402-abstract": "^2.3.4", + "@formatjs/fast-memoize": "^2.2.7", + "@formatjs/icu-messageformat-parser": "^2.11.2", + "@formatjs/intl-localematcher": "^0.6.1", + "@redhat-cloud-services/frontend-components-config": "^6.4.8", "@redhat-cloud-services/tsc-transform-imports": "^1.0.23", - "@swc/core": "^1.10.12", + "@swc/core": "^1.11.13", "@swc/jest": "^0.2.37", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", @@ -100,22 +100,22 @@ "@types/react-dom": "^18.3.5", "@types/react-redux": "^7.1.34", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^8.23.0", - "@typescript-eslint/parser": "^8.23.0", - "copy-webpack-plugin": "^12.0.2", - "eslint": "^9.19.0", - "eslint-plugin-formatjs": "^5.2.13", - "eslint-plugin-react-hooks": "^5.1.0", + "@typescript-eslint/eslint-plugin": "^8.27.0", + "@typescript-eslint/parser": "^8.27.0", + "copy-webpack-plugin": "^13.0.0", + "eslint": "^9.23.0", + "eslint-plugin-formatjs": "^5.3.0", + "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-jest-dom": "^5.5.0", - "eslint-plugin-jsdoc": "^50.6.3", + "eslint-plugin-jsdoc": "^50.6.9", "eslint-plugin-markdown": "^5.1.0", - "eslint-plugin-prettier": "^5.2.3", + "eslint-plugin-prettier": "^5.2.4", "eslint-plugin-react": "^7.37.4", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-sort-keys-fix": "^1.1.2", "eslint-plugin-testing-library": "^7.1.1", "git-revision-webpack-plugin": "^5.0.0", - "globals": "^15.14.0", + "globals": "^16.0.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -123,19 +123,20 @@ "jest-transform-stub": "^2.0.0", "jws": "^4.0.0", "npm-run-all": "^4.1.5", - "prettier": "^3.4.2", + "prettier": "^3.5.3", "rimraf": "^6.0.1", "swc_mut_cjs_exports": "^8.0.1", - "ts-jest": "^29.2.5", + "ts-jest": "^29.3.0", "ts-patch": "^3.3.0", - "typescript": "^5.7.3" + "typescript": "^5.8.2" }, "overrides": { - "@typescript-eslint/eslint-plugin": "^8.23.0", - "eslint": "^9.19.0", - "react-intl": "^7.1.5", - "redux": "^5.0.1", - "react-redux": "^9.2.0" + "@patternfly/react-core": "6.2.0-prerelease.34", + "@patternfly/react-icons": "6.2.0-prerelease.12", + "@patternfly/react-table": "6.2.0-prerelease.35", + "@patternfly/react-tokens": "6.2.0-prerelease.11", + "react-intl": "^7.1.9", + "redux": "^5.0.1" }, "insights": { "appname": "cost-management-mfe" diff --git a/src/app.tsx b/src/app.tsx index fec7429a..57e88662 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -36,10 +36,10 @@ const App = () => { }, []); return ( - <> + <div> <NotificationsPortal /> <Routes /> - </> + </div> ); }; diff --git a/src/routes/components/charts/common/chartUtils.ts b/src/routes/components/charts/common/chartUtils.ts index f7c04530..a1ff02b6 100644 --- a/src/routes/components/charts/common/chartUtils.ts +++ b/src/routes/components/charts/common/chartUtils.ts @@ -1,4 +1,4 @@ -import { getInteractiveLegendItemStyles } from '@patternfly/react-charts'; +import { getInteractiveLegendItemStyles } from '@patternfly/react-charts/victory'; import { intl } from 'components/i18n'; import messages from 'locales/messages'; import type { FormatOptions, Formatter } from 'utils/format'; diff --git a/src/routes/components/charts/theme/theme-utils.ts b/src/routes/components/charts/theme/theme-utils.ts index ad25d7ce..acb773b2 100644 --- a/src/routes/components/charts/theme/theme-utils.ts +++ b/src/routes/components/charts/theme/theme-utils.ts @@ -1,4 +1,4 @@ -import { ChartThemeColor, getCustomTheme } from '@patternfly/react-charts'; +import { ChartThemeColor, getCustomTheme } from '@patternfly/react-charts/victory'; import { default as ChartTheme } from './theme-koku-mfe'; diff --git a/src/routes/components/dataTable/dataTable.scss b/src/routes/components/dataTable/dataTable.scss index d97c63d3..c3a019b5 100644 --- a/src/routes/components/dataTable/dataTable.scss +++ b/src/routes/components/dataTable/dataTable.scss @@ -4,13 +4,13 @@ div { display: block; margin-right: 0; - margin-bottom: var(--pf-v5-global--spacer--xs); + margin-bottom: var(--pf-t--global--spacer--xs); &.iconOverride { &.decrease { - color: var(--pf-v5-global--success-color--100); + color: var(--pf-t--global--color--status--success--default); } &.increase { - color: var(--pf-v5-global--danger-color--100); + color: var(--pf-t--global--color--status--danger--default); } .fa-sort-up { margin-left: 10px; @@ -19,10 +19,10 @@ margin-left: 10px; } .fa-sort-up::before { - color: var(--pf-v5-global--danger-color--100); + color: var(--pf-t--global--color--status--danger--default); } .fa-sort-down::before { - color: var(--pf-v5-global--success-color--100); + color: var(--pf-t--global--color--status--success--default); } span { margin-right: -17px !important; @@ -32,7 +32,7 @@ } .tableOverride { - &.pf-v5-c-table tbody .pf-v5-c-table__check input { + &.pf-v6-c-table tbody .pf-v6-c-table__check input { margin-top: .40rem; } } diff --git a/src/routes/components/dataTable/dataTable.styles.ts b/src/routes/components/dataTable/dataTable.styles.ts index 9519faaa..51716443 100644 --- a/src/routes/components/dataTable/dataTable.styles.ts +++ b/src/routes/components/dataTable/dataTable.styles.ts @@ -1,9 +1,9 @@ -import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100'; -import global_disabled_color_100 from '@patternfly/react-tokens/dist/js/global_disabled_color_100'; -import global_FontSize_xs from '@patternfly/react-tokens/dist/js/global_FontSize_xs'; -import global_spacer_3xl from '@patternfly/react-tokens/dist/js/global_spacer_3xl'; -import global_spacer_sm from '@patternfly/react-tokens/dist/js/global_spacer_sm'; -import global_spacer_xs from '@patternfly/react-tokens/dist/js/global_spacer_xs'; +import t_global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/t_global_background_color_100'; +import t_global_color_disabled_100 from '@patternfly/react-tokens/dist/js/t_global_color_disabled_100'; +import t_global_font_size_xs from '@patternfly/react-tokens/dist/js/t_global_font_size_xs'; +import t_global_spacer_3xl from '@patternfly/react-tokens/dist/js/t_global_spacer_3xl'; +import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm'; +import t_global_spacer_xs from '@patternfly/react-tokens/dist/js/t_global_spacer_xs'; import type React from 'react'; export const styles = { @@ -17,10 +17,10 @@ export const styles = { minWidth: '50px', }, emptyState: { - backgroundColor: global_BackgroundColor_light_100.value, + backgroundColor: t_global_BackgroundColor_light_100.value, display: 'flex', justifyContent: 'center', - paddingTop: global_spacer_3xl.value, + paddingTop: t_global_spacer_3xl.value, height: '35vh', width: '100%', }, @@ -28,11 +28,11 @@ export const styles = { position: 'relative', }, infoArrowDesc: { - bottom: global_spacer_xs.value, + bottom: t_global_spacer_xs.value, }, infoDescription: { - color: global_disabled_color_100.value, - fontSize: global_FontSize_xs.value, + color: t_global_color_disabled_100.value, + fontSize: t_global_font_size_xs.value, }, lastItem: { textAlign: 'right', @@ -50,6 +50,6 @@ export const styles = { width: '1%', }, warningIcon: { - paddingLeft: global_spacer_sm.var, + paddingLeft: t_global_spacer_sm.var, }, } as { [className: string]: React.CSSProperties }; diff --git a/src/routes/components/dataTable/dataTable.tsx b/src/routes/components/dataTable/dataTable.tsx index 09d11a9f..ffcb982c 100644 --- a/src/routes/components/dataTable/dataTable.tsx +++ b/src/routes/components/dataTable/dataTable.tsx @@ -1,13 +1,6 @@ import './dataTable.scss'; -import { - Bullseye, - EmptyState, - EmptyStateBody, - EmptyStateHeader, - EmptyStateIcon, - Spinner, -} from '@patternfly/react-core'; +import { Bullseye, EmptyState, EmptyStateBody, Spinner } from '@patternfly/react-core'; import { CalculatorIcon } from '@patternfly/react-icons/dist/esm/icons/calculator-icon'; import type { ThProps } from '@patternfly/react-table'; import { SortByDirection, Table, TableVariant, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table'; @@ -58,8 +51,7 @@ class DataTable extends React.Component<DataTableProps, any> { return emptyState ? ( emptyState ) : ( - <EmptyState> - <EmptyStateHeader icon={<EmptyStateIcon icon={CalculatorIcon} />} /> + <EmptyState icon={CalculatorIcon} titleText=""> <EmptyStateBody>{intl.formatMessage(messages.detailsEmptyState)}</EmptyStateBody> </EmptyState> ); diff --git a/src/routes/components/dataTable/selectableTable.tsx b/src/routes/components/dataTable/selectableTable.tsx index a9cb6107..305a4200 100644 --- a/src/routes/components/dataTable/selectableTable.tsx +++ b/src/routes/components/dataTable/selectableTable.tsx @@ -1,11 +1,4 @@ -import { - Bullseye, - EmptyState, - EmptyStateBody, - EmptyStateHeader, - EmptyStateIcon, - Spinner, -} from '@patternfly/react-core'; +import { Bullseye, EmptyState, EmptyStateBody, Spinner } from '@patternfly/react-core'; import { CalculatorIcon } from '@patternfly/react-icons/dist/esm/icons/calculator-icon'; import type { ThProps } from '@patternfly/react-table'; import { SortByDirection, Table, TableVariant, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table'; @@ -53,8 +46,7 @@ class SelectableTable extends React.Component<SelectableTableProps, any> { return emptyState; } return ( - <EmptyState> - <EmptyStateHeader icon={<EmptyStateIcon icon={CalculatorIcon} />} /> + <EmptyState icon={CalculatorIcon} titleText=""> <EmptyStateBody>{intl.formatMessage(messages.detailsEmptyState)}</EmptyStateBody> </EmptyState> ); diff --git a/src/routes/components/dataToolbar/basicToolbar.tsx b/src/routes/components/dataToolbar/basicToolbar.tsx index a3b76aac..80e53bbc 100644 --- a/src/routes/components/dataToolbar/basicToolbar.tsx +++ b/src/routes/components/dataToolbar/basicToolbar.tsx @@ -14,7 +14,6 @@ import { isEqual } from 'routes/utils/equal'; import type { Filter } from 'routes/utils/filter'; import { createMapStateToProps } from 'store/common'; -import { styles } from './dataToolbar.styles'; import { getCategoryInput, getCategorySelect, @@ -278,7 +277,7 @@ export class BasicToolbarBase extends React.Component<BasicToolbarProps, BasicTo // Todo: clearAllFilters workaround https://github.com/patternfly/patternfly-react/issues/4222 return ( - <div style={style ? style : styles.toolbarContainer}> + <div style={style}> <Toolbar className="toolbarOverride" clearAllFilters={this.handleOnDelete as any} @@ -295,7 +294,7 @@ export class BasicToolbarBase extends React.Component<BasicToolbarProps, BasicTo </ToolbarToggleGroup> )}{' '} {actions && <ToolbarGroup>{actions}</ToolbarGroup>} - <ToolbarItem align={{ default: 'alignRight' }} variant="pagination"> + <ToolbarItem align={{ default: 'alignEnd' }} variant="pagination"> {pagination} </ToolbarItem> </ToolbarContent> diff --git a/src/routes/components/dataToolbar/dataToolbar.scss b/src/routes/components/dataToolbar/dataToolbar.scss index e6d8b1bf..45a3a07c 100644 --- a/src/routes/components/dataToolbar/dataToolbar.scss +++ b/src/routes/components/dataToolbar/dataToolbar.scss @@ -3,15 +3,15 @@ // Workaround for https://github.com/patternfly/patternfly-react/issues/4477 // and https://github.com/patternfly/patternfly-react/issues/6371 .selectOverride { - .pf-v5-c-menu-toggle { + .pf-v6-c-menu-toggle { min-width: 250px; } } .toolbarOverride { - .pf-v5-c-button.pf-m-control::after { + .pf-v6-c-button.pf-m-control::after { border-left: none; } // Alternative workaround to overriding table sticky style - // --pf-v5-c-toolbar--ZIndex: auto; z-index: 301; + // --pf-v6-c-toolbar--ZIndex: auto; z-index: 301; } diff --git a/src/routes/components/dataToolbar/dataToolbar.styles.ts b/src/routes/components/dataToolbar/dataToolbar.styles.ts deleted file mode 100644 index 69501132..00000000 --- a/src/routes/components/dataToolbar/dataToolbar.styles.ts +++ /dev/null @@ -1,14 +0,0 @@ -import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100'; -import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md'; -import type React from 'react'; - -export const styles = { - export: { - marginRight: global_spacer_md.value, - }, - toolbarContainer: { - backgroundColor: global_BackgroundColor_light_100.value, - paddingBottom: global_spacer_md.value, - paddingTop: global_spacer_md.value, - }, -} as { [className: string]: React.CSSProperties }; diff --git a/src/routes/components/dataToolbar/utils/category.tsx b/src/routes/components/dataToolbar/utils/category.tsx index 5849fca1..4ef818ff 100644 --- a/src/routes/components/dataToolbar/utils/category.tsx +++ b/src/routes/components/dataToolbar/utils/category.tsx @@ -1,4 +1,4 @@ -import type { ToolbarChipGroup } from '@patternfly/react-core'; +import type { ToolbarLabelGroup } from '@patternfly/react-core'; import { SearchInput, ToolbarFilter, ToolbarItem } from '@patternfly/react-core'; import { FilterIcon } from '@patternfly/react-icons/dist/esm/icons/filter-icon'; import type { ResourcePathsType, ResourceType } from 'api/resources/resource'; @@ -49,8 +49,8 @@ export const getCategoryInput = ({ return ( <ToolbarFilter categoryName={categoryOption} - chips={getChips(filters[categoryOption.key] as Filter[])} - deleteChip={onDelete} + labels={getChips(filters[categoryOption.key] as Filter[])} + deleteLabel={onDelete} key={categoryOption.key} showToolbarItem={currentCategory === categoryOption.key} > @@ -79,7 +79,7 @@ export const getCategoryInput = ({ ); }; -export const getDefaultCategoryOptions = (): ToolbarChipGroup[] => { +export const getDefaultCategoryOptions = (): ToolbarLabelGroup[] => { return [{ name: intl.formatMessage(messages.names, { count: 1 }), key: 'name' }]; }; @@ -170,7 +170,7 @@ export const getCategorySelect = ({ isDisabled, onCategorySelect, }: { - categoryOptions?: ToolbarChipGroup[]; // Options for category menu + categoryOptions?: ToolbarLabelGroup[]; // Options for category menu currentCategory?: string; filters?: Filters; isDisabled?: boolean; @@ -197,7 +197,7 @@ export const getCategorySelect = ({ ); }; -export const getCategorySelectOptions = (categoryOptions: ToolbarChipGroup[]): SelectWrapperOption[] => { +export const getCategorySelectOptions = (categoryOptions: ToolbarLabelGroup[]): SelectWrapperOption[] => { const options: SelectWrapperOption[] = []; categoryOptions.map(option => { diff --git a/src/routes/components/dataToolbar/utils/common.ts b/src/routes/components/dataToolbar/utils/common.ts index 52b42566..ac6dae01 100644 --- a/src/routes/components/dataToolbar/utils/common.ts +++ b/src/routes/components/dataToolbar/utils/common.ts @@ -1,4 +1,4 @@ -import type { ToolbarChipGroup } from '@patternfly/react-core'; +import type { ToolbarLabelGroup } from '@patternfly/react-core'; import type { Query } from 'api/queries/query'; import { intl } from 'components/i18n'; import messages from 'locales/messages'; @@ -10,11 +10,11 @@ export interface Filters { [key: string]: Filter[] | { [key: string]: Filter[] }; } -export interface ToolbarChipGroupExt extends ToolbarChipGroup { +export interface ToolbarChipGroupExt extends ToolbarLabelGroup { ariaLabelKey?: string; placeholderKey?: string; selectClassName?: string; // A selector from routes/components/dataToolbar/dataToolbar.scss - selectOptions?: ToolbarChipGroup[]; + selectOptions?: ToolbarLabelGroup[]; } export const defaultFilters = { @@ -90,7 +90,7 @@ export const getChips = (filters: Filter[]): string[] => { return chips; }; -export const getDefaultCategory = (categoryOptions: ToolbarChipGroup[], groupBy: string, query: Query) => { +export const getDefaultCategory = (categoryOptions: ToolbarLabelGroup[], groupBy: string, query: Query) => { if (!categoryOptions) { return 'name'; } diff --git a/src/routes/components/dataToolbar/utils/custom.tsx b/src/routes/components/dataToolbar/utils/custom.tsx index 76b37694..e32528eb 100644 --- a/src/routes/components/dataToolbar/utils/custom.tsx +++ b/src/routes/components/dataToolbar/utils/custom.tsx @@ -39,8 +39,8 @@ export const getCustomSelect = ({ return ( <ToolbarFilter categoryName={categoryName} - chips={getChips(filters[categoryOption.key] as Filter[])} - deleteChip={onDelete} + labels={getChips(filters[categoryOption.key] as Filter[])} + deleteLabel={onDelete} key={`custom-select-${categoryOption.key}`} showToolbarItem={currentCategory === categoryOption.key} > diff --git a/src/routes/components/page/loading/loading.tsx b/src/routes/components/page/loading/loading.tsx index 99af6462..8c899538 100644 --- a/src/routes/components/page/loading/loading.tsx +++ b/src/routes/components/page/loading/loading.tsx @@ -1,4 +1,4 @@ -import { PageSection } from '@patternfly/react-core'; +import { Card, CardBody, PageSection } from '@patternfly/react-core'; import { PageHeader, PageHeaderTitle } from '@redhat-cloud-services/frontend-components/PageHeader'; import React from 'react'; import { LoadingState } from 'routes/components/state/loadingState'; @@ -19,8 +19,12 @@ const Loading = ({ body, heading, title }: LoadingProps) => { <PageHeaderTitle title={title} /> </PageHeader> )} - <PageSection> - <LoadingState body={body} heading={heading} /> + <PageSection hasBodyWrapper={false}> + <Card> + <CardBody> + <LoadingState body={body} heading={heading} /> + </CardBody> + </Card> </PageSection> </> ); diff --git a/src/routes/components/page/noOptimizations/noOptimizations.tsx b/src/routes/components/page/noOptimizations/noOptimizations.tsx index 57780fd9..aaa6dbe5 100644 --- a/src/routes/components/page/noOptimizations/noOptimizations.tsx +++ b/src/routes/components/page/noOptimizations/noOptimizations.tsx @@ -18,7 +18,7 @@ const NoOptimizations = ({ title }: NoOptimizationsProps) => { <PageHeaderTitle title={title} /> </PageHeader> )} - <PageSection> + <PageSection hasBodyWrapper={false}> <NoOptimizationsState /> </PageSection> </> diff --git a/src/routes/components/page/noOptimizations/noOptimizationsState.tsx b/src/routes/components/page/noOptimizations/noOptimizationsState.tsx index 4b78a714..5287d3a4 100644 --- a/src/routes/components/page/noOptimizations/noOptimizationsState.tsx +++ b/src/routes/components/page/noOptimizations/noOptimizationsState.tsx @@ -1,10 +1,4 @@ -import { - EmptyState, - EmptyStateBody, - EmptyStateHeader, - EmptyStateIcon, - EmptyStateVariant, -} from '@patternfly/react-core'; +import { EmptyState, EmptyStateBody, EmptyStateVariant } from '@patternfly/react-core'; import messages from 'locales/messages'; import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; @@ -22,12 +16,13 @@ class NoOptimizationsStateBase extends React.Component<NoOptimizationsStateProps const { intl } = this.props; return ( - <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font"> - <EmptyStateHeader - titleText={intl.formatMessage(messages.noOptimizationsTitle)} - icon={<EmptyStateIcon icon={OptimizationIcon as any} />} - headingLevel="h1" - /> + <EmptyState + headingLevel="h1" + icon={OptimizationIcon as any} + titleText={intl.formatMessage(messages.noOptimizationsTitle)} + variant={EmptyStateVariant.lg} + className="pf-m-redhat-font" + > <EmptyStateBody>{intl.formatMessage(messages.noOptimizationsDesc)}</EmptyStateBody> </EmptyState> ); diff --git a/src/routes/components/page/notAuthorized/notAuthorized.tsx b/src/routes/components/page/notAuthorized/notAuthorized.tsx index ca01b158..3197725a 100644 --- a/src/routes/components/page/notAuthorized/notAuthorized.tsx +++ b/src/routes/components/page/notAuthorized/notAuthorized.tsx @@ -1,4 +1,4 @@ -import { PageSection } from '@patternfly/react-core'; +import { Card, CardBody, PageSection } from '@patternfly/react-core'; import { PageHeader, PageHeaderTitle } from '@redhat-cloud-services/frontend-components/PageHeader'; import React from 'react'; @@ -19,8 +19,12 @@ const NotAuthorized = ({ pathname, title }: NotAuthorizedProps) => { <PageHeaderTitle title={title} /> </PageHeader> )} - <PageSection> - <NotAuthorizedState pathname={pathname} /> + <PageSection hasBodyWrapper={false}> + <Card> + <CardBody> + <NotAuthorizedState pathname={pathname} /> + </CardBody> + </Card> </PageSection> </> ); diff --git a/src/routes/components/page/notAuthorized/notAuthorizedState.tsx b/src/routes/components/page/notAuthorized/notAuthorizedState.tsx index 74fc9fcb..13b9fccd 100644 --- a/src/routes/components/page/notAuthorized/notAuthorizedState.tsx +++ b/src/routes/components/page/notAuthorized/notAuthorizedState.tsx @@ -1,4 +1,4 @@ -import UnAuthorized from '@patternfly/react-component-groups/dist/esm/NotAuthorized'; +import UnauthorizedAccess from '@patternfly/react-component-groups/dist/esm/UnauthorizedAccess'; import messages from 'locales/messages'; import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; @@ -30,7 +30,7 @@ class NotAuthorizedStateBase extends React.Component<NotAuthorizedStateProps, an msg = messages.costManagement; break; } - return <UnAuthorized serviceName={intl.formatMessage(msg)} />; + return <UnauthorizedAccess serviceName={intl.formatMessage(msg)} />; } } diff --git a/src/routes/components/page/notAvailable/notAvailable.tsx b/src/routes/components/page/notAvailable/notAvailable.tsx index 953d1f6f..80c8eaec 100644 --- a/src/routes/components/page/notAvailable/notAvailable.tsx +++ b/src/routes/components/page/notAvailable/notAvailable.tsx @@ -17,7 +17,7 @@ const NotAvailable = ({ title }: NotAvailableProps) => { <PageHeaderTitle title={title} /> </PageHeader> )} - <PageSection> + <PageSection hasBodyWrapper={false}> <Unavailable /> </PageSection> </> diff --git a/src/routes/components/page/notConfigured/notConfigured.tsx b/src/routes/components/page/notConfigured/notConfigured.tsx index 524fe77a..cee4b51d 100644 --- a/src/routes/components/page/notConfigured/notConfigured.tsx +++ b/src/routes/components/page/notConfigured/notConfigured.tsx @@ -18,7 +18,7 @@ const NotConfigured = ({ title }: NotConfiguredProps) => { <PageHeaderTitle title={title} /> </PageHeader> )} - <PageSection> + <PageSection hasBodyWrapper={false}> <NotConfiguredState /> </PageSection> </> diff --git a/src/routes/components/page/notConfigured/notConfiguredState.tsx b/src/routes/components/page/notConfigured/notConfiguredState.tsx index e9949531..3cb4f3ef 100644 --- a/src/routes/components/page/notConfigured/notConfiguredState.tsx +++ b/src/routes/components/page/notConfigured/notConfiguredState.tsx @@ -1,11 +1,4 @@ -import { - ClipboardCopy, - EmptyState, - EmptyStateBody, - EmptyStateHeader, - EmptyStateIcon, - EmptyStateVariant, -} from '@patternfly/react-core'; +import { ClipboardCopy, EmptyState, EmptyStateBody, EmptyStateVariant } from '@patternfly/react-core'; import messages from 'locales/messages'; import React from 'react'; import { useIntl } from 'react-intl'; @@ -47,12 +40,13 @@ const NotConfiguredState: React.FC<NotConfiguredStateProps> = () => { }; return ( - <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font"> - <EmptyStateHeader - titleText={intl.formatMessage(messages.notConfiguredTitle)} - icon={<EmptyStateIcon icon={OptimizationIcon as any} />} - headingLevel="h1" - /> + <EmptyState + headingLevel="h1" + icon={OptimizationIcon as any} + titleText={intl.formatMessage(messages.notConfiguredTitle)} + variant={EmptyStateVariant.lg} + className="pf-m-redhat-font" + > <EmptyStateBody>{intl.formatMessage(messages.notConfiguredDesc)}</EmptyStateBody> <EmptyStateBody> {intl.formatMessage(messages.notConfiguredNamespace, { clipboard: getNamespaceClipboard() })} diff --git a/src/routes/components/page/notFound/notFound.tsx b/src/routes/components/page/notFound/notFound.tsx index 9084e9b0..7d1241a4 100644 --- a/src/routes/components/page/notFound/notFound.tsx +++ b/src/routes/components/page/notFound/notFound.tsx @@ -1,11 +1,15 @@ -import { PageSection } from '@patternfly/react-core'; -import { InvalidObject } from '@redhat-cloud-services/frontend-components/InvalidObject'; +import { MissingPage } from '@patternfly/react-component-groups/dist/esm/MissingPage'; +import { Card, CardBody, PageSection } from '@patternfly/react-core'; import React from 'react'; const NotFound = () => { return ( - <PageSection> - <InvalidObject /> + <PageSection hasBodyWrapper={false}> + <Card> + <CardBody> + <MissingPage titleText={undefined} /> + </CardBody> + </Card> </PageSection> ); }; diff --git a/src/routes/components/page/welcome/welcome.tsx b/src/routes/components/page/welcome/welcome.tsx index 9ca951cc..49a3d088 100644 --- a/src/routes/components/page/welcome/welcome.tsx +++ b/src/routes/components/page/welcome/welcome.tsx @@ -16,7 +16,7 @@ const Welcome = ({ title }: WelcomeOwnProps) => { <PageHeaderTitle title={title} /> </PageHeader> )} - <PageSection> + <PageSection hasBodyWrapper={false}> <WelcomeState /> </PageSection> </> diff --git a/src/routes/components/page/welcome/welcomeState.tsx b/src/routes/components/page/welcome/welcomeState.tsx index 49a2ffeb..cc526433 100644 --- a/src/routes/components/page/welcome/welcomeState.tsx +++ b/src/routes/components/page/welcome/welcomeState.tsx @@ -1,10 +1,4 @@ -import { - EmptyState, - EmptyStateBody, - EmptyStateHeader, - EmptyStateIcon, - EmptyStateVariant, -} from '@patternfly/react-core'; +import { EmptyState, EmptyStateBody, EmptyStateVariant } from '@patternfly/react-core'; import { PlusCircleIcon } from '@patternfly/react-icons/dist/esm/icons/plus-circle-icon'; import messages from 'locales/messages'; import React from 'react'; @@ -18,12 +12,13 @@ class WelcomeStateBase extends React.Component<WelcomeStateBaseOwnProps, any> { const { intl } = this.props; return ( - <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font"> - <EmptyStateHeader - titleText={intl.formatMessage(messages.welcomeTitle)} - icon={<EmptyStateIcon icon={PlusCircleIcon} />} - headingLevel="h5" - /> + <EmptyState + headingLevel="h5" + icon={PlusCircleIcon} + titleText={intl.formatMessage(messages.welcomeTitle)} + variant={EmptyStateVariant.lg} + className="pf-m-redhat-font" + > <EmptyStateBody> {intl.formatMessage(messages.welcomeInfo, { url: ( diff --git a/src/routes/components/perspective/perspective.styles.ts b/src/routes/components/perspective/perspective.styles.ts index b8ebe1d6..366622ff 100644 --- a/src/routes/components/perspective/perspective.styles.ts +++ b/src/routes/components/perspective/perspective.styles.ts @@ -1,4 +1,4 @@ -import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md'; +import t_global_spacer_md from '@patternfly/react-tokens/dist/js/t_global_spacer_md'; import type React from 'react'; export const styles = { @@ -8,7 +8,7 @@ export const styles = { }, perspectiveLabel: { marginBottom: 0, - marginRight: global_spacer_md.var, + marginRight: t_global_spacer_md.var, whiteSpace: 'nowrap', }, perspectiveOptionLabel: { diff --git a/src/routes/components/resourceTypeahead/resourceFetch.tsx b/src/routes/components/resourceTypeahead/resourceFetch.tsx index 62ca952e..7e2838ed 100644 --- a/src/routes/components/resourceTypeahead/resourceFetch.tsx +++ b/src/routes/components/resourceTypeahead/resourceFetch.tsx @@ -1,4 +1,4 @@ -import type { ToolbarChipGroup } from '@patternfly/react-core'; +import type { ToolbarLabelGroup } from '@patternfly/react-core'; import type { Query } from 'api/queries/query'; import { getQuery } from 'api/queries/query'; import type { Resource } from 'api/resources/resource'; @@ -56,7 +56,7 @@ const ResourceFetch: React.FC<ResourceFetchProps> = ({ }) => { const { resource, resourceFetchStatus } = useMapToProps({ resourcePathsType, resourceType, search }); - const getOptions = (): ToolbarChipGroup[] => { + const getOptions = (): ToolbarLabelGroup[] => { let options = []; if (resource && resource.data && resource.data.length > 0 && resourceFetchStatus !== FetchStatus.inProgress) { options = resource.data.map(item => { diff --git a/src/routes/components/resourceTypeahead/resourceInput.tsx b/src/routes/components/resourceTypeahead/resourceInput.tsx index 75f935cf..5ea9cd66 100644 --- a/src/routes/components/resourceTypeahead/resourceInput.tsx +++ b/src/routes/components/resourceTypeahead/resourceInput.tsx @@ -1,4 +1,4 @@ -import type { ToolbarChipGroup } from '@patternfly/react-core'; +import type { ToolbarLabelGroup } from '@patternfly/react-core'; import { Button, Divider, @@ -23,7 +23,7 @@ interface ResourceInputOwnProps { isDisabled?: boolean; onChange?: (evt: FormEvent, value: string) => void; onClear?: () => void; - options?: ToolbarChipGroup[]; + options?: ToolbarLabelGroup[]; onSelect?: (value: string) => void; placeholder?: string; search?: string; @@ -69,12 +69,11 @@ const ResourceInput: React.FC<ResourceInputProps> = ({ {search && search.length && ( <TextInputGroupUtilities> <Button + icon={<TimesIcon />} variant="plain" onClick={handleOnClear} aria-label={intl.formatMessage(messages.typeaheadAriaClear)} - > - <TimesIcon /> - </Button> + /> </TextInputGroupUtilities> )} </TextInputGroup> diff --git a/src/routes/components/selectWrapper/select.styles.ts b/src/routes/components/selectWrapper/select.styles.ts index 0adf3439..87dad960 100644 --- a/src/routes/components/selectWrapper/select.styles.ts +++ b/src/routes/components/selectWrapper/select.styles.ts @@ -1,8 +1,8 @@ -import global_spacer_sm from '@patternfly/react-tokens/dist/js/global_spacer_sm'; +import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm'; import type React from 'react'; export const styles = { badge: { - marginLeft: global_spacer_sm.var, + marginLeft: t_global_spacer_sm.var, }, } as { [className: string]: React.CSSProperties }; diff --git a/src/routes/components/selectWrapper/selectWrapper.scss b/src/routes/components/selectWrapper/selectWrapper.scss index c89b9bbd..7e1cf3bc 100644 --- a/src/routes/components/selectWrapper/selectWrapper.scss +++ b/src/routes/components/selectWrapper/selectWrapper.scss @@ -2,10 +2,10 @@ // Workaround for missing "position" property .selectWrapper { - .pf-v5-c-menu-toggle { + .pf-v6-c-menu-toggle { max-width: unset; } - .pf-v5-c-menu-toggle__text { + .pf-v6-c-menu-toggle__text { width: max-content; } } diff --git a/src/routes/components/state/emptyFilterState/emptyFilterState.tsx b/src/routes/components/state/emptyFilterState/emptyFilterState.tsx index 7370aec9..0c308fb7 100644 --- a/src/routes/components/state/emptyFilterState/emptyFilterState.tsx +++ b/src/routes/components/state/emptyFilterState/emptyFilterState.tsx @@ -1,5 +1,5 @@ import type { MessageDescriptor } from '@formatjs/intl/src/types'; -import { Bullseye, EmptyState, EmptyStateBody, EmptyStateHeader, EmptyStateIcon } from '@patternfly/react-core'; +import { Bullseye, EmptyState, EmptyStateBody } from '@patternfly/react-core'; import { SearchIcon } from '@patternfly/react-icons/dist/esm/icons/search-icon'; import type { Query } from 'api/queries/query'; import { parseQuery } from 'api/queries/query'; @@ -101,10 +101,12 @@ const EmptyFilterStateBase: React.FC<EmptyFilterStateProps> = ({ } else if (showEmptyState2) { return <ItemScroll />; } else { - return <EmptyStateIcon icon={icon} />; + return null; } }; + const item = getItem(); + return ( <div style={{ @@ -112,9 +114,8 @@ const EmptyFilterStateBase: React.FC<EmptyFilterStateProps> = ({ ...(showMargin ? styles.containerMargin : {}), }} > - <EmptyState> - {getItem()} - <EmptyStateHeader titleText={intl.formatMessage(title)} headingLevel="h2" /> + <EmptyState headingLevel="h2" icon={!item ? icon : undefined} titleText={intl.formatMessage(title)}> + {item} <EmptyStateBody>{intl.formatMessage(subTitle)}</EmptyStateBody> </EmptyState> </div> diff --git a/src/routes/components/state/emptyValueState/emptyValueState.scss b/src/routes/components/state/emptyValueState/emptyValueState.scss index ada26156..eb0faca0 100644 --- a/src/routes/components/state/emptyValueState/emptyValueState.scss +++ b/src/routes/components/state/emptyValueState/emptyValueState.scss @@ -1,5 +1,5 @@ @import url("~@patternfly/patternfly/base/patternfly-variables.css"); .emptyValueContainer { - font-size: var(--pf-v5-global--FontSize--sm); + font-size: var(--pf-t--global--font--size--sm); } diff --git a/src/routes/components/state/errorState/errorState.tsx b/src/routes/components/state/errorState/errorState.tsx index fc3f60cf..dafbc2ba 100644 --- a/src/routes/components/state/errorState/errorState.tsx +++ b/src/routes/components/state/errorState/errorState.tsx @@ -1,10 +1,4 @@ -import { - EmptyState, - EmptyStateBody, - EmptyStateHeader, - EmptyStateIcon, - EmptyStateVariant, -} from '@patternfly/react-core'; +import { EmptyState, EmptyStateBody, EmptyStateVariant } from '@patternfly/react-core'; import { ErrorCircleOIcon } from '@patternfly/react-icons/dist/esm/icons/error-circle-o-icon'; import { LockIcon } from '@patternfly/react-icons/dist/esm/icons/lock-icon'; import type { AxiosError } from 'axios'; @@ -29,8 +23,13 @@ const ErrorStateBase: React.FC<ErrorStateProps> = ({ error, icon = ErrorCircleOI } return ( - <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font"> - <EmptyStateHeader titleText={title} icon={<EmptyStateIcon icon={icon} />} headingLevel="h5" /> + <EmptyState + headingLevel="h5" + icon={icon} + titleText={title} + variant={EmptyStateVariant.lg} + className="pf-m-redhat-font" + > <EmptyStateBody>{subTitle}</EmptyStateBody> </EmptyState> ); diff --git a/src/routes/components/state/loadingState/loadingState.tsx b/src/routes/components/state/loadingState/loadingState.tsx index 17a3f21b..293d92d9 100644 --- a/src/routes/components/state/loadingState/loadingState.tsx +++ b/src/routes/components/state/loadingState/loadingState.tsx @@ -1,4 +1,4 @@ -import { EmptyState, EmptyStateBody, EmptyStateHeader, EmptyStateVariant, Spinner } from '@patternfly/react-core'; +import { EmptyState, EmptyStateBody, EmptyStateVariant, Spinner } from '@patternfly/react-core'; import { intl as defaultIntl } from 'components/i18n'; import messages from 'locales/messages'; import React from 'react'; @@ -19,9 +19,8 @@ const LoadingStateBase: React.FC<LoadingStateProps> = ({ heading = intl.formatMessage(messages.loadingStateTitle), }) => { return ( - <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font"> + <EmptyState headingLevel="h5" titleText={heading} variant={EmptyStateVariant.lg} className="pf-m-redhat-font"> <Spinner size="lg" /> - <EmptyStateHeader titleText={heading} headingLevel="h5" /> <EmptyStateBody>{body}</EmptyStateBody> </EmptyState> ); diff --git a/src/routes/components/state/optimizedState/optimizedState.styles.ts b/src/routes/components/state/optimizedState/optimizedState.styles.ts deleted file mode 100644 index e1c6d9b8..00000000 --- a/src/routes/components/state/optimizedState/optimizedState.styles.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { global_success_color_100 } from '@patternfly/react-tokens/dist/js/global_success_color_100'; -import type React from 'react'; - -export const styles = { - icon: { - color: global_success_color_100.var, - }, -} as { [className: string]: React.CSSProperties }; diff --git a/src/routes/components/state/optimizedState/optimizedState.tsx b/src/routes/components/state/optimizedState/optimizedState.tsx index eddbcf77..3b212135 100644 --- a/src/routes/components/state/optimizedState/optimizedState.tsx +++ b/src/routes/components/state/optimizedState/optimizedState.tsx @@ -1,10 +1,4 @@ -import { - EmptyState, - EmptyStateBody, - EmptyStateHeader, - EmptyStateIcon, - EmptyStateVariant, -} from '@patternfly/react-core'; +import { EmptyState, EmptyStateBody, EmptyStateVariant } from '@patternfly/react-core'; import { CheckCircleIcon } from '@patternfly/react-icons/dist/esm/icons/check-circle-icon'; import { intl as defaultIntl } from 'components/i18n'; import messages from 'locales/messages'; @@ -12,8 +6,6 @@ import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; import { injectIntl } from 'react-intl'; -import { styles } from './optimizedState.styles'; - interface LoadingStateProps extends WrappedComponentProps { body?: string; heading?: string; @@ -28,12 +20,14 @@ const LoadingStateBase: React.FC<LoadingStateProps> = ({ heading = intl.formatMessage(messages.optimizedStateTitle), }) => { return ( - <EmptyState variant={EmptyStateVariant.lg} className="pf-m-redhat-font" isFullHeight> - <EmptyStateHeader - headingLevel="h5" - icon={<EmptyStateIcon style={styles.icon} icon={CheckCircleIcon} />} - titleText={heading} - /> + <EmptyState + headingLevel="h5" + icon={CheckCircleIcon} + titleText={heading} + variant={EmptyStateVariant.lg} + className="pf-m-redhat-font" + isFullHeight + > <EmptyStateBody>{body}</EmptyStateBody> </EmptyState> ); diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.styles.ts b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.styles.ts index f1e9ed73..c8dff60d 100644 --- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.styles.ts +++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.styles.ts @@ -1,38 +1,32 @@ -import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100'; -import global_spacer_lg from '@patternfly/react-tokens/dist/js/global_spacer_lg'; -import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md'; +import t_global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/t_global_background_color_100'; +import t_global_spacer_lg from '@patternfly/react-tokens/dist/js/t_global_spacer_lg'; +import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm'; import type React from 'react'; export const styles = { alertContainer: { - marginBottom: global_spacer_lg.value, + marginBottom: t_global_spacer_lg.value, }, codeBlock: { display: 'flex', }, - container: { - minHeight: '100vh', - }, currentActions: { height: '36px', }, + headerContainer: { + paddingBottom: 0, + }, optimizedState: { minHeight: '285px', }, - pagination: { - backgroundColor: global_BackgroundColor_light_100.value, - paddingBottom: global_spacer_md.value, - paddingTop: global_spacer_md.value, + paginationContainer: { + marginTop: t_global_spacer_sm.var, }, projectLink: { padding: 0, }, - tabs: { - backgroundColor: global_BackgroundColor_light_100.value, - paddingLeft: global_spacer_lg.value, - }, utilizationContainer: { - backgroundColor: global_BackgroundColor_light_100.value, - marginTop: global_spacer_lg.value, + backgroundColor: t_global_BackgroundColor_light_100.value, + marginTop: t_global_spacer_lg.value, }, } as { [className: string]: React.CSSProperties }; diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.tsx b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.tsx index 9b2ba170..c5dc6e35 100644 --- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.tsx +++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.tsx @@ -15,7 +15,7 @@ import { useDispatch, useSelector } from 'react-redux'; import { useLocation } from 'react-router-dom'; import type { AnyAction } from 'redux'; import type { ThunkDispatch } from 'redux-thunk'; -import { Loading } from 'routes/components/page/loading'; +import { LoadingState } from 'routes/components/state/loadingState'; import type { RootState } from 'store'; import { FetchStatus } from 'store/common'; import { rosActions, rosSelectors } from 'store/ros'; @@ -241,22 +241,24 @@ const OptimizationsBreakdown: React.FC<OptimizationsBreakdownProps> = () => { const [availableTabs] = useState(getAvailableTabs()); return ( - <div style={styles.container}> - <OptimizationsBreakdownHeader - breadcrumbLabel={breadcrumbLabel} - breadcrumbPath={breadcrumbPath} - currentInterval={currentInterval} - isDisabled={isLoading} - isOptimizationsDetails={isOptimizationsDetails} - onSelect={handleOnSelect} - optimizationType={getOptimizationType()} - projectPath={projectPath} - report={report} - /> - <div style={styles.tabs}>{getTabs(availableTabs)}</div> - <PageSection isFilled> + <> + <PageSection style={styles.headerContainer}> + <OptimizationsBreakdownHeader + breadcrumbLabel={breadcrumbLabel} + breadcrumbPath={breadcrumbPath} + currentInterval={currentInterval} + isDisabled={isLoading} + isOptimizationsDetails={isOptimizationsDetails} + onSelect={handleOnSelect} + optimizationType={getOptimizationType()} + projectPath={projectPath} + report={report} + /> + </PageSection> + <PageSection>{getTabs(availableTabs)}</PageSection> + <PageSection> {isLoading ? ( - <Loading + <LoadingState body={intl.formatMessage(messages.optimizationsLoadingStateDesc)} heading={intl.formatMessage(messages.optimizationsLoadingStateTitle)} /> @@ -267,8 +269,7 @@ const OptimizationsBreakdown: React.FC<OptimizationsBreakdownProps> = () => { </div> )} </PageSection> - . - </div> + </> ); }; diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.styles.ts b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.styles.ts index 5f013f19..7bdf66f5 100644 --- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.styles.ts +++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.styles.ts @@ -1,16 +1,16 @@ import { chart_color_blue_100 } from '@patternfly/react-tokens/dist/js/chart_color_blue_100'; import { chart_color_blue_200 } from '@patternfly/react-tokens/dist/js/chart_color_blue_200'; import { chart_color_blue_400 } from '@patternfly/react-tokens/dist/js/chart_color_blue_400'; -import { chart_color_red_200 } from '@patternfly/react-tokens/dist/js/chart_color_red_200'; +import { t_global_color_status_danger_200 } from '@patternfly/react-tokens/dist/js/t_global_color_status_danger_200'; export const chartStyles = { limit: { fill: 'none', }, - limitColorScale: [chart_color_red_200.value], + limitColorScale: [t_global_color_status_danger_200.var], request: { fill: 'none', }, - requestColorScale: [chart_color_blue_400.value], - usageColorScale: [chart_color_blue_100.value, chart_color_blue_200.value], + requestColorScale: [chart_color_blue_400.var], + usageColorScale: [chart_color_blue_100.var, chart_color_blue_200.var], }; diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.tsx b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.tsx index e97d161f..8dc6250a 100644 --- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.tsx +++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownChart.tsx @@ -10,7 +10,7 @@ import { ChartScatter, createContainer, getInteractiveLegendEvents, -} from '@patternfly/react-charts'; +} from '@patternfly/react-charts/victory'; import messages from 'locales/messages'; import React, { useEffect, useMemo, useState } from 'react'; import { useIntl } from 'react-intl'; diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.styles.ts b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.styles.ts index 67f78261..84a8d545 100644 --- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.styles.ts +++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.styles.ts @@ -1,20 +1,15 @@ -import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100'; -import global_FontSize_md from '@patternfly/react-tokens/dist/js/global_FontSize_md'; -import global_spacer_lg from '@patternfly/react-tokens/dist/js/global_spacer_lg'; -import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md'; -import global_spacer_sm from '@patternfly/react-tokens/dist/js/global_spacer_sm'; +import t_global_font_size_md from '@patternfly/react-tokens/dist/js/t_global_font_size_md'; +import t_global_spacer_lg from '@patternfly/react-tokens/dist/js/t_global_spacer_lg'; +import t_global_spacer_md from '@patternfly/react-tokens/dist/js/t_global_spacer_md'; +import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm'; import type React from 'react'; export const styles = { description: { - marginTop: global_spacer_lg.var, - }, - header: { - backgroundColor: global_BackgroundColor_light_100.var, - padding: global_spacer_lg.var, + marginTop: t_global_spacer_lg.var, }, infoIcon: { - fontSize: global_FontSize_md.value, + fontSize: t_global_font_size_md.value, }, infoTitle: { fontWeight: 'bold', @@ -22,15 +17,15 @@ export const styles = { title: { alignItems: 'center', display: 'flex', - marginTop: global_spacer_md.var, + marginTop: t_global_spacer_md.var, }, toolbar: { display: 'flex', justifyContent: 'space-between', - marginTop: global_spacer_lg.var, + marginTop: t_global_spacer_lg.var, }, warningIcon: { - paddingLeft: global_spacer_sm.var, + paddingLeft: t_global_spacer_sm.var, paddingTop: '2px', }, } as { [className: string]: React.CSSProperties }; diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.tsx b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.tsx index d989a789..1c9a9ee0 100644 --- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.tsx +++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownHeader.tsx @@ -1,13 +1,4 @@ -import { - Icon, - TextContent, - TextList, - TextListItem, - TextListItemVariants, - TextListVariants, - Title, - TitleSizes, -} from '@patternfly/react-core'; +import { Content, ContentVariants, Icon, Title, TitleSizes } from '@patternfly/react-core'; import { ExclamationTriangleIcon } from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon'; import type { RecommendationReportData } from 'api/ros/recommendations'; import messages from 'locales/messages'; @@ -70,42 +61,42 @@ const OptimizationsBreakdownHeader: React.FC<OptimizationsBreakdownHeaderProps> const workloadType = report?.workload_type ? report.workload_type : ''; return ( - <TextContent> - <TextList component={TextListVariants.dl}> - <TextListItem component={TextListItemVariants.dt}> + <Content> + <Content component={ContentVariants.dl}> + <Content component={ContentVariants.dt}> {intl.formatMessage(messages.optimizationsValues, { value: 'last_reported' })} - </TextListItem> - <TextListItem component={TextListItemVariants.dd}>{lastReported}</TextListItem> - <TextListItem component={TextListItemVariants.dt}> + </Content> + <Content component={ContentVariants.dd}>{lastReported}</Content> + <Content component={ContentVariants.dt}> {intl.formatMessage(messages.optimizationsValues, { value: 'cluster' })} - </TextListItem> - <TextListItem component={TextListItemVariants.dd}>{cluster}</TextListItem> - <TextListItem component={TextListItemVariants.dt}> + </Content> + <Content component={ContentVariants.dd}>{cluster}</Content> + <Content component={ContentVariants.dt}> {intl.formatMessage(messages.optimizationsValues, { value: 'project' })} - </TextListItem> - <TextListItem component={TextListItemVariants.dd}> + </Content> + <Content component={ContentVariants.dd}> <OptimizationsBreakdownProjectLink breadcrumbLabel={intl.formatMessage(messages.breakdownBackToOptimizationsProject, { value: project })} isOptimizationsDetails={isOptimizationsDetails} linkPath={projectPath} project={project} /> - </TextListItem> - <TextListItem component={TextListItemVariants.dt}> + </Content> + <Content component={ContentVariants.dt}> {intl.formatMessage(messages.optimizationsValues, { value: 'workload_type' })} - </TextListItem> - <TextListItem component={TextListItemVariants.dd}>{workloadType}</TextListItem> - <TextListItem component={TextListItemVariants.dt}> + </Content> + <Content component={ContentVariants.dd}>{workloadType}</Content> + <Content component={ContentVariants.dt}> {intl.formatMessage(messages.optimizationsValues, { value: 'workload' })} - </TextListItem> - <TextListItem component={TextListItemVariants.dd}>{workload}</TextListItem> - </TextList> - </TextContent> + </Content> + <Content component={ContentVariants.dd}>{workload}</Content> + </Content> + </Content> ); }; return ( - <header style={styles.header}> + <header> {getBackToLink()} <div style={styles.title}> <Title headingLevel="h1" size={TitleSizes['2xl']}> diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.styles.ts b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.styles.ts index be5cc17d..52de399f 100644 --- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.styles.ts +++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.styles.ts @@ -1,5 +1,5 @@ -import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md'; -import global_spacer_sm from '@patternfly/react-tokens/dist/js/global_spacer_sm'; +import t_global_spacer_md from '@patternfly/react-tokens/dist/js/t_global_spacer_md'; +import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm'; export const chartStyles = { chartHeight: 350, @@ -13,8 +13,8 @@ export const styles = { display: 'flex', }, dividerContainer: { - marginRight: `-${global_spacer_sm.value}`, - paddingBottom: global_spacer_md.value, - paddingTop: global_spacer_md.value, + marginRight: `-${t_global_spacer_sm.value}`, + paddingBottom: t_global_spacer_md.value, + paddingTop: t_global_spacer_md.value, }, } as { [className: string]: React.CSSProperties }; diff --git a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.tsx b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.tsx index a1c6ab48..e3c8e949 100644 --- a/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.tsx +++ b/src/routes/optimizations/optimizationsBreakdown/optimizationsBreakdownUtilization.tsx @@ -125,38 +125,40 @@ const OptimizationsBreakdownUtilization: React.FC<OptimizationsBreakdownUtilizat }; return ( - <Grid hasGutter> - <GridItem xl={6}> - <div style={styles.container}> - <div style={styles.cardContainer}> - <Card isPlain> - <CardTitle> - <Title headingLevel="h2" size={TitleSizes.lg}> - {intl.formatMessage(messages.cpuUtilization)} - </Title> - </CardTitle> - <CardBody>{getChart(UsageType.cpuUsage, RecommendationType.cpu)}</CardBody> - </Card> + <Card> + <Grid hasGutter> + <GridItem xl={6}> + <div style={styles.container}> + <div style={styles.cardContainer}> + <Card isPlain> + <CardTitle> + <Title headingLevel="h2" size={TitleSizes.lg}> + {intl.formatMessage(messages.cpuUtilization)} + </Title> + </CardTitle> + <CardBody>{getChart(UsageType.cpuUsage, RecommendationType.cpu)}</CardBody> + </Card> + </div> + <Divider + orientation={{ + default: 'vertical', + }} + style={styles.dividerContainer} + /> </div> - <Divider - orientation={{ - default: 'vertical', - }} - style={styles.dividerContainer} - /> - </div> - </GridItem> - <GridItem xl={6}> - <Card isPlain> - <CardTitle> - <Title headingLevel="h2" size={TitleSizes.lg}> - {intl.formatMessage(messages.memoryUtilization)} - </Title> - </CardTitle> - <CardBody>{getChart(UsageType.memoryUsage, RecommendationType.memory)}</CardBody> - </Card> - </GridItem> - </Grid> + </GridItem> + <GridItem xl={6}> + <Card isPlain> + <CardTitle> + <Title headingLevel="h2" size={TitleSizes.lg}> + {intl.formatMessage(messages.memoryUtilization)} + </Title> + </CardTitle> + <CardBody>{getChart(UsageType.memoryUsage, RecommendationType.memory)}</CardBody> + </Card> + </GridItem> + </Grid> + </Card> ); }; diff --git a/src/routes/optimizations/optimizationsDetails/optimizationsDetails.styles.ts b/src/routes/optimizations/optimizationsDetails/optimizationsDetails.styles.ts deleted file mode 100644 index bcd3af1a..00000000 --- a/src/routes/optimizations/optimizationsDetails/optimizationsDetails.styles.ts +++ /dev/null @@ -1,14 +0,0 @@ -import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100'; -import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md'; -import type React from 'react'; - -export const styles = { - container: { - minHeight: '100vh', - }, - pagination: { - backgroundColor: global_BackgroundColor_light_100.value, - paddingBottom: global_spacer_md.value, - paddingTop: global_spacer_md.value, - }, -} as { [className: string]: React.CSSProperties }; diff --git a/src/routes/optimizations/optimizationsDetails/optimizationsDetails.tsx b/src/routes/optimizations/optimizationsDetails/optimizationsDetails.tsx index 7ce925f3..70e123c4 100644 --- a/src/routes/optimizations/optimizationsDetails/optimizationsDetails.tsx +++ b/src/routes/optimizations/optimizationsDetails/optimizationsDetails.tsx @@ -1,8 +1,7 @@ -import { PageSection } from '@patternfly/react-core'; +import { Card, CardBody, PageSection } from '@patternfly/react-core'; import React from 'react'; import { OptimizationsTable } from 'routes/optimizations/optimizationsTable'; -import { styles } from './optimizationsDetails.styles'; import { OptimizationsDetailsHeader } from './optimizationsDetailsHeader'; interface OptimizationsDetailsOwnProps { @@ -23,19 +22,25 @@ const OptimizationsDetails: React.FC<OptimizationsDetailsProps> = ({ projectPath, }) => { return ( - <div style={styles.container}> - <OptimizationsDetailsHeader /> - <PageSection isFilled> - <OptimizationsTable - breadcrumbLabel={breadcrumbLabel} - breadcrumbPath={breadcrumbPath} - isOptimizationsDetails - linkPath={linkPath} - linkState={linkState} - projectPath={projectPath} - /> + <> + <PageSection> + <OptimizationsDetailsHeader /> </PageSection> - </div> + <PageSection> + <Card> + <CardBody> + <OptimizationsTable + breadcrumbLabel={breadcrumbLabel} + breadcrumbPath={breadcrumbPath} + isOptimizationsDetails + linkPath={linkPath} + linkState={linkState} + projectPath={projectPath} + /> + </CardBody> + </Card> + </PageSection> + </> ); }; diff --git a/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.styles.ts b/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.styles.ts index d82039c6..5a7b19ef 100644 --- a/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.styles.ts +++ b/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.styles.ts @@ -1,22 +1,15 @@ -import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100'; -import global_FontSize_md from '@patternfly/react-tokens/dist/js/global_FontSize_md'; -import global_spacer_lg from '@patternfly/react-tokens/dist/js/global_spacer_lg'; -import global_spacer_sm from '@patternfly/react-tokens/dist/js/global_spacer_sm'; +import t_global_font_size_md from '@patternfly/react-tokens/dist/js/t_global_font_size_md'; +import t_global_spacer_sm from '@patternfly/react-tokens/dist/js/t_global_spacer_sm'; import type React from 'react'; export const styles = { - header: { - backgroundColor: global_BackgroundColor_light_100.var, - padding: global_spacer_lg.var, - }, - headerContent: { - display: 'flex', - justifyContent: 'space-between', + headerContainer: { + paddingBottom: 0, }, infoIcon: { - fontSize: global_FontSize_md.value, + fontSize: t_global_font_size_md.value, }, title: { - paddingBottom: global_spacer_sm.var, + paddingBottom: t_global_spacer_sm.var, }, } as { [className: string]: React.CSSProperties }; diff --git a/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.tsx b/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.tsx index 6b13f785..dbcceed4 100644 --- a/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.tsx +++ b/src/routes/optimizations/optimizationsDetails/optimizationsDetailsHeader.tsx @@ -16,40 +16,37 @@ const OptimizationsDetailsHeader: React.FC<OptimizationsDetailsHeaderProps> = () const intl = useIntl(); return ( - <header style={styles.header}> - <div style={styles.headerContent}> - <Title headingLevel="h1" style={styles.title} size={TitleSizes['2xl']}> - {intl.formatMessage(messages.optimizations)} - <span style={styles.infoIcon}> - <Popover - aria-label={intl.formatMessage(messages.optimizationsInfoArialLabel)} - enableFlip - bodyContent={ - <> - <p>{intl.formatMessage(messages.optimizationsInfoTitle)}</p> - <br /> - <p> - {intl.formatMessage(messages.optimizationsInfoDesc, { - learnMore: ( - <a href={intl.formatMessage(messages.docsOptimizations)} rel="noreferrer" target="_blank"> - {intl.formatMessage(messages.learnMore)} - </a> - ), - })} - </p> - </> - } - > - <Button - aria-label={intl.formatMessage(messages.optimizationsInfoButtonArialLabel)} - variant={ButtonVariant.plain} - > - <OutlinedQuestionCircleIcon /> - </Button> - </Popover> - </span> - </Title> - </div> + <header style={styles.headerContainer}> + <Title headingLevel="h1" style={styles.title} size={TitleSizes['2xl']}> + {intl.formatMessage(messages.optimizations)} + <span style={styles.infoIcon}> + <Popover + aria-label={intl.formatMessage(messages.optimizationsInfoArialLabel)} + enableFlip + bodyContent={ + <> + <p>{intl.formatMessage(messages.optimizationsInfoTitle)}</p> + <br /> + <p> + {intl.formatMessage(messages.optimizationsInfoDesc, { + learnMore: ( + <a href={intl.formatMessage(messages.docsOptimizations)} rel="noreferrer" target="_blank"> + {intl.formatMessage(messages.learnMore)} + </a> + ), + })} + </p> + </> + } + > + <Button + icon={<OutlinedQuestionCircleIcon />} + aria-label={intl.formatMessage(messages.optimizationsInfoButtonArialLabel)} + variant={ButtonVariant.plain} + /> + </Popover> + </span> + </Title> </header> ); }; diff --git a/src/routes/optimizations/optimizationsSummary/optimizations.styles.ts b/src/routes/optimizations/optimizationsSummary/optimizations.styles.ts index cf85bacc..de2d9e3d 100644 --- a/src/routes/optimizations/optimizationsSummary/optimizations.styles.ts +++ b/src/routes/optimizations/optimizationsSummary/optimizations.styles.ts @@ -1,8 +1,8 @@ -import global_FontSize_md from '@patternfly/react-tokens/dist/js/global_FontSize_md'; +import t_global_font_size_md from '@patternfly/react-tokens/dist/js/t_global_font_size_md'; import type React from 'react'; export const styles = { infoIcon: { - fontSize: global_FontSize_md.value, + fontSize: t_global_font_size_md.value, }, } as { [className: string]: React.CSSProperties }; diff --git a/src/routes/optimizations/optimizationsSummary/optimizationsSummary.scss b/src/routes/optimizations/optimizationsSummary/optimizationsSummary.scss index 7a01575b..1954db4b 100644 --- a/src/routes/optimizations/optimizationsSummary/optimizationsSummary.scss +++ b/src/routes/optimizations/optimizationsSummary/optimizationsSummary.scss @@ -2,8 +2,8 @@ .skeleton { height: 125px; - margin-bottom: var(--pf-v5-global--spacer--md); - margin-top: var(--pf-v5-global--spacer--md); + margin-bottom: var(--pf-t--global--font--size--md); + margin-top: var(--pf-t--global--font--size--md); } .summary { diff --git a/src/routes/optimizations/optimizationsSummary/optimizationsSummary.tsx b/src/routes/optimizations/optimizationsSummary/optimizationsSummary.tsx index bb02412f..191735df 100644 --- a/src/routes/optimizations/optimizationsSummary/optimizationsSummary.tsx +++ b/src/routes/optimizations/optimizationsSummary/optimizationsSummary.tsx @@ -81,11 +81,10 @@ const OptimizationsSummary: React.FC<OptimizationsSummaryProps> = ({ } > <Button + icon={<OutlinedQuestionCircleIcon />} aria-label={intl.formatMessage(messages.optimizationsInfoButtonArialLabel)} variant={ButtonVariant.plain} - > - <OutlinedQuestionCircleIcon /> - </Button> + /> </Popover> </span> </Title> diff --git a/src/routes/optimizations/optimizationsTable/optimizationsTable.tsx b/src/routes/optimizations/optimizationsTable/optimizationsTable.tsx index a7aca803..eb5120a6 100644 --- a/src/routes/optimizations/optimizationsTable/optimizationsTable.tsx +++ b/src/routes/optimizations/optimizationsTable/optimizationsTable.tsx @@ -11,9 +11,9 @@ import { useDispatch, useSelector } from 'react-redux'; import { useLocation } from 'react-router-dom'; import type { AnyAction } from 'redux'; import type { ThunkDispatch } from 'redux-thunk'; -import { Loading } from 'routes/components/page/loading'; import { NotAvailable } from 'routes/components/page/notAvailable'; import { NotConfigured } from 'routes/components/page/notConfigured'; +import { LoadingState } from 'routes/components/state/loadingState'; import { styles } from 'routes/optimizations/optimizationsBreakdown/optimizationsBreakdown.styles'; import { getOrderById, getOrderByValue } from 'routes/utils/orderBy'; import * as queryUtils from 'routes/utils/query'; @@ -198,14 +198,14 @@ const OptimizationsTable: React.FC<OptimizationsTableProps> = ({ <> {getToolbar()} {reportFetchStatus === FetchStatus.inProgress ? ( - <Loading + <LoadingState body={intl.formatMessage(messages.optimizationsLoadingStateDesc)} heading={intl.formatMessage(messages.optimizationsLoadingStateTitle)} /> ) : ( <> {getTable()} - <div style={styles.pagination}>{getPagination(isDisabled, true)}</div> + <div style={styles.paginationContainer}>{getPagination(isDisabled, true)}</div> </> )} </> diff --git a/src/routes/optimizations/optimizationsTable/optimizationsToolbar.tsx b/src/routes/optimizations/optimizationsTable/optimizationsToolbar.tsx index 0254434b..ddddeb6d 100644 --- a/src/routes/optimizations/optimizationsTable/optimizationsToolbar.tsx +++ b/src/routes/optimizations/optimizationsTable/optimizationsToolbar.tsx @@ -1,4 +1,4 @@ -import type { ToolbarChipGroup } from '@patternfly/react-core'; +import type { ToolbarLabelGroup } from '@patternfly/react-core'; import type { RosQuery } from 'api/queries/rosQuery'; import messages from 'locales/messages'; import React from 'react'; @@ -20,7 +20,7 @@ interface OptimizationsToolbarOwnProps { } interface OptimizationsToolbarState { - categoryOptions?: ToolbarChipGroup[]; + categoryOptions?: ToolbarLabelGroup[]; } type OptimizationsToolbarProps = OptimizationsToolbarOwnProps & WrappedComponentProps; @@ -35,7 +35,7 @@ class OptimizationsToolbarBase extends React.Component<OptimizationsToolbarProps }); } - private getCategoryOptions = (): ToolbarChipGroup[] => { + private getCategoryOptions = (): ToolbarLabelGroup[] => { const { hideCluster, hideProject, intl } = this.props; const options = [ diff --git a/src/routes/staging/optimizations/optimizationsBadgeStaging.tsx b/src/routes/staging/optimizations/optimizationsBadgeStaging.tsx index 288d8f99..35ca1347 100644 --- a/src/routes/staging/optimizations/optimizationsBadgeStaging.tsx +++ b/src/routes/staging/optimizations/optimizationsBadgeStaging.tsx @@ -14,7 +14,7 @@ const OptimizationsBadgeStaging: React.FC<OptimizationsBadgeStagingProps> = () = const projectFilter = 'openshift'; return ( - <PageSection isFilled> + <PageSection> <OptimizationsBadge cluster={clusterFilter} project={projectFilter} /> </PageSection> ); diff --git a/src/routes/staging/optimizations/optimizationsLinkStaging.tsx b/src/routes/staging/optimizations/optimizationsLinkStaging.tsx index a807316c..e0f69889 100644 --- a/src/routes/staging/optimizations/optimizationsLinkStaging.tsx +++ b/src/routes/staging/optimizations/optimizationsLinkStaging.tsx @@ -33,7 +33,7 @@ const OptimizationsLinkStaging: React.FC<OptimizationsLinkStagingProps> = () => }); return ( - <PageSection isFilled> + <PageSection> <OptimizationsLink cluster={clusterFilter} project={projectFilter} linkPath={linkPath} linkState={state} /> </PageSection> ); diff --git a/src/routes/staging/optimizations/optimizationsSummaryStaging.tsx b/src/routes/staging/optimizations/optimizationsSummaryStaging.tsx index f7f93f87..b2fce5a6 100644 --- a/src/routes/staging/optimizations/optimizationsSummaryStaging.tsx +++ b/src/routes/staging/optimizations/optimizationsSummaryStaging.tsx @@ -12,7 +12,7 @@ type OptimizationsSummaryStagingProps = OptimizationsSummaryStagingOwnProps; const OptimizationsSummaryStaging: React.FC<OptimizationsSummaryStagingProps> = () => { return ( - <PageSection isFilled> + <PageSection> <OptimizationsSummary linkPath={formatPath(routes.optimizationsDetails.path)} /> </PageSection> ); diff --git a/src/routes/staging/optimizations/optimizationsTableStaging.tsx b/src/routes/staging/optimizations/optimizationsTableStaging.tsx index 7179c13d..50e5c6ea 100644 --- a/src/routes/staging/optimizations/optimizationsTableStaging.tsx +++ b/src/routes/staging/optimizations/optimizationsTableStaging.tsx @@ -34,7 +34,7 @@ const OptimizationsDetailsStaging: React.FC<OptimizationsDetailsStagingProps> = const projectFilter = 'openshift'; return ( - <PageSection isFilled> + <PageSection> <OptimizationsTable breadcrumbLabel={ intl.formatMessage(messages.breakdownBackToOptimizationsProject, { value: groupByValue }) as string diff --git a/src/styles/global.css b/src/styles/global.css index 1eff2a25..abdef901 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -8,8 +8,8 @@ body { display: flex; } -.pf-v5-l-grid > *, -.pf-v5-l-grid .pf-v5-l-grid__item { +.pf-v6-l-grid > *, +.pf-v6-l-grid .pf-v6-l-grid__item { min-height: 0; min-width: 0; } diff --git a/src/styles/revert.css b/src/styles/revert.css index 4f16bad4..95151f85 100644 --- a/src/styles/revert.css +++ b/src/styles/revert.css @@ -1,10 +1,10 @@ /* For testing only */ /* https://developer.mozilla.org/en-US/docs/Web/CSS/revert */ -[class*="pf-v5-c"], -[class*="pf-v5-c"] *, -[class*="pf-v5-l"], -[class*="pf-v5-l"] *, -[class*="pf-v5-u"], -[class*="pf-v5-u"] * { +[class*="pf-v6-c"], +[class*="pf-v6-c"] *, +[class*="pf-v6-l"], +[class*="pf-v6-l"] *, +[class*="pf-v6-u"], +[class*="pf-v6-u"] * { all: revert; } diff --git a/src/styles/theme.ts b/src/styles/theme.ts index 01dbc9f0..55c7a49a 100644 --- a/src/styles/theme.ts +++ b/src/styles/theme.ts @@ -1,29 +1,26 @@ -import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100'; -import global_BoxShadow_sm_right from '@patternfly/react-tokens/dist/js/global_BoxShadow_sm_right'; -import global_breakpoint_lg from '@patternfly/react-tokens/dist/js/global_breakpoint_lg'; -import global_breakpoint_md from '@patternfly/react-tokens/dist/js/global_breakpoint_md'; -import global_breakpoint_sm from '@patternfly/react-tokens/dist/js/global_breakpoint_sm'; -import global_breakpoint_xl from '@patternfly/react-tokens/dist/js/global_breakpoint_xl'; -import global_breakpoint_xs from '@patternfly/react-tokens/dist/js/global_breakpoint_xs'; -import global_Color_dark_100 from '@patternfly/react-tokens/dist/js/global_Color_dark_100'; +import t_global_background_color_100 from '@patternfly/react-tokens/dist/js/t_global_background_color_100'; +import t_global_box_shadow_sm_right from '@patternfly/react-tokens/dist/js/t_global_box_shadow_sm_right'; +import t_global_breakpoint_lg from '@patternfly/react-tokens/dist/js/t_global_breakpoint_lg'; +import t_global_breakpoint_md from '@patternfly/react-tokens/dist/js/t_global_breakpoint_md'; +import t_global_breakpoint_sm from '@patternfly/react-tokens/dist/js/t_global_breakpoint_sm'; +import t_global_breakpoint_xl from '@patternfly/react-tokens/dist/js/t_global_breakpoint_xl'; +import t_global_breakpoint_xs from '@patternfly/react-tokens/dist/js/t_global_breakpoint_xs'; const createBreakpoint = (size: string) => `@media (min-width: ${size})`; const breakpoints = { - xs: createBreakpoint(global_breakpoint_xs.value), - sm: createBreakpoint(global_breakpoint_sm.value), - md: createBreakpoint(global_breakpoint_md.value), - lg: createBreakpoint(global_breakpoint_lg.value), - xl: createBreakpoint(global_breakpoint_xl.value), + xs: createBreakpoint(t_global_breakpoint_xs.value), + sm: createBreakpoint(t_global_breakpoint_sm.value), + md: createBreakpoint(t_global_breakpoint_md.value), + lg: createBreakpoint(t_global_breakpoint_lg.value), + xl: createBreakpoint(t_global_breakpoint_xl.value), }; export const theme = { breakpoints, page_breakpoint: breakpoints.md, page_masthead_height: 70, - page_sidebar_background: global_BackgroundColor_light_100.value, - page_sidebar_boxShadow: global_BoxShadow_sm_right.value, + page_sidebar_background: t_global_background_color_100.value, + page_sidebar_boxShadow: t_global_box_shadow_sm_right.value, page_sidebar_width: 300, - verticalNav_color: global_Color_dark_100.value, - verticalNav_link_color: global_Color_dark_100.value, };