From 13ab367bf3d4f0749270bba1ce91c2ec697c21ac Mon Sep 17 00:00:00 2001 From: openshift-pipelines-bot Date: Tue, 24 Mar 2026 03:37:26 +0000 Subject: [PATCH] [bot] Update main from openshift-pipelines/console-plugin to 0b8374df12b9c1361b0e12aa7dd906127dca1800 $ git diff --stat 0b8374df12b9c1361b0e12aa7dd906127dca1800.. https://github.com/openshift-pipelines/console-plugin/compare/0b8374df12b9c1361b0e12aa7dd906127dca1800.. --- head | 1 + upstream/.ci-operator.yaml | 6 +- upstream/.github/renovate.json | 2 +- .../workflows/publish_container_image.yaml | 22 +- upstream/.gitignore | 3 +- upstream/.konflux/.placeholder | 0 upstream/.konflux/README.md | 3 - upstream/.konflux/dockerfiles/.placeholder | 0 .../dockerfiles/console-plugin.Dockerfile | 33 - upstream/.konflux/patches/.placeholder | 0 upstream/.konflux/rpms/rpms.in.yaml | 10 - upstream/.konflux/rpms/rpms.lock.yaml | 104 - upstream/.konflux/rpms/ubi.repo | 62 - .../tekton/next/.tekton/docker-build-ta.yaml | 497 - upstream/.konflux/yarn.lock | 13658 ------- upstream/.tekton/.placeholder | 0 ...ugin-next-console-plugin-pull-request.yaml | 51 - ...nsole-plugin-next-console-plugin-push.yaml | 45 - upstream/.yarnrc | 7 - upstream/.yarnrc.yml | 16 + upstream/Dockerfile | 20 +- upstream/Dockerfile.without_builder | 4 +- upstream/OWNERS | 3 + upstream/console-extensions.json | 191 +- .../pipelines/create-from-add-options.feature | 14 +- .../create-from-builder-page.feature | 18 +- .../pipelines/data-source-filter.feature | 12 +- .../pipelines/pipeline-metrics.feature | 2 +- .../en/plugin__pipelines-console-plugin.json | 20 +- .../es/plugin__pipelines-console-plugin.json | 82 +- .../fr/plugin__pipelines-console-plugin.json | 112 +- .../ja/plugin__pipelines-console-plugin.json | 98 +- .../ko/plugin__pipelines-console-plugin.json | 82 +- .../zh/plugin__pipelines-console-plugin.json | 70 +- upstream/package.json | 35 +- upstream/scripts/build_container.sh | 3 +- upstream/src/components/Loading.tsx | 25 +- .../components/approval-tasks/ApprovalRow.tsx | 4 +- .../ApprovalTaskActionDropdown.tsx | 57 +- .../approval-tasks/ApprovalTasksList.tsx | 2 +- .../__tests__/approval-group-utils.spec.ts | 279 + .../approval-details/ApproverList.tsx | 37 +- .../pipeline-approval-context.tsx | 201 +- .../approval-tasks/modal/Approval.tsx | 74 +- .../modal/__tests__/Approval.spec.tsx | 696 + .../components/catalog/apis/artifactHub.ts | 5 + upstream/src/components/hooks/hooks.ts | 23 +- .../hooks/useMultiClusterProxyService.ts | 28 + .../hooks/useMultiClusterTaskRuns.ts | 199 + .../usePersistedFiltersForPipelineOverview.ts | 111 + upstream/src/components/hooks/useTaskRuns.ts | 226 +- .../src/components/hooks/useTektonResults.ts | 4 +- .../src/components/logs/LogSnippetBlock.tsx | 6 + .../src/components/logs/LogSnippetFromPod.tsx | 54 +- upstream/src/components/logs/Logs.tsx | 222 +- .../components/logs/LogsWrapperComponent.tsx | 181 +- .../src/components/logs/MultiStreamLogs.scss | 58 - .../src/components/logs/MultiStreamLogs.tsx | 26 +- .../components/logs/RunDetailsErrorLog.tsx | 11 +- .../src/components/logs/TektonTaskRunLog.scss | 11 + .../src/components/logs/TektonTaskRunLog.tsx | 65 +- .../src/components/logs/ansi-log-colors.scss | 122 + upstream/src/components/logs/logs-utils.ts | 141 +- .../pipeline-builder/CodeEditorField.tsx | 9 +- .../pipeline-builder/PipelineBuilderForm.tsx | 29 +- .../__tests__/CodeEditorField.spec.tsx | 103 + .../pipeline-overview/PipelineRunItem.tsx | 20 +- .../PipelineRunCustomDetails.tsx | 15 +- .../PipelineRunDetailsPage.tsx | 23 +- .../pipelineRuns-details/PipelineRunLogs.scss | 10 + .../pipelineRuns-details/PipelineRunLogs.tsx | 499 +- .../PipelineRunVisualization.tsx | 53 +- .../__tests__/PipelineRunLogs.spec.tsx | 117 + .../pipelineRuns-list/PipelineRunsRow.tsx | 20 +- .../usePipelineRunsColumns.ts | 5 +- .../__tests__/pipeline-step-utils.spec.ts | 22 +- .../pipelines-details/pipeline-step-utils.ts | 17 +- .../components/pipelines-list/PipelineRow.tsx | 12 +- .../status/PipelineRunStatus.tsx | 4 + .../status/StatusPopoverContent.tsx | 11 +- .../PipelinesAverageDuration.tsx | 125 +- .../PipelinesAverageDurationK8s.tsx | 120 +- .../src/components/pipelines-metrics/hooks.ts | 29 +- .../pipelines-metrics/safe-fetch-hook.ts | 23 +- .../pipelines-metrics/url-poll-hook.ts | 23 +- .../PipelineRunsDurationCard.tsx | 181 +- .../PipelineRunsDurationCardK8s.tsx | 188 +- .../PipelineRunsNumbersChart.tsx | 126 +- .../PipelineRunsNumbersChartK8s.tsx | 122 +- .../PipelineRunsStatusCard.tsx | 283 +- .../PipelineRunsStatusCardK8s.tsx | 285 +- .../PipelineRunsTotalCard.tsx | 173 +- .../PipelineRunsTotalCardK8s.tsx | 152 +- .../pipelines-overview/PipelinesOverview.scss | 6 - .../PipelinesOverviewPage.tsx | 55 +- .../PipelinesOverviewPageK8s.tsx | 54 +- .../__tests__/PipelinesOverview.spec.tsx | 17 + .../PipelineRunsForPipelinesList.tsx | 2 +- .../PipelineRunsForPipelinesListK8s.tsx | 2 +- .../list-pages/PipelineRunsListPage.tsx | 144 +- .../list-pages/PipelineRunsListPageK8s.tsx | 138 +- .../components/pipelines-overview/utils.ts | 4 +- .../pipelines-tasks/TaskRunStatus.tsx | 7 + .../pipelines-tasks/TaskRunsList.tsx | 18 +- .../pipelines-tasks/TaskRunsRow.tsx | 14 +- .../TaskRunDetailsStatus.tsx | 6 + .../tasks-details-pages/TaskRunLog.scss | 8 + .../quick-search/utils/quick-search-utils.tsx | 2 +- .../PipelineRunStatusPopoverContent.tsx | 16 +- .../status/StatusPopoverContent.tsx | 11 +- .../task-quicksearch/PipelineQuickSearch.tsx | 79 +- .../pipeline-quicksearch-utils.ts | 9 +- .../utils/__tests__/pipeline-approval-data.ts | 23 + .../components/utils/approval-group-utils.ts | 74 + .../src/components/utils/multi-cluster-api.ts | 78 + .../utils/pipeline-approval-utils.ts | 2 +- upstream/src/components/utils/proxy.ts | 7 +- upstream/src/components/utils/summary-api.ts | 68 +- upstream/src/components/utils/utils.ts | 21 +- upstream/src/consts.ts | 4 + upstream/src/models.ts | 15 + .../actions/pipelines-overview-filters.ts | 12 + upstream/src/redux/index.ts | 3 + .../reducers/pipelines-overview-filters.ts | 37 + .../selectors/pipelines-overview-filters.ts | 14 + upstream/src/types/approver.ts | 29 + upstream/src/types/coreTekton.ts | 6 + upstream/src/types/pipelineRun.ts | 1 + upstream/src/types/resultsSummary.ts | 1 + upstream/src/types/task.ts | 10 +- upstream/test-frontend.sh | 4 + upstream/test-prow-e2e.sh | 10 + upstream/webpack.config.ts | 5 + upstream/yarn-1.22.22.tgz | Bin 1238429 -> 0 bytes upstream/yarn.lock | 33491 +++++++++------- 135 files changed, 25353 insertions(+), 30107 deletions(-) create mode 100644 head delete mode 100644 upstream/.konflux/.placeholder delete mode 100644 upstream/.konflux/README.md delete mode 100644 upstream/.konflux/dockerfiles/.placeholder delete mode 100644 upstream/.konflux/dockerfiles/console-plugin.Dockerfile delete mode 100644 upstream/.konflux/patches/.placeholder delete mode 100644 upstream/.konflux/rpms/rpms.in.yaml delete mode 100644 upstream/.konflux/rpms/rpms.lock.yaml delete mode 100644 upstream/.konflux/rpms/ubi.repo delete mode 100644 upstream/.konflux/tekton/next/.tekton/docker-build-ta.yaml delete mode 100644 upstream/.konflux/yarn.lock delete mode 100644 upstream/.tekton/.placeholder delete mode 100644 upstream/.tekton/console-plugin-next-console-plugin-pull-request.yaml delete mode 100644 upstream/.tekton/console-plugin-next-console-plugin-push.yaml delete mode 100644 upstream/.yarnrc create mode 100644 upstream/.yarnrc.yml create mode 100644 upstream/src/components/approval-tasks/__tests__/approval-group-utils.spec.ts create mode 100644 upstream/src/components/approval-tasks/modal/__tests__/Approval.spec.tsx create mode 100644 upstream/src/components/hooks/useMultiClusterProxyService.ts create mode 100644 upstream/src/components/hooks/useMultiClusterTaskRuns.ts create mode 100644 upstream/src/components/hooks/usePersistedFiltersForPipelineOverview.ts delete mode 100644 upstream/src/components/logs/MultiStreamLogs.scss create mode 100644 upstream/src/components/logs/TektonTaskRunLog.scss create mode 100644 upstream/src/components/logs/ansi-log-colors.scss create mode 100644 upstream/src/components/pipeline-builder/__tests__/CodeEditorField.spec.tsx create mode 100644 upstream/src/components/pipelineRuns-details/__tests__/PipelineRunLogs.spec.tsx create mode 100644 upstream/src/components/utils/approval-group-utils.ts create mode 100644 upstream/src/components/utils/multi-cluster-api.ts create mode 100644 upstream/src/redux/actions/pipelines-overview-filters.ts create mode 100644 upstream/src/redux/index.ts create mode 100644 upstream/src/redux/reducers/pipelines-overview-filters.ts create mode 100644 upstream/src/redux/selectors/pipelines-overview-filters.ts create mode 100644 upstream/src/types/approver.ts delete mode 100644 upstream/yarn-1.22.22.tgz diff --git a/head b/head new file mode 100644 index 00000000..f29c74c2 --- /dev/null +++ b/head @@ -0,0 +1 @@ +0b8374df12b9c1361b0e12aa7dd906127dca1800 diff --git a/upstream/.ci-operator.yaml b/upstream/.ci-operator.yaml index 328d33f7..3d72f1b5 100644 --- a/upstream/.ci-operator.yaml +++ b/upstream/.ci-operator.yaml @@ -1,4 +1,4 @@ build_root_image: - name: nodejs-18 - namespace: openshift - tag: latest + name: console-plugin-test-cypress + namespace: ci + tag: node20-yarn4 \ No newline at end of file diff --git a/upstream/.github/renovate.json b/upstream/.github/renovate.json index dda28af9..1c120031 100644 --- a/upstream/.github/renovate.json +++ b/upstream/.github/renovate.json @@ -3,7 +3,6 @@ "extends": [ "github>konflux-ci/mintmaker//config/renovate/renovate.json" ], - "branchPrefix": "osp-mintmaker/", "enabledManagers": [ "tekton", "dockerfile", @@ -15,6 +14,7 @@ "konflux", "mintmaker" ], + "ignorePaths": ["upstream/**"], "autoApprove": true, "packageRules": [ { diff --git a/upstream/.github/workflows/publish_container_image.yaml b/upstream/.github/workflows/publish_container_image.yaml index 7613cc46..af21d137 100644 --- a/upstream/.github/workflows/publish_container_image.yaml +++ b/upstream/.github/workflows/publish_container_image.yaml @@ -1,15 +1,25 @@ -name: publish container images +name: Build and Publish Container + on: push: branches: - main - release-v* # example: release-v1.14 + - main_ocp_4.22 tags: ['v*'] + pull_request: + branches: + - main + - main_ocp_4.22 + workflow_dispatch: jobs: setup: name: build container runs-on: ubuntu-latest + permissions: + contents: read + packages: write steps: - name: Checkout source code @@ -17,11 +27,15 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: '18' + node-version: '20' + + - name: Enable Corepack + run: corepack enable - uses: docker/setup-buildx-action@v3 - name: Login in to ghcr.io registry + if: github.event_name != 'pull_request' uses: docker/login-action@v3 with: registry: ghcr.io @@ -41,5 +55,5 @@ jobs: run: ./scripts/build_container.sh env: SUPPORT_MULTI_ARCH: "true" - CONSOLE_PLUGIN_IMAGE_REPO: 'ghcr.io/${{ github.repository }}' - CONSOLE_PLUGIN_IMAGE_TAG: '${{ github.ref_name }}' + CONSOLE_PLUGIN_IMAGE_REPO: ${{ github.event_name == 'pull_request' && format('ttl.sh/{0}/console-plugin-pr-{1}', github.repository, github.event.pull_request.number) || format('ghcr.io/{0}', github.repository) }} + CONSOLE_PLUGIN_IMAGE_TAG: ${{ github.event_name == 'pull_request' && '24h' || github.ref_name }} \ No newline at end of file diff --git a/upstream/.gitignore b/upstream/.gitignore index e5a4f8a8..a90d062f 100644 --- a/upstream/.gitignore +++ b/upstream/.gitignore @@ -9,4 +9,5 @@ integration-tests/screenshots yarn-error.log .DS_Store *.pem -integration-tests/cypress-a11y-report.json \ No newline at end of file +integration-tests/cypress-a11y-report.json +.yarn/* diff --git a/upstream/.konflux/.placeholder b/upstream/.konflux/.placeholder deleted file mode 100644 index e69de29b..00000000 diff --git a/upstream/.konflux/README.md b/upstream/.konflux/README.md deleted file mode 100644 index cfa500cb..00000000 --- a/upstream/.konflux/README.md +++ /dev/null @@ -1,3 +0,0 @@ - # `konflux-ci` manifests This folder contains [`konflux-ci`](konfluxci) configuration that is synced with the konflux-ci cluster. - - [konfluxci]: https://konflux-ci.dev/ diff --git a/upstream/.konflux/dockerfiles/.placeholder b/upstream/.konflux/dockerfiles/.placeholder deleted file mode 100644 index e69de29b..00000000 diff --git a/upstream/.konflux/dockerfiles/console-plugin.Dockerfile b/upstream/.konflux/dockerfiles/console-plugin.Dockerfile deleted file mode 100644 index d41a86b0..00000000 --- a/upstream/.konflux/dockerfiles/console-plugin.Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -ARG BUILDER=registry.redhat.io/ubi9/nodejs-20@sha256:938970e0012ddc784adda181ede5bc00a4dfda5e259ee4a57f67973720a565d1 -ARG RUNTIME=registry.redhat.io/ubi9/nginx-124@sha256:aa73fdb10af2bf24611ba714a412c2e65cec88a00eee628a0f2a75e564ec18f2 - -FROM $BUILDER AS builder-ui - -WORKDIR /go/src/github.com/openshift-pipelines/console-plugin -COPY . . -RUN npm install -g yarn-1.22.22.tgz -RUN set -e; for f in patches/*.patch; do echo ${f}; [[ -f ${f} ]] || continue; git apply ${f}; done -COPY .konflux/yarn.lock . -RUN yarn install --offline --frozen-lockfile --ignore-scripts && \ - yarn build - -FROM $RUNTIME -ARG VERSION=console-plugin-main - -COPY --from=builder-ui /go/src/github.com/openshift-pipelines/console-plugin/dist /usr/share/nginx/html -COPY --from=builder-ui /go/src/github.com/openshift-pipelines/console-plugin/nginx.conf /etc/nginx/nginx.conf - -USER 1001 - -ENTRYPOINT ["nginx", "-g", "daemon off;"] - -LABEL \ - com.redhat.component="openshift-pipelines-console-plugin-rhel9-container" \ - name="openshift-pipelines/pipelines-console-plugin-rhel9" \ - version=$VERSION \ - summary="Red Hat OpenShift Pipelines Console Plugin" \ - maintainer="pipelines-extcomm@redhat.com" \ - description="Red Hat OpenShift Pipelines Console Plugin" \ - io.k8s.display-name="Red Hat OpenShift Pipelines Console Plugin" \ - io.k8s.description="Red Hat OpenShift Pipelines Console Plugin" \ - io.openshift.tags="pipelines,tekton,openshift" diff --git a/upstream/.konflux/patches/.placeholder b/upstream/.konflux/patches/.placeholder deleted file mode 100644 index e69de29b..00000000 diff --git a/upstream/.konflux/rpms/rpms.in.yaml b/upstream/.konflux/rpms/rpms.in.yaml deleted file mode 100644 index a3e907ca..00000000 --- a/upstream/.konflux/rpms/rpms.in.yaml +++ /dev/null @@ -1,10 +0,0 @@ -contentOrigin: - repofiles: - - ./ubi.repo -packages: [openssl-libs-3.2.2-6.el9_5.1, libxml2-2.9.13-6.el9_5.1, openssl-3.2.2-6.el9_5.1] -arches: - # The list of architectures - - aarch64 - - x86_64 - - ppc64le - - s390x diff --git a/upstream/.konflux/rpms/rpms.lock.yaml b/upstream/.konflux/rpms/rpms.lock.yaml deleted file mode 100644 index e803a3da..00000000 --- a/upstream/.konflux/rpms/rpms.lock.yaml +++ /dev/null @@ -1,104 +0,0 @@ ---- -lockfileVersion: 1 -lockfileVendor: redhat -arches: -- arch: aarch64 - packages: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/l/libxml2-2.9.13-6.el9_5.1.aarch64.rpm - repoid: ubi-9-for-aarch64-baseos-rpms - size: 752140 - checksum: sha256:d90be7f67850e132d2453875ecabd9ff18f571672239ce2f2162548a5726a948 - name: libxml2 - evr: 2.9.13-6.el9_5.1 - sourcerpm: libxml2-2.9.13-6.el9_5.1.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssl-3.2.2-6.el9_5.1.aarch64.rpm - repoid: ubi-9-for-aarch64-baseos-rpms - size: 1398689 - checksum: sha256:f914250a9ef52968e27af0f0e2520745df4443dc354367bec54dd06b4a2da60b - name: openssl - evr: 1:3.2.2-6.el9_5.1 - sourcerpm: openssl-3.2.2-6.el9_5.1.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/aarch64/baseos/os/Packages/o/openssl-libs-3.2.2-6.el9_5.1.aarch64.rpm - repoid: ubi-9-for-aarch64-baseos-rpms - size: 2085943 - checksum: sha256:fb9062e4635959a929f278002c5ff1bf35323987538c71fa86442c980eab4a44 - name: openssl-libs - evr: 1:3.2.2-6.el9_5.1 - sourcerpm: openssl-3.2.2-6.el9_5.1.src.rpm - source: [] - module_metadata: [] -- arch: ppc64le - packages: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/l/libxml2-2.9.13-6.el9_5.1.ppc64le.rpm - repoid: ubi-9-for-ppc64le-baseos-rpms - size: 847982 - checksum: sha256:59a6795d37065e327ab4a9943d0045e87ad1f09a967c25c744cc7978a93190b8 - name: libxml2 - evr: 2.9.13-6.el9_5.1 - sourcerpm: libxml2-2.9.13-6.el9_5.1.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/o/openssl-3.2.2-6.el9_5.1.ppc64le.rpm - repoid: ubi-9-for-ppc64le-baseos-rpms - size: 1422952 - checksum: sha256:56283cbf84234ec9256fb68e2d2669bc5799862eb2ee40521b8ac59044567835 - name: openssl - evr: 1:3.2.2-6.el9_5.1 - sourcerpm: openssl-3.2.2-6.el9_5.1.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/ppc64le/baseos/os/Packages/o/openssl-libs-3.2.2-6.el9_5.1.ppc64le.rpm - repoid: ubi-9-for-ppc64le-baseos-rpms - size: 2320865 - checksum: sha256:8e9f1ff32873b3531cd38d9583fe20526c790066785312301ea87ebbf980d8ce - name: openssl-libs - evr: 1:3.2.2-6.el9_5.1 - sourcerpm: openssl-3.2.2-6.el9_5.1.src.rpm - source: [] - module_metadata: [] -- arch: s390x - packages: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/l/libxml2-2.9.13-6.el9_5.1.s390x.rpm - repoid: ubi-9-for-s390x-baseos-rpms - size: 731142 - checksum: sha256:ded56815616f976284aaf1ce387293e7b7ff69afe8fcdea8e712e12aab1a1166 - name: libxml2 - evr: 2.9.13-6.el9_5.1 - sourcerpm: libxml2-2.9.13-6.el9_5.1.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/o/openssl-3.2.2-6.el9_5.1.s390x.rpm - repoid: ubi-9-for-s390x-baseos-rpms - size: 1407537 - checksum: sha256:0a24289ee6324c2ecd6edad913f8ecfcfc6db43fbf6fed65458141e3ec0c104f - name: openssl - evr: 1:3.2.2-6.el9_5.1 - sourcerpm: openssl-3.2.2-6.el9_5.1.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/s390x/baseos/os/Packages/o/openssl-libs-3.2.2-6.el9_5.1.s390x.rpm - repoid: ubi-9-for-s390x-baseos-rpms - size: 1830531 - checksum: sha256:3d58f9488bc2a5113d852d6c78df07e414f6d95bb75f1ff78b7530bafdf1eb02 - name: openssl-libs - evr: 1:3.2.2-6.el9_5.1 - sourcerpm: openssl-3.2.2-6.el9_5.1.src.rpm - source: [] - module_metadata: [] -- arch: x86_64 - packages: - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/l/libxml2-2.9.13-6.el9_5.1.x86_64.rpm - repoid: ubi-9-for-x86_64-baseos-rpms - size: 769763 - checksum: sha256:3a6e88914456bb121923e8e3c984249bed039d7257e4af37870af2f6c92886de - name: libxml2 - evr: 2.9.13-6.el9_5.1 - sourcerpm: libxml2-2.9.13-6.el9_5.1.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssl-3.2.2-6.el9_5.1.x86_64.rpm - repoid: ubi-9-for-x86_64-baseos-rpms - size: 1420999 - checksum: sha256:f379686df99db814e30568a896b417278775fc96864ac6d2660bf48ef94309e3 - name: openssl - evr: 1:3.2.2-6.el9_5.1 - sourcerpm: openssl-3.2.2-6.el9_5.1.src.rpm - - url: https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/x86_64/baseos/os/Packages/o/openssl-libs-3.2.2-6.el9_5.1.x86_64.rpm - repoid: ubi-9-for-x86_64-baseos-rpms - size: 2218318 - checksum: sha256:287d11706d44a53455ed8ac62faab4c4a0b8c0fa5e367adf122c7a76c6ddbbb8 - name: openssl-libs - evr: 1:3.2.2-6.el9_5.1 - sourcerpm: openssl-3.2.2-6.el9_5.1.src.rpm - source: [] - module_metadata: [] diff --git a/upstream/.konflux/rpms/ubi.repo b/upstream/.konflux/rpms/ubi.repo deleted file mode 100644 index 726c7c8d..00000000 --- a/upstream/.konflux/rpms/ubi.repo +++ /dev/null @@ -1,62 +0,0 @@ -[ubi-9-for-$basearch-baseos-rpms] -name = Red Hat Universal Base Image 9 (RPMs) - BaseOS -baseurl = https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/$basearch/baseos/os -enabled = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release -gpgcheck = 1 - -[ubi-9-for-$basearch-baseos-debug-rpms] -name = Red Hat Universal Base Image 9 (Debug RPMs) - BaseOS -baseurl = https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/$basearch/baseos/debug -enabled = 0 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release -gpgcheck = 1 - -[ubi-9-for-$basearch-baseos-source-rpms] -name = Red Hat Universal Base Image 9 (Source RPMs) - BaseOS -baseurl = https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/$basearch/baseos/source/SRPMS -enabled = 0 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release -gpgcheck = 1 - -[ubi-9-for-$basearch-appstream-rpms] -name = Red Hat Universal Base Image 9 (RPMs) - AppStream -baseurl = https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/$basearch/appstream/os -enabled = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release -gpgcheck = 1 - -[ubi-9-for-$basearch-appstream-debug-rpms] -name = Red Hat Universal Base Image 9 (Debug RPMs) - AppStream -baseurl = https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/$basearch/appstream/debug -enabled = 0 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release -gpgcheck = 1 - -[ubi-9-for-$basearch-appstream-source-rpms] -name = Red Hat Universal Base Image 9 (Source RPMs) - AppStream -baseurl = https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/$basearch/appstream/source/SRPMS -enabled = 0 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release -gpgcheck = 1 - -[ubi-9-for-$basearch-codeready-builder-rpms] -name = Red Hat Universal Base Image 9 (RPMs) - CodeReady Builder -baseurl = https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/$basearch/codeready-builder/os -enabled = 1 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release -gpgcheck = 1 - -[ubi-9-for-$basearch-codeready-builder-debug-rpms] -name = Red Hat Universal Base Image 9 (Debug RPMs) - CodeReady Builder -baseurl = https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/$basearch/codeready-builder/debug -enabled = 0 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release -gpgcheck = 1 - -[ubi-9-for-$basearch-codeready-builder-source-rpms] -name = Red Hat Universal Base Image 9 (Source RPMs) - CodeReady Builder -baseurl = https://cdn-ubi.redhat.com/content/public/ubi/dist/ubi9/9/$basearch/codeready-builder/source/SRPMS -enabled = 0 -gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release -gpgcheck = 1 diff --git a/upstream/.konflux/tekton/next/.tekton/docker-build-ta.yaml b/upstream/.konflux/tekton/next/.tekton/docker-build-ta.yaml deleted file mode 100644 index 71cd5c36..00000000 --- a/upstream/.konflux/tekton/next/.tekton/docker-build-ta.yaml +++ /dev/null @@ -1,497 +0,0 @@ -apiVersion: tekton.dev/v1 -kind: Pipeline -metadata: - name: docker-build-ta -spec: - description: | - This pipeline is ideal for building multi-arch container images from a Containerfile while maintaining trust after pipeline customization. - - _Uses `buildah` to create a multi-platform container image leveraging [trusted artifacts](https://konflux-ci.dev/architecture/ADR/0036-trusted-artifacts.html). It also optionally creates a source image and runs some build-time tests. This pipeline requires that the [multi platform controller](https://github.com/konflux-ci/multi-platform-controller) is deployed and configured on your Konflux instance. Information is shared between tasks using OCI artifacts instead of PVCs. EC will pass the [`trusted_task.trusted`](https://enterprisecontract.dev/docs/ec-policies/release_policy.html#trusted_task__trusted) policy as long as all data used to build the artifact is generated from trusted tasks. - This pipeline is pushed as a Tekton bundle to [quay.io](https://quay.io/repository/konflux-ci/tekton-catalog/pipeline-docker-build-multi-platform-oci-ta?tab=tags)_ - params: - - default: - - linux-m2xlarge/arm64 - - linux/ppc64le - - linux/s390x - - linux/x86_64 - description: List of platforms to build the container images on. The available - set of values is determined by the configuration of the multi-platform-controller. - name: build-platforms - type: array - - default: [] - description: Additional image tags - name: additional-tags - type: array - - description: Source Repository URL - name: git-url - type: string - - default: "" - description: Revision of the Source Repository - name: revision - type: string - - description: Fully Qualified Output Image - name: output-image - type: string - - default: . - description: Path to the source code of an application's component from where - to build image. - name: path-context - type: string - - default: Dockerfile - description: Path to the Dockerfile inside the context specified by parameter - path-context - name: dockerfile - type: string - - default: "false" - description: Force rebuild image - name: rebuild - type: string - - default: "false" - description: Skip checks against built image - name: skip-checks - type: string - - default: "true" - description: Execute the build with network isolation - name: hermetic - type: string - - default: "" - description: Build dependencies to be prefetched by Cachi2 - name: prefetch-input - type: string - - default: "false" - description: Java build - name: java - type: string - - default: "" - description: Image tag expiration time, time values could be something like - 1h, 2d, 3w for hours, days, and weeks, respectively. - name: image-expires-after - - default: "true" - description: Build a source image. - name: build-source-image - type: string - - default: "true" - description: Add built image into an OCI image index - name: build-image-index - type: string - - default: [] - description: Array of --build-arg values ("arg=value" strings) for buildah - name: build-args - type: array - - default: "" - description: Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file - name: build-args-file - type: string - results: - - description: "" - name: IMAGE_URL - value: $(tasks.build-image-index.results.IMAGE_URL) - - description: "" - name: IMAGE_DIGEST - value: $(tasks.build-image-index.results.IMAGE_DIGEST) - - description: "" - name: CHAINS-GIT_URL - value: $(tasks.clone-repository.results.url) - - description: "" - name: CHAINS-GIT_COMMIT - value: $(tasks.clone-repository.results.commit) - - description: "" - name: JAVA_COMMUNITY_DEPENDENCIES - value: $(tasks.build-images.results.JAVA_COMMUNITY_DEPENDENCIES) - tasks: - - name: init - params: - - name: image-url - value: $(params.output-image) - - name: rebuild - value: $(params.rebuild) - - name: skip-checks - value: $(params.skip-checks) - taskRef: - params: - - name: name - value: init - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:092c113b614f6551113f17605ae9cb7e822aa704d07f0e37ed209da23ce392cc - - name: kind - value: task - resolver: bundles - - name: clone-repository - params: - - name: url - value: $(params.git-url) - - name: revision - value: $(params.revision) - - name: ociStorage - value: $(params.output-image).git - - name: ociArtifactExpiresAfter - value: $(params.image-expires-after) - runAfter: - - init - taskRef: - params: - - name: name - value: git-clone-oci-ta - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-git-clone-oci-ta:0.1@sha256:8e1e861d9564caea3f9ce8d1c62789f5622b5a7051209decc9ecf10b6f54aa71 - - name: kind - value: task - resolver: bundles - when: - - input: $(tasks.init.results.build) - operator: in - values: - - "true" - workspaces: - - name: basic-auth - workspace: git-auth - - name: prefetch-dependencies - params: - - name: input - value: $(params.prefetch-input) - - name: SOURCE_ARTIFACT - value: $(tasks.clone-repository.results.SOURCE_ARTIFACT) - - name: ociStorage - value: $(params.output-image).prefetch - - name: ociArtifactExpiresAfter - value: $(params.image-expires-after) - - name: dev-package-managers - value: "true" - runAfter: - - clone-repository - taskRef: - params: - - name: name - value: prefetch-dependencies-oci-ta - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies-oci-ta:0.1@sha256:8e2a8de8e8a55a8e657922d5f8303fefa065f7ec2f8a49a666bf749540d63679 - - name: kind - value: task - resolver: bundles - when: - - input: $(params.prefetch-input) - operator: notin - values: - - "" - workspaces: - - name: git-basic-auth - workspace: git-auth - - name: netrc - workspace: netrc - - matrix: - params: - - name: PLATFORM - value: - - $(params.build-platforms) - name: build-images - params: - - name: IMAGE - value: $(params.output-image) - - name: DOCKERFILE - value: $(params.dockerfile) - - name: CONTEXT - value: $(params.path-context) - - name: HERMETIC - value: $(params.hermetic) - - name: PREFETCH_INPUT - value: $(params.prefetch-input) - - name: IMAGE_EXPIRES_AFTER - value: $(params.image-expires-after) - - name: COMMIT_SHA - value: $(tasks.clone-repository.results.commit) - - name: BUILD_ARGS - value: - - $(params.build-args[*]) - - name: BUILD_ARGS_FILE - value: $(params.build-args-file) - - name: SOURCE_ARTIFACT - value: $(tasks.prefetch-dependencies.results.SOURCE_ARTIFACT) - - name: CACHI2_ARTIFACT - value: $(tasks.prefetch-dependencies.results.CACHI2_ARTIFACT) - - name: IMAGE_APPEND_PLATFORM - value: "true" - runAfter: - - prefetch-dependencies - taskRef: - params: - - name: name - value: buildah-remote-oci-ta - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-buildah-remote-oci-ta:0.2@sha256:8e8cd24b52a74a75f2cefe67a1047d2c683f84aeb1211862843330bf4653edd3 - - name: kind - value: task - resolver: bundles - when: - - input: $(tasks.init.results.build) - operator: in - values: - - "true" - - name: build-image-index - params: - - name: IMAGE - value: $(params.output-image) - - name: COMMIT_SHA - value: $(tasks.clone-repository.results.commit) - - name: IMAGE_EXPIRES_AFTER - value: $(params.image-expires-after) - - name: ALWAYS_BUILD_INDEX - value: $(params.build-image-index) - - name: IMAGES - value: - - $(tasks.build-images.results.IMAGE_REF[*]) - runAfter: - - build-images - taskRef: - params: - - name: name - value: build-image-index - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:e4871851566d8b496966b37bcb8c5ce9748a52487f116373d96c6cd28ef684c6 - - name: kind - value: task - resolver: bundles - when: - - input: $(tasks.init.results.build) - operator: in - values: - - "true" - - name: build-source-image - params: - - name: BINARY_IMAGE - value: $(params.output-image) - - name: SOURCE_ARTIFACT - value: $(tasks.prefetch-dependencies.results.SOURCE_ARTIFACT) - - name: CACHI2_ARTIFACT - value: $(tasks.prefetch-dependencies.results.CACHI2_ARTIFACT) - runAfter: - - build-image-index - taskRef: - params: - - name: name - value: source-build-oci-ta - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-source-build-oci-ta:0.1@sha256:d1fd616413d45bb6af0532352bfa8692c5ca409127e5a2dd4f1bc52aef27d1dc - - name: kind - value: task - resolver: bundles - when: - - input: $(tasks.init.results.build) - operator: in - values: - - "true" - - input: $(params.build-source-image) - operator: in - values: - - "true" - - name: deprecated-base-image-check - params: - - name: IMAGE_URL - value: $(tasks.build-image-index.results.IMAGE_URL) - - name: IMAGE_DIGEST - value: $(tasks.build-image-index.results.IMAGE_DIGEST) - runAfter: - - build-image-index - taskRef: - params: - - name: name - value: deprecated-image-check - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:b4f9599f5770ea2e6e4d031224ccc932164c1ecde7f85f68e16e99c98d754003 - - name: kind - value: task - resolver: bundles - when: - - input: $(params.skip-checks) - operator: in - values: - - "false" - - name: rpms-signature-scan - params: - - name: image-url - value: $(tasks.build-image-index.results.IMAGE_URL) - - name: image-digest - value: $(tasks.build-image-index.results.IMAGE_DIGEST) - runAfter: - - build-image-index - taskRef: - params: - - name: name - value: rpms-signature-scan - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-rpms-signature-scan:0.2@sha256:0c9667fba291af05997397a32e5e938ccaa46e93a2e14bad228e64a6427c5545 - - name: kind - value: task - resolver: bundles - when: - - input: $(params.skip-checks) - operator: in - values: - - "false" - - name: clair-scan - 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: clair-scan - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:28fee4bf5da87f2388c973d9336086749cad8436003f9a514e22ac99735e056b - - name: kind - value: task - resolver: bundles - when: - - input: $(params.skip-checks) - operator: in - values: - - "false" - - name: ecosystem-cert-preflight-checks - params: - - name: image-url - value: $(tasks.build-image-index.results.IMAGE_URL) - runAfter: - - build-image-index - taskRef: - params: - - name: name - value: ecosystem-cert-preflight-checks - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks:0.1@sha256:5131cce0f93d0b728c7bcc0d6cee4c61d4c9f67c6d619c627e41e3c9775b497d - - name: kind - value: task - resolver: bundles - when: - - input: $(params.skip-checks) - operator: in - values: - - "false" - - name: sast-snyk-check - params: - - name: image-digest - value: $(tasks.build-image-index.results.IMAGE_DIGEST) - - name: image-url - value: $(tasks.build-image-index.results.IMAGE_URL) - - name: SOURCE_ARTIFACT - value: $(tasks.prefetch-dependencies.results.SOURCE_ARTIFACT) - - name: CACHI2_ARTIFACT - value: $(tasks.prefetch-dependencies.results.CACHI2_ARTIFACT) - runAfter: - - build-image-index - taskRef: - params: - - name: name - value: sast-snyk-check-oci-ta - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check-oci-ta:0.2@sha256:ad02dd316d68725490f45f23d2b8acf042bf0a80f7a22c28e0cadc6181fc10f1 - - name: kind - value: task - resolver: bundles - when: - - input: $(params.skip-checks) - operator: in - values: - - "false" - - name: clamav-scan - 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: clamav-scan - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.1@sha256:1e29eebe916b81b7100138d62db0e03e22d03657274d37041c59cbaca5fdbf7d - - name: kind - value: task - resolver: bundles - when: - - input: $(params.skip-checks) - operator: in - values: - - "false" - - name: apply-tags - params: - - name: ADDITIONAL_TAGS - value: $(params.additional-tags[*]) - - name: IMAGE - value: $(tasks.build-image-index.results.IMAGE_URL) - runAfter: - - build-image-index - taskRef: - params: - - name: name - value: apply-tags - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.1@sha256:f485e250fb060060892b633c495a3d7e38de1ec105ae1be48608b0401530ab2c - - name: kind - value: task - resolver: bundles - - name: push-dockerfile - params: - - name: IMAGE - value: $(tasks.build-image-index.results.IMAGE_URL) - - name: IMAGE_DIGEST - value: $(tasks.build-image-index.results.IMAGE_DIGEST) - - name: DOCKERFILE - value: $(params.dockerfile) - - name: CONTEXT - value: $(params.path-context) - - name: SOURCE_ARTIFACT - value: $(tasks.prefetch-dependencies.results.SOURCE_ARTIFACT) - runAfter: - - build-image-index - taskRef: - params: - - name: name - value: push-dockerfile-oci-ta - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile-oci-ta:0.1@sha256:fc109c347c5355a2a563ea782ff12aa82afc967c456082bf978d99bd378349b4 - - name: kind - value: task - resolver: bundles - finally: - - name: show-sbom - params: - - name: IMAGE_URL - value: $(tasks.build-image-index.results.IMAGE_URL) - taskRef: - params: - - name: name - value: show-sbom - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-show-sbom:0.1@sha256:9bfc6b99ef038800fe131d7b45ff3cd4da3a415dd536f7c657b3527b01c4a13b - - name: kind - value: task - resolver: bundles - - name: show-summary - params: - - name: pipelinerun-name - value: $(context.pipelineRun.name) - - name: git-url - value: $(tasks.clone-repository.results.url)?rev=$(tasks.clone-repository.results.commit) - - name: image-url - value: $(params.output-image) - - name: build-task-status - value: $(tasks.build-images.status) - taskRef: - params: - - name: name - value: summary - - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-summary:0.2@sha256:d97c04ab42f277b1103eb6f3a053b247849f4f5b3237ea302a8ecada3b24e15b - - name: kind - value: task - resolver: bundles - workspaces: - - name: git-auth - optional: true - - name: netrc - optional: true diff --git a/upstream/.konflux/yarn.lock b/upstream/.konflux/yarn.lock deleted file mode 100644 index 2187a88a..00000000 --- a/upstream/.konflux/yarn.lock +++ /dev/null @@ -1,13658 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@actions/core@^1.10.0": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.11.1.tgz#ae683aac5112438021588030efb53b1adb86f172" - integrity sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A== - dependencies: - "@actions/exec" "^1.1.1" - "@actions/http-client" "^2.0.1" - -"@actions/exec@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.1.tgz#2e43f28c54022537172819a7cf886c844221a611" - integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w== - dependencies: - "@actions/io" "^1.0.1" - -"@actions/http-client@^2.0.1": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.3.tgz#31fc0b25c0e665754ed39a9f19a8611fc6dab674" - integrity sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA== - dependencies: - tunnel "^0.0.6" - undici "^5.25.4" - -"@actions/io@^1.0.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.3.tgz#4cdb6254da7962b07473ff5c335f3da485d94d71" - integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q== - -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.26.2", "@babel/code-frame@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" - integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== - dependencies: - "@babel/helper-validator-identifier" "^7.27.1" - js-tokens "^4.0.0" - picocolors "^1.1.1" - -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.1.tgz#db7cf122745e0a332c44e847ddc4f5e5221a43f6" - integrity sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.24.7": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.1.tgz#89de51e86bd12246003e3524704c49541b16c3e6" - integrity sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.1" - "@babel/helper-compilation-targets" "^7.27.1" - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helpers" "^7.27.1" - "@babel/parser" "^7.27.1" - "@babel/template" "^7.27.1" - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.27.1", "@babel/generator@^7.7.2": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.1.tgz#862d4fad858f7208edd487c28b58144036b76230" - integrity sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w== - dependencies: - "@babel/parser" "^7.27.1" - "@babel/types" "^7.27.1" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^3.0.2" - -"@babel/helper-annotate-as-pure@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz#4345d81a9a46a6486e24d069469f13e60445c05d" - integrity sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow== - dependencies: - "@babel/types" "^7.27.1" - -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.1.tgz#eac1096c7374f161e4f33fc8ae38f4ddf122087a" - integrity sha512-2YaDd/Rd9E598B5+WIc8wJPmWETiiJXFYVE60oX8FDohv7rAUU3CQj+A1MgeEmcsk2+dQuEjIe/GDvig0SqL4g== - dependencies: - "@babel/compat-data" "^7.27.1" - "@babel/helper-validator-option" "^7.27.1" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz#5bee4262a6ea5ddc852d0806199eb17ca3de9281" - integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-member-expression-to-functions" "^7.27.1" - "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/traverse" "^7.27.1" - semver "^6.3.1" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz#05b0882d97ba1d4d03519e4bce615d70afa18c53" - integrity sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - regexpu-core "^6.2.0" - semver "^6.3.1" - -"@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": - version "0.6.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" - integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - -"@babel/helper-member-expression-to-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz#ea1211276be93e798ce19037da6f06fbb994fa44" - integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-module-imports@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" - integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-module-transforms@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz#e1663b8b71d2de948da5c4fb2a20ca4f3ec27a6f" - integrity sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/helper-optimise-call-expression@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" - integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== - dependencies: - "@babel/types" "^7.27.1" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" - integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== - -"@babel/helper-remap-async-to-generator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" - integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-wrap-function" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/helper-replace-supers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz#b1ed2d634ce3bdb730e4b52de30f8cccfd692bc0" - integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.27.1" - "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" - integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - -"@babel/helper-validator-identifier@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" - integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== - -"@babel/helper-validator-option@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" - integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== - -"@babel/helper-wrap-function@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz#b88285009c31427af318d4fe37651cd62a142409" - integrity sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ== - dependencies: - "@babel/template" "^7.27.1" - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helpers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.1.tgz#ffc27013038607cdba3288e692c3611c06a18aa4" - integrity sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ== - dependencies: - "@babel/template" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.7", "@babel/parser@^7.25.3", "@babel/parser@^7.26.7", "@babel/parser@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.1.tgz#c55d5bed74449d1223701f1869b9ee345cc94cc9" - integrity sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ== - dependencies: - "@babel/types" "^7.27.1" - -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz#61dd8a8e61f7eb568268d1b5f129da3eee364bf9" - integrity sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz#43f70a6d7efd52370eefbdf55ae03d91b293856d" - integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz#beb623bd573b8b6f3047bd04c32506adc3e58a72" - integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz#e134a5479eb2ba9c02714e8c1ebf1ec9076124fd" - integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/plugin-transform-optional-chaining" "^7.27.1" - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz#bb1c25af34d75115ce229a1de7fa44bf8f955670" - integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-import-assertions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz#88894aefd2b03b5ee6ad1562a7c8e1587496aecd" - integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" - integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.24.7", "@babel/plugin-syntax-jsx@^7.27.1", "@babel/plugin-syntax-jsx@^7.7.2": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" - integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.27.1", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18" - integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" - integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-async-generator-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz#ca433df983d68e1375398e7ca71bf2a4f6fd89d7" - integrity sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-remap-async-to-generator" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/plugin-transform-async-to-generator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz#9a93893b9379b39466c74474f55af03de78c66e7" - integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-remap-async-to-generator" "^7.27.1" - -"@babel/plugin-transform-block-scoped-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" - integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-block-scoping@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz#bc0dbe8ac6de5602981ba58ef68c6df8ef9bfbb3" - integrity sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-class-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz#dd40a6a370dfd49d32362ae206ddaf2bb082a925" - integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-class-static-block@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz#7e920d5625b25bbccd3061aefbcc05805ed56ce4" - integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-classes@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz#03bb04bea2c7b2f711f0db7304a8da46a85cced4" - integrity sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-compilation-targets" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.27.1" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz#81662e78bf5e734a97982c2b7f0a793288ef3caa" - integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/template" "^7.27.1" - -"@babel/plugin-transform-destructuring@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz#d5916ef7089cb254df0418ae524533c1b72ba656" - integrity sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-dotall-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz#aa6821de864c528b1fecf286f0a174e38e826f4d" - integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-duplicate-keys@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz#f1fbf628ece18e12e7b32b175940e68358f546d1" - integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz#5043854ca620a94149372e69030ff8cb6a9eb0ec" - integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-dynamic-import@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz#4c78f35552ac0e06aa1f6e3c573d67695e8af5a4" - integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-exponentiation-operator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz#fc497b12d8277e559747f5a3ed868dd8064f83e1" - integrity sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-export-namespace-from@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz#71ca69d3471edd6daa711cf4dfc3400415df9c23" - integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-for-of@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" - integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - -"@babel/plugin-transform-function-name@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" - integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== - dependencies: - "@babel/helper-compilation-targets" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/plugin-transform-json-strings@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz#a2e0ce6ef256376bd527f290da023983527a4f4c" - integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" - integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-logical-assignment-operators@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz#890cb20e0270e0e5bebe3f025b434841c32d5baa" - integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-member-expression-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" - integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-modules-amd@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz#a4145f9d87c2291fe2d05f994b65dba4e3e7196f" - integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== - dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-modules-commonjs@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz#8e44ed37c2787ecc23bdc367f49977476614e832" - integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== - dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-modules-systemjs@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz#00e05b61863070d0f3292a00126c16c0e024c4ed" - integrity sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA== - dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/plugin-transform-modules-umd@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz#63f2cf4f6dc15debc12f694e44714863d34cd334" - integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== - dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz#f32b8f7818d8fc0cc46ee20a8ef75f071af976e1" - integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-new-target@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz#259c43939728cad1706ac17351b7e6a7bea1abeb" - integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz#4f9d3153bf6782d73dd42785a9d22d03197bc91d" - integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-numeric-separator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz#614e0b15cc800e5997dadd9bd6ea524ed6c819c6" - integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-object-rest-spread@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.1.tgz#845bdcd74c87b8f565c25cc6812f7f4f43c9ed79" - integrity sha512-/sSliVc9gHE20/7D5qsdGlq7RG5NCDTWsAhyqzGuq174EtWJoGzIu1BQ7G56eDsTcy1jseBZwv50olSdXOlGuA== - dependencies: - "@babel/helper-compilation-targets" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-transform-parameters" "^7.27.1" - -"@babel/plugin-transform-object-super@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" - integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - -"@babel/plugin-transform-optional-catch-binding@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz#84c7341ebde35ccd36b137e9e45866825072a30c" - integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-optional-chaining@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz#874ce3c4f06b7780592e946026eb76a32830454f" - integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - -"@babel/plugin-transform-parameters@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz#80334b54b9b1ac5244155a0c8304a187a618d5a7" - integrity sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-private-methods@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" - integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-private-property-in-object@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz#4dbbef283b5b2f01a21e81e299f76e35f900fb11" - integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-property-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" - integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-react-display-name@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz#43af31362d71f7848cfac0cbc212882b1a16e80f" - integrity sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-react-jsx-development@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz#47ff95940e20a3a70e68ad3d4fcb657b647f6c98" - integrity sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.27.1" - -"@babel/plugin-transform-react-jsx@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz#1023bc94b78b0a2d68c82b5e96aed573bcfb9db0" - integrity sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-syntax-jsx" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/plugin-transform-react-pure-annotations@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz#339f1ce355eae242e0649f232b1c68907c02e879" - integrity sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-regenerator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz#0a471df9213416e44cd66bf67176b66f65768401" - integrity sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-regexp-modifiers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz#df9ba5577c974e3f1449888b70b76169998a6d09" - integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-reserved-words@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz#40fba4878ccbd1c56605a4479a3a891ac0274bb4" - integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-shorthand-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" - integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-spread@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz#1a264d5fc12750918f50e3fe3e24e437178abb08" - integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - -"@babel/plugin-transform-sticky-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" - integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-template-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" - integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-typeof-symbol@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz#70e966bb492e03509cf37eafa6dcc3051f844369" - integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-typescript@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz#d3bb65598bece03f773111e88cc4e8e5070f1140" - integrity sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/plugin-syntax-typescript" "^7.27.1" - -"@babel/plugin-transform-unicode-escapes@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz#3e3143f8438aef842de28816ece58780190cf806" - integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-unicode-property-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz#bdfe2d3170c78c5691a3c3be934c8c0087525956" - integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-unicode-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" - integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-unicode-sets-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz#6ab706d10f801b5c72da8bb2548561fa04193cd1" - integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/preset-env@^7.24.7": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.27.1.tgz#23463ab94f36540630924f5de3b4c7a8dde3b6a2" - integrity sha512-TZ5USxFpLgKDpdEt8YWBR7p6g+bZo6sHaXLqP2BY/U0acaoI8FTVflcYCr/v94twM1C5IWFdZ/hscq9WjUeLXA== - dependencies: - "@babel/compat-data" "^7.27.1" - "@babel/helper-compilation-targets" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-option" "^7.27.1" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.27.1" - "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions" "^7.27.1" - "@babel/plugin-syntax-import-attributes" "^7.27.1" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.27.1" - "@babel/plugin-transform-async-generator-functions" "^7.27.1" - "@babel/plugin-transform-async-to-generator" "^7.27.1" - "@babel/plugin-transform-block-scoped-functions" "^7.27.1" - "@babel/plugin-transform-block-scoping" "^7.27.1" - "@babel/plugin-transform-class-properties" "^7.27.1" - "@babel/plugin-transform-class-static-block" "^7.27.1" - "@babel/plugin-transform-classes" "^7.27.1" - "@babel/plugin-transform-computed-properties" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.27.1" - "@babel/plugin-transform-dotall-regex" "^7.27.1" - "@babel/plugin-transform-duplicate-keys" "^7.27.1" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" - "@babel/plugin-transform-dynamic-import" "^7.27.1" - "@babel/plugin-transform-exponentiation-operator" "^7.27.1" - "@babel/plugin-transform-export-namespace-from" "^7.27.1" - "@babel/plugin-transform-for-of" "^7.27.1" - "@babel/plugin-transform-function-name" "^7.27.1" - "@babel/plugin-transform-json-strings" "^7.27.1" - "@babel/plugin-transform-literals" "^7.27.1" - "@babel/plugin-transform-logical-assignment-operators" "^7.27.1" - "@babel/plugin-transform-member-expression-literals" "^7.27.1" - "@babel/plugin-transform-modules-amd" "^7.27.1" - "@babel/plugin-transform-modules-commonjs" "^7.27.1" - "@babel/plugin-transform-modules-systemjs" "^7.27.1" - "@babel/plugin-transform-modules-umd" "^7.27.1" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" - "@babel/plugin-transform-new-target" "^7.27.1" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" - "@babel/plugin-transform-numeric-separator" "^7.27.1" - "@babel/plugin-transform-object-rest-spread" "^7.27.1" - "@babel/plugin-transform-object-super" "^7.27.1" - "@babel/plugin-transform-optional-catch-binding" "^7.27.1" - "@babel/plugin-transform-optional-chaining" "^7.27.1" - "@babel/plugin-transform-parameters" "^7.27.1" - "@babel/plugin-transform-private-methods" "^7.27.1" - "@babel/plugin-transform-private-property-in-object" "^7.27.1" - "@babel/plugin-transform-property-literals" "^7.27.1" - "@babel/plugin-transform-regenerator" "^7.27.1" - "@babel/plugin-transform-regexp-modifiers" "^7.27.1" - "@babel/plugin-transform-reserved-words" "^7.27.1" - "@babel/plugin-transform-shorthand-properties" "^7.27.1" - "@babel/plugin-transform-spread" "^7.27.1" - "@babel/plugin-transform-sticky-regex" "^7.27.1" - "@babel/plugin-transform-template-literals" "^7.27.1" - "@babel/plugin-transform-typeof-symbol" "^7.27.1" - "@babel/plugin-transform-unicode-escapes" "^7.27.1" - "@babel/plugin-transform-unicode-property-regex" "^7.27.1" - "@babel/plugin-transform-unicode-regex" "^7.27.1" - "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" - "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.11.0" - babel-plugin-polyfill-regenerator "^0.6.1" - core-js-compat "^3.40.0" - semver "^6.3.1" - -"@babel/preset-modules@0.1.6-no-external-plugins": - version "0.1.6-no-external-plugins" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" - integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.24.7": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.27.1.tgz#86ea0a5ca3984663f744be2fd26cb6747c3fd0ec" - integrity sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-option" "^7.27.1" - "@babel/plugin-transform-react-display-name" "^7.27.1" - "@babel/plugin-transform-react-jsx" "^7.27.1" - "@babel/plugin-transform-react-jsx-development" "^7.27.1" - "@babel/plugin-transform-react-pure-annotations" "^7.27.1" - -"@babel/preset-typescript@^7.24.7": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz#190742a6428d282306648a55b0529b561484f912" - integrity sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-option" "^7.27.1" - "@babel/plugin-syntax-jsx" "^7.27.1" - "@babel/plugin-transform-modules-commonjs" "^7.27.1" - "@babel/plugin-transform-typescript" "^7.27.1" - -"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2", "@babel/runtime@latest": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.1.tgz#9fce313d12c9a77507f264de74626e87fd0dc541" - integrity sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog== - -"@babel/template@^7.27.1", "@babel/template@^7.3.3": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.1.tgz#b9e4f55c17a92312774dfbdde1b3c01c547bbae2" - integrity sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/parser" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/traverse@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.1.tgz#4db772902b133bbddd1c4f7a7ee47761c1b9f291" - integrity sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.1" - "@babel/parser" "^7.27.1" - "@babel/template" "^7.27.1" - "@babel/types" "^7.27.1" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.1.tgz#9defc53c16fc899e46941fc6901a9eea1c9d8560" - integrity sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - -"@badeball/cypress-cucumber-preprocessor@latest": - version "22.0.1" - resolved "https://registry.yarnpkg.com/@badeball/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-22.0.1.tgz#f2afa85143c64256ebbecc2424c424c4cc3eaa48" - integrity sha512-wGZiNI7vfapbUo9x7H65pd6YRArsnpyTyHJ6yGafS77uTFBXU0McrpWJrE8aEDgSOz8+jdCwI0eJRnUSm1mJDA== - dependencies: - "@cucumber/ci-environment" "^10.0.1" - "@cucumber/cucumber" "^11.0.0" - "@cucumber/cucumber-expressions" "^18.0.0" - "@cucumber/gherkin" "^30.0.0" - "@cucumber/html-formatter" "^21.7.0" - "@cucumber/message-streams" "^4.0.1" - "@cucumber/messages" "^27.0.0" - "@cucumber/pretty-formatter" "^1.0.1" - "@cucumber/tag-expressions" "^6.1.0" - base64-js "^1.5.1" - chalk "^4.1.2" - cli-table "^0.3.11" - common-ancestor-path "^1.0.1" - cosmiconfig "^9.0.0" - debug "^4.3.6" - error-stack-parser "^2.1.4" - find-cypress-specs "^1.45.2" - glob "^10.4.5" - mocha "^11.0.0" - seedrandom "^3.0.5" - source-map "^0.6.1" - split "^1.0.1" - uuid "^10.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@csstools/css-parser-algorithms@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz#74426e93bd1c4dcab3e441f5cc7ba4fb35d94356" - integrity sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A== - -"@csstools/css-tokenizer@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz#a5502c8539265fecbd873c1e395a890339f119c2" - integrity sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw== - -"@csstools/media-query-list-parser@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz#e80e17eba1693fceafb8d6f2cfc68c0e7a9ab78a" - integrity sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A== - -"@csstools/selector-specificity@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz#037817b574262134cabd68fc4ec1a454f168407b" - integrity sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw== - -"@cucumber/ci-environment@10.0.1", "@cucumber/ci-environment@^10.0.1": - version "10.0.1" - resolved "https://registry.yarnpkg.com/@cucumber/ci-environment/-/ci-environment-10.0.1.tgz#c8584f1d4a619e4318cf60c01b838db096d72ccd" - integrity sha512-/+ooDMPtKSmvcPMDYnMZt4LuoipfFfHaYspStI4shqw8FyKcfQAmekz6G+QKWjQQrvM+7Hkljwx58MEwPCwwzg== - -"@cucumber/cucumber-expressions@18.0.1", "@cucumber/cucumber-expressions@^18.0.0": - version "18.0.1" - resolved "https://registry.yarnpkg.com/@cucumber/cucumber-expressions/-/cucumber-expressions-18.0.1.tgz#0899cbda2ed5546dbaa0e40f0c754b6e3bd1bb69" - integrity sha512-NSid6bI+7UlgMywl5octojY5NXnxR9uq+JisjOrO52VbFsQM6gTWuQFE8syI10KnIBEdPzuEUSVEeZ0VFzRnZA== - dependencies: - regexp-match-indices "1.0.2" - -"@cucumber/cucumber@^11.0.0": - version "11.2.0" - resolved "https://registry.yarnpkg.com/@cucumber/cucumber/-/cucumber-11.2.0.tgz#6f38ecd0c71717d646b99eb4fe2595f81c8b179a" - integrity sha512-F69uIPTc7dfgU7/TGAaQaWUz7r/DzoPW39AfJoKQOC7IvBiPQwpvSIo6QEd+63pdpdKNRbtQoVl5vP9IclhhuA== - dependencies: - "@cucumber/ci-environment" "10.0.1" - "@cucumber/cucumber-expressions" "18.0.1" - "@cucumber/gherkin" "30.0.4" - "@cucumber/gherkin-streams" "5.0.1" - "@cucumber/gherkin-utils" "9.0.0" - "@cucumber/html-formatter" "21.7.0" - "@cucumber/junit-xml-formatter" "0.7.1" - "@cucumber/message-streams" "4.0.1" - "@cucumber/messages" "27.0.2" - "@cucumber/tag-expressions" "6.1.1" - assertion-error-formatter "^3.0.0" - capital-case "^1.0.4" - chalk "^4.1.2" - cli-table3 "0.6.3" - commander "^10.0.0" - debug "^4.3.4" - error-stack-parser "^2.1.4" - figures "^3.2.0" - glob "^10.3.10" - has-ansi "^4.0.1" - indent-string "^4.0.0" - is-installed-globally "^0.4.0" - is-stream "^2.0.0" - knuth-shuffle-seeded "^1.0.6" - lodash.merge "^4.6.2" - lodash.mergewith "^4.6.2" - luxon "3.2.1" - mime "^3.0.0" - mkdirp "^2.1.5" - mz "^2.7.0" - progress "^2.0.3" - read-package-up "^11.0.0" - resolve-pkg "^2.0.0" - semver "7.5.3" - string-argv "0.3.1" - supports-color "^8.1.1" - tmp "0.2.3" - type-fest "^4.8.3" - util-arity "^1.1.0" - yaml "^2.2.2" - yup "1.2.0" - -"@cucumber/gherkin-streams@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@cucumber/gherkin-streams/-/gherkin-streams-5.0.1.tgz#8c2142d295cd05644456be7282b4bd756c95c4cd" - integrity sha512-/7VkIE/ASxIP/jd4Crlp4JHXqdNFxPGQokqWqsaCCiqBiu5qHoKMxcWNlp9njVL/n9yN4S08OmY3ZR8uC5x74Q== - dependencies: - commander "9.1.0" - source-map-support "0.5.21" - -"@cucumber/gherkin-utils@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@cucumber/gherkin-utils/-/gherkin-utils-9.0.0.tgz#944c64c458742d8e73b750e5dde2cf56b161d674" - integrity sha512-clk4q39uj7pztZuZtyI54V8lRsCUz0Y/p8XRjIeHh7ExeEztpWkp4ca9q1FjUOPfQQ8E7OgqFbqoQQXZ1Bx7fw== - dependencies: - "@cucumber/gherkin" "^28.0.0" - "@cucumber/messages" "^24.0.0" - "@teppeis/multimaps" "3.0.0" - commander "12.0.0" - source-map-support "^0.5.21" - -"@cucumber/gherkin@30.0.4", "@cucumber/gherkin@^30.0.0": - version "30.0.4" - resolved "https://registry.yarnpkg.com/@cucumber/gherkin/-/gherkin-30.0.4.tgz#047071b3122a9fb25e073aabdbc0132e98db4ee4" - integrity sha512-pb7lmAJqweZRADTTsgnC3F5zbTh3nwOB1M83Q9ZPbUKMb3P76PzK6cTcPTJBHWy3l7isbigIv+BkDjaca6C8/g== - dependencies: - "@cucumber/messages" ">=19.1.4 <=26" - -"@cucumber/gherkin@^28.0.0": - version "28.0.0" - resolved "https://registry.yarnpkg.com/@cucumber/gherkin/-/gherkin-28.0.0.tgz#91246da622524807b21430c1692bedd319d3d4bb" - integrity sha512-Ee6zJQq0OmIUPdW0mSnsCsrWA2PZAELNDPICD2pLfs0Oz7RAPgj80UsD2UCtqyAhw2qAR62aqlktKUlai5zl/A== - dependencies: - "@cucumber/messages" ">=19.1.4 <=24" - -"@cucumber/html-formatter@21.7.0": - version "21.7.0" - resolved "https://registry.yarnpkg.com/@cucumber/html-formatter/-/html-formatter-21.7.0.tgz#a4413738c4476836c9917bf9652aa0a45b93ab81" - integrity sha512-bv211aY8mErp6CdmhN426E+7KIsVIES4fGx5ASMlUzYWiMus6NhSdI9UL3Vswx8JXJMgySeIcJJKfznREUFLNA== - -"@cucumber/html-formatter@^21.7.0": - version "21.10.1" - resolved "https://registry.yarnpkg.com/@cucumber/html-formatter/-/html-formatter-21.10.1.tgz#53094f349912962b5673c83d995b53ec94f1972a" - integrity sha512-isaaNMNnBYThsvaHy7i+9kkk9V3+rhgdkt0pd6TCY6zY1CSRZQ7tG6ST9pYyRaECyfbCeF7UGH0KpNEnh6UNvQ== - -"@cucumber/junit-xml-formatter@0.7.1": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@cucumber/junit-xml-formatter/-/junit-xml-formatter-0.7.1.tgz#a94cb7bc9f567bf2718605dc571712e69d4a0721" - integrity sha512-AzhX+xFE/3zfoYeqkT7DNq68wAQfBcx4Dk9qS/ocXM2v5tBv6eFQ+w8zaSfsktCjYzu4oYRH/jh4USD1CYHfaQ== - dependencies: - "@cucumber/query" "^13.0.2" - "@teppeis/multimaps" "^3.0.0" - luxon "^3.5.0" - xmlbuilder "^15.1.1" - -"@cucumber/message-streams@4.0.1", "@cucumber/message-streams@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@cucumber/message-streams/-/message-streams-4.0.1.tgz#a5339d3504594bb2edb5732aaae94dddb24d0970" - integrity sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA== - -"@cucumber/messages@27.0.2": - version "27.0.2" - resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-27.0.2.tgz#9b5ed8b6cf7b95e43576f6af1af9f5205f69e2a1" - integrity sha512-jo2B+vYXmpuLOKh6Gc8loHl2E8svCkLvEXLVgFwVHqKWZJWBTa9yTRCPmZIxrz4fnO7Pr3N3vKQCPu73/gjlVQ== - dependencies: - "@types/uuid" "10.0.0" - class-transformer "0.5.1" - reflect-metadata "0.2.2" - uuid "10.0.0" - -"@cucumber/messages@>=19.1.4 <=24", "@cucumber/messages@^24.0.0": - version "24.1.0" - resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-24.1.0.tgz#a212c97b0548144c3ccfae021a96d6c56d3841d3" - integrity sha512-hxVHiBurORcobhVk80I9+JkaKaNXkW6YwGOEFIh/2aO+apAN+5XJgUUWjng9NwqaQrW1sCFuawLB1AuzmBaNdQ== - dependencies: - "@types/uuid" "9.0.8" - class-transformer "0.5.1" - reflect-metadata "0.2.1" - uuid "9.0.1" - -"@cucumber/messages@>=19.1.4 <=26": - version "26.0.1" - resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-26.0.1.tgz#18765481cf2580066977cbe26af111458e05c424" - integrity sha512-DIxSg+ZGariumO+Lq6bn4kOUIUET83A4umrnWmidjGFl8XxkBieUZtsmNbLYgH/gnsmP07EfxxdTr0hOchV1Sg== - dependencies: - "@types/uuid" "10.0.0" - class-transformer "0.5.1" - reflect-metadata "0.2.2" - uuid "10.0.0" - -"@cucumber/messages@^27.0.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@cucumber/messages/-/messages-27.2.0.tgz#ee0cc006a391568fb668d47a23ac2e5bf901ff3a" - integrity sha512-f2o/HqKHgsqzFLdq6fAhfG1FNOQPdBdyMGpKwhb7hZqg0yZtx9BVqkTyuoNk83Fcvk3wjMVfouFXXHNEk4nddA== - dependencies: - "@types/uuid" "10.0.0" - class-transformer "0.5.1" - reflect-metadata "0.2.2" - uuid "11.0.5" - -"@cucumber/pretty-formatter@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@cucumber/pretty-formatter/-/pretty-formatter-1.0.1.tgz#65d6c1df436920036a7bd02d08cb44d20e7af0ab" - integrity sha512-A1lU4VVP0aUWdOTmpdzvXOyEYuPtBDI0xYwYJnmoMDplzxMdhcHk86lyyvYDoMoPzzq6OkOE3isuosvUU4X7IQ== - dependencies: - ansi-styles "^5.0.0" - cli-table3 "^0.6.0" - figures "^3.2.0" - ts-dedent "^2.0.0" - -"@cucumber/query@^13.0.2": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@cucumber/query/-/query-13.2.0.tgz#d7a7db6affdae8f56a934e8f40041d1a7db42e50" - integrity sha512-S3g4u+2u/vo444bR1xL0+oVZmF8zb9QZ3MoiNF4GjBt6gG7Kf4S3NyJKjGUAQfESTb8oumOR1YMKHbv79FzA5w== - dependencies: - "@teppeis/multimaps" "3.0.0" - -"@cucumber/tag-expressions@6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@cucumber/tag-expressions/-/tag-expressions-6.1.1.tgz#36bebd6af0870e03f71b5a34436b95f3c70ef7e8" - integrity sha512-0oj5KTzf2DsR3DhL3hYeI9fP3nyKzs7TQdpl54uJelJ3W3Hlyyet2Hib+8LK7kNnqJsXENnJg9zahRYyrtvNEg== - -"@cucumber/tag-expressions@^6.1.0": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@cucumber/tag-expressions/-/tag-expressions-6.1.2.tgz#7d566bda8e8c5b782e10d5ca24f30218cec47e09" - integrity sha512-xa3pER+ntZhGCxRXSguDTKEHTZpUUsp+RzTRNnit+vi5cqnk6abLdSLg5i3HZXU3c74nQ8afQC6IT507EN74oQ== - -"@cypress/request@^3.0.6": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.8.tgz#992f1f42ba03ebb14fa5d97290abe9d015ed0815" - integrity sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~4.0.0" - http-signature "~1.4.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - performance-now "^2.1.0" - qs "6.14.0" - safe-buffer "^5.1.2" - tough-cookie "^5.0.0" - tunnel-agent "^0.6.0" - uuid "^8.3.2" - -"@cypress/webpack-preprocessor@^5.15.5": - version "5.17.1" - resolved "https://registry.yarnpkg.com/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.17.1.tgz#19c3f6ceb89e156824917b4ec31717ade34592ec" - integrity sha512-FE/e8ikPc8z4EVopJCaior3RGy0jd2q9Xcp5NtiwNG4XnLfEnUFTZlAGwXe75sEh4fNMPrBJW1KIz77PX5vGAw== - dependencies: - bluebird "3.7.1" - debug "^4.3.4" - lodash "^4.17.20" - -"@cypress/xvfb@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" - integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== - dependencies: - debug "^3.1.0" - lodash.once "^4.1.1" - -"@dependents/detective-less@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@dependents/detective-less/-/detective-less-5.0.1.tgz#e6c5b502f0d26a81da4170c1ccd848a6eaa68470" - integrity sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ== - dependencies: - gonzales-pe "^4.3.0" - node-source-walk "^7.0.1" - -"@discoveryjs/json-ext@^0.5.0": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== - -"@dual-bundle/import-meta-resolve@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#519c1549b0e147759e7825701ecffd25e5819f7b" - integrity sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg== - -"@emotion/is-prop-valid@^0.7.3": - version "0.7.3" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.7.3.tgz#a6bf4fa5387cbba59d44e698a4680f481a8da6cc" - integrity sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA== - dependencies: - "@emotion/memoize" "0.7.1" - -"@emotion/memoize@0.7.1": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.1.tgz#e93c13942592cf5ef01aa8297444dc192beee52f" - integrity sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg== - -"@esbuild/aix-ppc64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz#014180d9a149cffd95aaeead37179433f5ea5437" - integrity sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ== - -"@esbuild/android-arm64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz#649e47e04ddb24a27dc05c395724bc5f4c55cbfe" - integrity sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ== - -"@esbuild/android-arm@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.3.tgz#8a0f719c8dc28a4a6567ef7328c36ea85f568ff4" - integrity sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A== - -"@esbuild/android-x64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.3.tgz#e2ab182d1fd06da9bef0784a13c28a7602d78009" - integrity sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ== - -"@esbuild/darwin-arm64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz#c7f3166fcece4d158a73dcfe71b2672ca0b1668b" - integrity sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w== - -"@esbuild/darwin-x64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz#d8c5342ec1a4bf4b1915643dfe031ba4b173a87a" - integrity sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A== - -"@esbuild/freebsd-arm64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz#9f7d789e2eb7747d4868817417cc968ffa84f35b" - integrity sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw== - -"@esbuild/freebsd-x64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz#8ad35c51d084184a8e9e76bb4356e95350a64709" - integrity sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q== - -"@esbuild/linux-arm64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz#3af0da3d9186092a9edd4e28fa342f57d9e3cd30" - integrity sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A== - -"@esbuild/linux-arm@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz#e91cafa95e4474b3ae3d54da12e006b782e57225" - integrity sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ== - -"@esbuild/linux-ia32@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz#81025732d85b68ee510161b94acdf7e3007ea177" - integrity sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw== - -"@esbuild/linux-loong64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz#3c744e4c8d5e1148cbe60a71a11b58ed8ee5deb8" - integrity sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g== - -"@esbuild/linux-mips64el@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz#1dfe2a5d63702db9034cc6b10b3087cc0424ec26" - integrity sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag== - -"@esbuild/linux-ppc64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz#2e85d9764c04a1ebb346dc0813ea05952c9a5c56" - integrity sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg== - -"@esbuild/linux-riscv64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz#a9ea3334556b09f85ccbfead58c803d305092415" - integrity sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA== - -"@esbuild/linux-s390x@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz#f6a7cb67969222b200974de58f105dfe8e99448d" - integrity sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ== - -"@esbuild/linux-x64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz#a237d3578ecdd184a3066b1f425e314ade0f8033" - integrity sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA== - -"@esbuild/netbsd-arm64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz#4c15c68d8149614ddb6a56f9c85ae62ccca08259" - integrity sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA== - -"@esbuild/netbsd-x64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz#12f6856f8c54c2d7d0a8a64a9711c01a743878d5" - integrity sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g== - -"@esbuild/openbsd-arm64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz#ca078dad4a34df192c60233b058db2ca3d94bc5c" - integrity sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ== - -"@esbuild/openbsd-x64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz#c9178adb60e140e03a881d0791248489c79f95b2" - integrity sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w== - -"@esbuild/sunos-x64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz#03765eb6d4214ff27e5230af779e80790d1ee09f" - integrity sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA== - -"@esbuild/win32-arm64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz#f1c867bd1730a9b8dfc461785ec6462e349411ea" - integrity sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ== - -"@esbuild/win32-ia32@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz#77491f59ef6c9ddf41df70670d5678beb3acc322" - integrity sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew== - -"@esbuild/win32-x64@0.25.3": - version "0.25.3" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz#b17a2171f9074df9e91bfb07ef99a892ac06412a" - integrity sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.7.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz#607084630c6c033992a082de6e6fbc1a8b52175a" - integrity sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": - version "4.12.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" - integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== - -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.57.1": - version "8.57.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" - integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== - -"@fastify/busboy@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" - integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== - -"@humanwhocodes/config-array@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" - integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== - dependencies: - "@humanwhocodes/object-schema" "^2.0.3" - debug "^4.3.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-30.0.0-alpha.7.tgz#eccb426c97384ba731a2a3c90ac17816d185dfdb" - integrity sha512-6tNcZwg3dJeww2Ne9Y+x0Au4OPtbWwYzOfwh2ecK/Yp3/KNkULp5oNvx0qJUvvGgQWSBbYvLRrgLnoRlRhpZew== - dependencies: - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - slash "^3.0.0" - -"@jest/core@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-30.0.0-alpha.7.tgz#9f90739aa8e9d6cc7397a99e03047b7e8a9b01f0" - integrity sha512-c+062gpdgytcBlIucMtjWxQ6ETgkFeVeP+TwTyP9DNtM8iNAO/UhOGIgO95Cd3nSZqH/nPN/PFWfuLwOZ55GOg== - dependencies: - "@jest/console" "30.0.0-alpha.7" - "@jest/pattern" "30.0.0-alpha.7" - "@jest/reporters" "30.0.0-alpha.7" - "@jest/test-result" "30.0.0-alpha.7" - "@jest/transform" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^4.0.0" - exit-x "^0.2.2" - graceful-fs "^4.2.9" - jest-changed-files "30.0.0-alpha.7" - jest-config "30.0.0-alpha.7" - jest-haste-map "30.0.0-alpha.7" - jest-message-util "30.0.0-alpha.7" - jest-regex-util "30.0.0-alpha.7" - jest-resolve "30.0.0-alpha.7" - jest-resolve-dependencies "30.0.0-alpha.7" - jest-runner "30.0.0-alpha.7" - jest-runtime "30.0.0-alpha.7" - jest-snapshot "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - jest-validate "30.0.0-alpha.7" - jest-watcher "30.0.0-alpha.7" - micromatch "^4.0.8" - pretty-format "30.0.0-alpha.7" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-30.0.0-alpha.7.tgz#6de9259b2dbc1013fb55d73b7ebbdbc2345a5b8b" - integrity sha512-sEszhsMrT7Jh0ngVjR8q36payUT2NU0kYwd5rdxUzlVha8gZg2FTq1VMjgETEnYyGXrEmnk7MmBUxTbT7dYrUw== - dependencies: - "@jest/fake-timers" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - jest-mock "30.0.0-alpha.7" - -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== - dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - -"@jest/expect-utils@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.0.0-alpha.7.tgz#358d7e8d1a17503ba88a3db11ad6a6d5010f2f70" - integrity sha512-lr711aEHiXWM9X0BC/fH+HID5eatdCjluh2PKxKHPZbjmtWA5RiHXC/s16cPFI6voSnofOjDICvzNVxSO87ZrQ== - dependencies: - jest-get-type "30.0.0-alpha.7" - -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== - dependencies: - jest-get-type "^29.6.3" - -"@jest/expect@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-30.0.0-alpha.7.tgz#a1f2f370438ad1540f19520d4da25af1ab141a58" - integrity sha512-YevyfPQaCyG1SPv+9Zu05Qfds73nxv/exKrfPj0oVzDGaJEBPXAuUYqt0uKu17q8OWCNYaYcAY0szTqa7GnVnQ== - dependencies: - expect "30.0.0-alpha.7" - jest-snapshot "30.0.0-alpha.7" - -"@jest/fake-timers@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-30.0.0-alpha.7.tgz#93dd3ca28baa9b20757317dd1703f103c7a5d353" - integrity sha512-ct29bG+ebuRk1Re8nzxcMJIul1sE1Se0/PRwQwqbrLbInOw5H31q9DnqrhVhqgUgXosx7dyt1dJD8UvBfHBc4A== - dependencies: - "@jest/types" "30.0.0-alpha.7" - "@sinonjs/fake-timers" "^13.0.0" - "@types/node" "*" - jest-message-util "30.0.0-alpha.7" - jest-mock "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== - dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-30.0.0-alpha.7.tgz#5d439cc0fb2cef6b6d98504ef76043fc5c0ae227" - integrity sha512-y5CKO76wPQfoqMVN+8DlYCU08mqhvfMDGV58j0XYYQIRWYOeIqvvveVBaq47ePknubsOBQeS0Z0zflQccZUnCg== - dependencies: - "@jest/environment" "30.0.0-alpha.7" - "@jest/expect" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - jest-mock "30.0.0-alpha.7" - -"@jest/pattern@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/pattern/-/pattern-30.0.0-alpha.7.tgz#4907efc3e82887100cb90f4def0bf5fdfd387962" - integrity sha512-PpuWkTJwcFJlyo6YOuMLi96doaaDfz90gOAU+cuyIZyr6wjbjKjdMkHlt7rE6gNaZNEUEA9sSJzKsg8oXfLW0w== - dependencies: - "@types/node" "*" - jest-regex-util "30.0.0-alpha.7" - -"@jest/reporters@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-30.0.0-alpha.7.tgz#dc10137084716a218897ba3b7c8e20238526afd3" - integrity sha512-DUDi4oV6Vk0aQEGJCKRZVVxpuCBZkBD/wzV2fXz2X3IVBq1lO27EJzv8BKDqdi3Fwr2J4vocynIp/aPb+XxXlQ== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "30.0.0-alpha.7" - "@jest/test-result" "30.0.0-alpha.7" - "@jest/transform" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - "@jridgewell/trace-mapping" "^0.3.18" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit-x "^0.2.2" - glob "^10.3.10" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^6.0.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^5.0.0" - istanbul-reports "^3.1.3" - jest-message-util "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - jest-worker "30.0.0-alpha.7" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.0-alpha.7.tgz#09cf5dd23e14c3822773c9a4dcfe31d483db6005" - integrity sha512-fzJDwdg3E8Gq+Aqo/h+JQc1ZD+Mqbkz7OVqpoUa0A2Btd70zdgu1Hza8AyhJjr83paRQ+ZCHnHepp4/+tpqDFQ== - dependencies: - "@sinclair/typebox" "^0.34.0" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/snapshot-utils@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/snapshot-utils/-/snapshot-utils-30.0.0-alpha.7.tgz#84440157b8217a272243835e37aec575f74b5f9c" - integrity sha512-mXfMgNqHdiuWXavhZPaH+EfASKp5DUqfr9ISvcl+YO0HxtOvQH2Ulttwsq9MYkhbKpiwTTk17Tt6NTBogmRlGw== - dependencies: - "@jest/types" "30.0.0-alpha.7" - chalk "^4.0.0" - graceful-fs "^4.2.9" - natural-compare "^1.4.0" - -"@jest/source-map@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-30.0.0-alpha.7.tgz#a50ded4df349757241373c5308f863a17dc28172" - integrity sha512-zWk0ZjV2tOBhERTJagxjrRfCxb/X5SecekXJIm0U9vWNuKNKDmK1TQJcQP0SdtqM2aa5bNdjub3lg29l7E8EIw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-30.0.0-alpha.7.tgz#b7e101f16bcaca96657867b67b96ef22dbb4929d" - integrity sha512-+GUXXq5LocMv3FXddg9MxXcApaX4Jno6qFAz+pL/m3pxTy7nGPQPuEUXZelEEQevMrLP5ds2PxLGd6OVoV565Q== - dependencies: - "@jest/console" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-30.0.0-alpha.7.tgz#a4a2143d47af2f14da522f80d2552049766ab838" - integrity sha512-X4uXuY0nqg3/4SYrzIwScFs2KBGa0yIr/r4LLmakdrP0BzTOHOXZG+i3nqVlLFCjHwJQInuxDx79dI3UsJOt2A== - dependencies: - "@jest/test-result" "30.0.0-alpha.7" - graceful-fs "^4.2.9" - jest-haste-map "30.0.0-alpha.7" - slash "^3.0.0" - -"@jest/transform@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-30.0.0-alpha.7.tgz#ca7eb97bebd7fcd2ab20910e990c47f3020f13ea" - integrity sha512-uv/gA0QdtnSHJLoQngSzJGXCjTDykJpQFUUuuYN/G9GVPM/aORyNb3ybkkozgjHSV9eC1hJCoQRuraEDJa1pSg== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "30.0.0-alpha.7" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^7.0.0" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "30.0.0-alpha.7" - jest-regex-util "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - micromatch "^4.0.8" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^5.0.0" - -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@30.0.0-alpha.7": - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.0.0-alpha.7.tgz#10b8d41c2c5284202d76d66808eca357c74096f5" - integrity sha512-hrdUqtIjUMpoNlpmo4DQfe6fvD0Rk02kdOv0+AsAbO689llpzNmb+kLcojzKp/H2jVGqcYrUb0wNSRgn4KcuqA== - dependencies: - "@jest/pattern" "30.0.0-alpha.7" - "@jest/schemas" "30.0.0-alpha.7" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" - integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== - dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - -"@jridgewell/source-map@^0.3.3": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" - integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@jsonjoy.com/base64@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" - integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== - -"@jsonjoy.com/json-pack@^1.0.3": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.2.0.tgz#e658900e81d194903171c42546e1aa27f446846a" - integrity sha512-io1zEbbYcElht3tdlqEOFxZ0dMTYrHz9iMf0gqn1pPjZFTCgM5R4R5IMA20Chb2UPYYsxjzs8CgZ7Nb5n2K2rA== - dependencies: - "@jsonjoy.com/base64" "^1.1.1" - "@jsonjoy.com/util" "^1.1.2" - hyperdyperid "^1.2.0" - thingies "^1.20.0" - -"@jsonjoy.com/util@^1.1.2", "@jsonjoy.com/util@^1.3.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.5.0.tgz#6008e35b9d9d8ee27bc4bfaa70c8cbf33a537b4c" - integrity sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA== - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" - integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@openshift-console/dynamic-plugin-sdk-webpack@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@openshift-console/dynamic-plugin-sdk-webpack/-/dynamic-plugin-sdk-webpack-1.1.1.tgz#349326366f84defa8c81baa8be411257d0b1e954" - integrity sha512-1m1iBpdj0HNWQIEFAhMlI5pmigyN5B/Eqcb2nGAI2n030hOOxAalxySO95dvEFa2hiyXMUt4z/Tyq4fDYKZ2nw== - dependencies: - "@openshift/dynamic-plugin-sdk-webpack" "^4.0.2" - ajv "^6.12.3" - chalk "2.4.x" - comment-json "4.x" - find-up "4.x" - glob "7.x" - lodash "^4.17.21" - read-pkg "5.x" - semver "6.x" - webpack "5.75.0" - -"@openshift-console/dynamic-plugin-sdk@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@openshift-console/dynamic-plugin-sdk/-/dynamic-plugin-sdk-1.4.0.tgz#802c1225f22a6d59b16b5b47f0ff81f176f2db72" - integrity sha512-LcwNqG2ZzMKLiSQNpHBwAtzALQghUngILhdijndpIklSH0Dsqi05nhwAJPyuFrpwywZIj6BxE1tmaBzR5gUfcA== - dependencies: - classnames "2.x" - immutable "3.x" - lodash "^4.17.21" - react "^17.0.1" - react-i18next "^11.7.3" - react-redux "7.2.2" - react-router "5.3.x" - react-router-dom "5.3.x" - react-router-dom-v5-compat "^6.11.2" - redux "4.0.1" - redux-thunk "2.4.0" - reselect "4.x" - typesafe-actions "^4.2.1" - whatwg-fetch "2.x" - -"@openshift/dynamic-plugin-sdk-extensions@^1.3.0": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@openshift/dynamic-plugin-sdk-extensions/-/dynamic-plugin-sdk-extensions-1.4.1.tgz#8c99b972480d300600ae57219b0dac39ee15198c" - integrity sha512-py3bxKTMareMTTaJ9ArUP3NL0dgsc+9cL+PhjhpSj5C0/4lQ3RUZ1g6zXI8Vjj3oGoepXcQcV/Ee3MZU5tn0FA== - -"@openshift/dynamic-plugin-sdk-utils@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@openshift/dynamic-plugin-sdk-utils/-/dynamic-plugin-sdk-utils-4.1.0.tgz#eef80f105c287a6b7fb3a1aa83c503b2d3352281" - integrity sha512-HVtD2jdyKuFykz1GGimD1F5qnx7kLaqozg6Pv7jW7eWFK0dFGAueH+l5Gnd9x/dWjp6p1MaWgSzFTCW3VW1JLQ== - dependencies: - immutable "^3.8.2" - lodash "^4.17.21" - pluralize "^8.0.0" - typesafe-actions "^4.4.2" - uuid "^8.3.2" - -"@openshift/dynamic-plugin-sdk-webpack@^4.0.2": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@openshift/dynamic-plugin-sdk-webpack/-/dynamic-plugin-sdk-webpack-4.1.0.tgz#eb62ee18d975431411b78da15c9774d95dbe1fa7" - integrity sha512-Pkq6R+fkoE0llgv9WJBcotViAPywrzDkpWK0HSTmrVyfEuWS5cuZUs8ono6L5w9BqDBRXm3ceEuUAZA/Zrar1w== - dependencies: - lodash "^4.17.21" - semver "^7.3.7" - yup "^0.32.11" - -"@openshift/dynamic-plugin-sdk@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@openshift/dynamic-plugin-sdk/-/dynamic-plugin-sdk-4.0.0.tgz#9fe62be9a6e14a587f762e9a54782faf259786fa" - integrity sha512-OQsRqpRFz8IO6dZP6oKqdS7fLpdK25jxteevhussWFDd6RETNaLAG9GaSfvN0oigrzNIUTwH59kJx8PP8PrMug== - dependencies: - lodash "^4.17.21" - semver "^7.3.7" - uuid "^8.3.2" - yup "^0.32.11" - -"@parcel/watcher-android-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz#507f836d7e2042f798c7d07ad19c3546f9848ac1" - integrity sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA== - -"@parcel/watcher-darwin-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz#3d26dce38de6590ef79c47ec2c55793c06ad4f67" - integrity sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw== - -"@parcel/watcher-darwin-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz#99f3af3869069ccf774e4ddfccf7e64fd2311ef8" - integrity sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== - -"@parcel/watcher-freebsd-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz#14d6857741a9f51dfe51d5b08b7c8afdbc73ad9b" - integrity sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ== - -"@parcel/watcher-linux-arm-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz#43c3246d6892381db473bb4f663229ad20b609a1" - integrity sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA== - -"@parcel/watcher-linux-arm-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz#663750f7090bb6278d2210de643eb8a3f780d08e" - integrity sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q== - -"@parcel/watcher-linux-arm64-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz#ba60e1f56977f7e47cd7e31ad65d15fdcbd07e30" - integrity sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w== - -"@parcel/watcher-linux-arm64-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz#f7fbcdff2f04c526f96eac01f97419a6a99855d2" - integrity sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg== - -"@parcel/watcher-linux-x64-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz#4d2ea0f633eb1917d83d483392ce6181b6a92e4e" - integrity sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A== - -"@parcel/watcher-linux-x64-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz#277b346b05db54f55657301dd77bdf99d63606ee" - integrity sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg== - -"@parcel/watcher-win32-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz#7e9e02a26784d47503de1d10e8eab6cceb524243" - integrity sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw== - -"@parcel/watcher-win32-ia32@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz#2d0f94fa59a873cdc584bf7f6b1dc628ddf976e6" - integrity sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ== - -"@parcel/watcher-win32-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz#ae52693259664ba6f2228fa61d7ee44b64ea0947" - integrity sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA== - -"@parcel/watcher@^2.4.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.1.tgz#342507a9cfaaf172479a882309def1e991fb1200" - integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== - dependencies: - detect-libc "^1.0.3" - is-glob "^4.0.3" - micromatch "^4.0.5" - node-addon-api "^7.0.0" - optionalDependencies: - "@parcel/watcher-android-arm64" "2.5.1" - "@parcel/watcher-darwin-arm64" "2.5.1" - "@parcel/watcher-darwin-x64" "2.5.1" - "@parcel/watcher-freebsd-x64" "2.5.1" - "@parcel/watcher-linux-arm-glibc" "2.5.1" - "@parcel/watcher-linux-arm-musl" "2.5.1" - "@parcel/watcher-linux-arm64-glibc" "2.5.1" - "@parcel/watcher-linux-arm64-musl" "2.5.1" - "@parcel/watcher-linux-x64-glibc" "2.5.1" - "@parcel/watcher-linux-x64-musl" "2.5.1" - "@parcel/watcher-win32-arm64" "2.5.1" - "@parcel/watcher-win32-ia32" "2.5.1" - "@parcel/watcher-win32-x64" "2.5.1" - -"@patternfly/react-charts@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@patternfly/react-charts/-/react-charts-7.2.2.tgz#153a2b541dce3608702b34468850cb190e8aaa3a" - integrity sha512-1PFuvXz3mm/o/O+BQ2/2e66ncvtV8XIYxFaimurslCLTygodOvjBDDu/D/5tNa3HLxvA+fm2Q58893POGZi+bw== - dependencies: - "@patternfly/react-styles" "^5.2.1" - "@patternfly/react-tokens" "^5.2.1" - hoist-non-react-statics "^3.3.0" - lodash "^4.17.21" - tslib "^2.5.0" - victory-area "^36.9.1" - victory-axis "^36.9.1" - victory-bar "^36.9.1" - victory-box-plot "^36.9.1" - victory-chart "^36.9.1" - victory-core "^36.9.1" - victory-create-container "^36.9.1" - victory-cursor-container "^36.9.1" - victory-group "^36.9.1" - victory-legend "^36.9.1" - victory-line "^36.9.1" - victory-pie "^36.9.1" - victory-scatter "^36.9.1" - victory-stack "^36.9.1" - victory-tooltip "^36.9.1" - victory-voronoi-container "^36.9.1" - victory-zoom-container "^36.9.1" - -"@patternfly/react-component-groups@^5.1.0": - version "5.5.8" - resolved "https://registry.yarnpkg.com/@patternfly/react-component-groups/-/react-component-groups-5.5.8.tgz#3cf9d190901e60f0fc339aed13d199ad3350ab9f" - integrity sha512-v31FyvzewWiLVMOR8S4GgD1S+ZWqBPEawPkJG6Ja4BpF5dFJeke6lUovdEPTs4NQEUtBytF6Tsww38XGL6NaaA== - dependencies: - "@patternfly/react-core" "^5.4.1" - "@patternfly/react-icons" "^5.4.0" - "@patternfly/react-table" "^5.4.1" - clsx "^2.1.1" - react-jss "^10.10.0" - -"@patternfly/react-core@^5.0.0", "@patternfly/react-core@^5.1.1", "@patternfly/react-core@^5.2.1", "@patternfly/react-core@^5.4.1", "@patternfly/react-core@^5.4.14": - version "5.4.14" - resolved "https://registry.yarnpkg.com/@patternfly/react-core/-/react-core-5.4.14.tgz#d41d28c81884f6a45dc3c364dc5ae2c933c72e89" - integrity sha512-oXVMzLs9Pa+xmdc39L2u05zbXfY3mWuOFi4GDv44GPdDexZUFy5W69+Nv5P8cwfMim55Nf5kKYpcqmatD2bBXw== - 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@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@patternfly/react-icons/-/react-icons-5.2.1.tgz#c29e9fbecd13c33e772abe6089e31bb86b1ab2a8" - integrity sha512-aeJ0X+U2NDe8UmI5eQiT0iuR/wmUq97UkDtx3HoZcpRb9T6eUBfysllxjRqHS8rOOspdU8OWq+CUhQ/E2ZDibg== - -"@patternfly/react-icons@^5.0.0", "@patternfly/react-icons@^5.1.1", "@patternfly/react-icons@^5.2.1", "@patternfly/react-icons@^5.4.0", "@patternfly/react-icons@^5.4.2": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@patternfly/react-icons/-/react-icons-5.4.2.tgz#8937a7167a0b3abdc3c179524f456b4cbd8f0c39" - integrity sha512-CMQ5oHYzW6TPVTs2jpNJmP2vGCAKR/YeTPwHGO9dLkAUej1IcIxtCCWK2Fdo2UJsnBjuZihasyw2b6ehvbUm9Q== - -"@patternfly/react-log-viewer@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@patternfly/react-log-viewer/-/react-log-viewer-5.3.0.tgz#4df3344d0983c45a1a23ce237d4faa5d7285ece0" - integrity sha512-6jzhxwJwllLdX3jpoGdzIhvhPTfYuC6B+KuN2Laf7Iuioeig8bOMzJZFh6VXg+aBGd9j4JGv2dYryDsbDsTLvw== - dependencies: - "@patternfly/react-core" "^5.0.0" - "@patternfly/react-icons" "^5.0.0" - "@patternfly/react-styles" "^5.0.0" - memoize-one "^5.1.0" - -"@patternfly/react-styles@^5.0.0", "@patternfly/react-styles@^5.1.1", "@patternfly/react-styles@^5.2.1", "@patternfly/react-styles@^5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@patternfly/react-styles/-/react-styles-5.4.1.tgz#c101419917bcf309dfa7469820cd7320dd0c5120" - integrity sha512-XA8PXksD8uiA3RTwxdUwJXOCf+V6sVd+2HKapWAdRLvtSV+Sdk7NgCvalb4IAQncsddLopjPQD8gAHA298+N8w== - -"@patternfly/react-table@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@patternfly/react-table/-/react-table-5.2.1.tgz#0e9cf587a6602e52a4e64e3223aa383174db6159" - integrity sha512-Kcuxhh8RjcHBwLMxdnhIAGsHKjh2t5OSC8BvRSaz2hlLCFqsQf73SALjs2w8IHHnzwSZ1fTBo4js2vPPjML3gg== - dependencies: - "@patternfly/react-core" "^5.2.1" - "@patternfly/react-icons" "^5.2.1" - "@patternfly/react-styles" "^5.2.1" - "@patternfly/react-tokens" "^5.2.1" - lodash "^4.17.19" - tslib "^2.5.0" - -"@patternfly/react-table@^5.4.1": - version "5.4.16" - resolved "https://registry.yarnpkg.com/@patternfly/react-table/-/react-table-5.4.16.tgz#3197db7cf7cc3a2f721bbb8adb0fb7ca9182f5fc" - integrity sha512-K/xNdTvFKFyD6WhuBU/GCq/3LTrSaObdXSTmzefWWcPcN0gcf/J3ouiuapj951JIsP13CMmwJBNtEa3aHR8igg== - dependencies: - "@patternfly/react-core" "^5.4.14" - "@patternfly/react-icons" "^5.4.2" - "@patternfly/react-styles" "^5.4.1" - "@patternfly/react-tokens" "^5.4.1" - lodash "^4.17.21" - tslib "^2.7.0" - -"@patternfly/react-tokens@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@patternfly/react-tokens/-/react-tokens-5.2.1.tgz#fca7decaa7039dcd93fd215f3f533eff9d070b22" - integrity sha512-8GYz/jnJTGAWUJt5eRAW5dtyiHPKETeFJBPGHaUQnvi/t1ZAkoy8i4Kd/RlHsDC7ktiu813SKCmlzwBwldAHKg== - -"@patternfly/react-tokens@^5.2.1", "@patternfly/react-tokens@^5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@patternfly/react-tokens/-/react-tokens-5.4.1.tgz#03104c5b73ef438076141f897a53d16507d8a115" - integrity sha512-eygdHE7Krta1mijAv/E8RHiKIgysD0eeNTo8EXUYC8/M4e5K6sqpr2p6rQBF8QiRMN8FnbXvZT3K2OQ28pYt9Q== - -"@patternfly/react-topology@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@patternfly/react-topology/-/react-topology-5.2.1.tgz#075f5d22386539211d95f5a73ffe80d409981adc" - integrity sha512-wDg5hgNfkh8ADa1iWjqaAaigCJY2qjTg4dGe4XtT1ijhrHYUgHZm1w7wh2CADoTpogiHnDeio/0YkSROUBdqPw== - dependencies: - "@patternfly/react-core" "^5.1.1" - "@patternfly/react-icons" "^5.1.1" - "@patternfly/react-styles" "^5.1.1" - "@types/d3" "^7.4.0" - "@types/d3-force" "^1.2.1" - "@types/dagre" "0.7.42" - "@types/react-measure" "^2.0.6" - d3 "^7.8.0" - dagre "0.8.2" - lodash "^4.17.19" - mobx "^6.9.0" - mobx-react "^7.6.0" - point-in-svg-path "^1.0.1" - popper.js "^1.16.1" - react-measure "^2.3.0" - tslib "^2.0.0" - webcola "3.4.0" - -"@patternfly/react-virtualized-extension@5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@patternfly/react-virtualized-extension/-/react-virtualized-extension-5.1.0.tgz#59fde60ee11f118c89826c2d1f453ec8dc7d932b" - integrity sha512-qCBi5PeAiR54BqXcLHHG5eX4WMohGmSWgLUgENbV4NFyTOarJRzpErNb6Vx5L9D3w9p6Np17UVVnn0eH1pBKcw== - dependencies: - "@patternfly/react-core" "^5.1.1" - "@patternfly/react-icons" "^5.1.1" - "@patternfly/react-styles" "^5.1.1" - linear-layout-vector "0.0.1" - react-virtualized "^9.22.5" - tslib "^2.5.2" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@pkgr/core@^0.1.0": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.2.tgz#1cf95080bb7072fafaa3cb13b442fab4695c3893" - integrity sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ== - -"@postalsys/gettext@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@postalsys/gettext/-/gettext-4.0.1.tgz#1594211f37627a7147af3ea415f377a0211358ee" - integrity sha512-QERj2sCJTZJN4scplV9BUpZObUsB/ZAF+/MD3OBxDkqTWEmK/C0HX1i15IRJ0YpYtl3hovc4mEN37HIGvb4pbw== - dependencies: - lodash.get "4.4.2" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@remix-run/router@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.23.0.tgz#35390d0e7779626c026b11376da6789eb8389242" - integrity sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@sinclair/typebox@^0.34.0": - version "0.34.33" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.33.tgz#10ab3f1261ed9e754660250fad3e69cca1fa44b2" - integrity sha512-5HAV9exOMcXRUxo+9iYB5n09XxzCXnfy4VTNW4xnDv+FgjzAGY989C28BIdljKqmF+ZltUwujE3aossvcVtq6g== - -"@sinonjs/commons@^3.0.0", "@sinonjs/commons@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" - integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== - dependencies: - "@sinonjs/commons" "^3.0.0" - -"@sinonjs/fake-timers@^13.0.0": - version "13.0.5" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz#36b9dbc21ad5546486ea9173d6bea063eb1717d5" - integrity sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw== - dependencies: - "@sinonjs/commons" "^3.0.1" - -"@teppeis/multimaps@3.0.0", "@teppeis/multimaps@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@teppeis/multimaps/-/multimaps-3.0.0.tgz#bb9c3f8d569f589e548586fa0bbf423010ddfdc5" - integrity sha512-ID7fosbc50TbT0MK0EG12O+gAP3W3Aa/Pz4DaTtQtEvlc9Odaqi0de+xuZ7Li2GtK4HzEX7IuRWS/JmZLksR3Q== - -"@testing-library/dom@^8.0.0": - version "8.20.1" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.1.tgz#2e52a32e46fc88369eef7eef634ac2a192decd9f" - integrity sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^5.0.1" - aria-query "5.1.3" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.5.0" - pretty-format "^27.0.2" - -"@testing-library/react@^12.1.2": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" - integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== - dependencies: - "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^8.0.0" - "@types/react-dom" "<18.0.0" - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - -"@tsconfig/node10@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" - integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/aria-query@^5.0.1": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" - integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== - -"@types/asap@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/asap/-/asap-2.0.2.tgz#331a467ed634a4c0919ef63806bc56793be85247" - integrity sha512-MSz66ws9c6lTtE6MGaNFHMMLscRusdKswvT+bO97Uk9giC9OE+lBBxQyvgt0RrC/Sm+qgJHRLfrdfw5Hr/ZYbg== - -"@types/babel__core@^7.1.14": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" - integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" - integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz#968cdc2366ec3da159f61166428ee40f370e56c2" - integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng== - dependencies: - "@babel/types" "^7.20.7" - -"@types/body-parser@*": - version "1.19.5" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" - integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.13": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" - integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== - dependencies: - "@types/node" "*" - -"@types/cheerio@*": - version "0.22.35" - resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.35.tgz#0d16dc1f24d426231c181b9c31847f673867595f" - integrity sha512-yD57BchKRvTV+JD53UZ6PD8KWY5g5rvvMLRnZR3EQBCZXiDT/HR+pKpMzFGlWNhFrXlo7VPZXtKvIEwZkAWOIA== - dependencies: - "@types/node" "*" - -"@types/connect-history-api-fallback@^1.5.4": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" - integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/cypress-axe@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@types/cypress-axe/-/cypress-axe-0.8.0.tgz#c22f5cb197080378fd65082255a613fa2e8e1afa" - integrity sha512-4sTqNsXUXnl/CqmSI+xCCmYwml+/zZ66uBExMLqnF1dn3wd+BIyrLL8fJ81O/AJePuh08igR2VjZqWuZaoqWaw== - dependencies: - axe-core "^3.4.1" - -"@types/d3-array@*", "@types/d3-array@^3.0.3": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.2.1.tgz#1f6658e3d2006c4fceac53fde464166859f8b8c5" - integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg== - -"@types/d3-axis@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.6.tgz#e760e5765b8188b1defa32bc8bb6062f81e4c795" - integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-brush@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.6.tgz#c2f4362b045d472e1b186cdbec329ba52bdaee6c" - integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-chord@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.6.tgz#1706ca40cf7ea59a0add8f4456efff8f8775793d" - integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== - -"@types/d3-color@*": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" - integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== - -"@types/d3-contour@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.6.tgz#9ada3fa9c4d00e3a5093fed0356c7ab929604231" - integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== - dependencies: - "@types/d3-array" "*" - "@types/geojson" "*" - -"@types/d3-delaunay@*": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz#185c1a80cc807fdda2a3fe960f7c11c4a27952e1" - integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== - -"@types/d3-dispatch@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz#096efdf55eb97480e3f5621ff9a8da552f0961e7" - integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ== - -"@types/d3-drag@*": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.7.tgz#b13aba8b2442b4068c9a9e6d1d82f8bcea77fc02" - integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-dsv@*": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz#0a351f996dc99b37f4fa58b492c2d1c04e3dac17" - integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== - -"@types/d3-ease@*", "@types/d3-ease@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" - integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== - -"@types/d3-fetch@*": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz#c04a2b4f23181aa376f30af0283dbc7b3b569980" - integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== - dependencies: - "@types/d3-dsv" "*" - -"@types/d3-force@*": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.10.tgz#6dc8fc6e1f35704f3b057090beeeb7ac674bff1a" - integrity sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw== - -"@types/d3-force@^1.2.1": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-1.2.7.tgz#b066d91ac3b8f19c35a60b49e89e99f60187460a" - integrity sha512-zySqZfnxn67RVEGWzpD9dQA0AbNIp4Rj0qGvAuUdUNfGLrwuGCbEGAGze5hEdNaHJKQT2gTqr6j+qAzncm11ew== - -"@types/d3-format@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.4.tgz#b1e4465644ddb3fdf3a263febb240a6cd616de90" - integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== - -"@types/d3-geo@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.1.0.tgz#b9e56a079449174f0a2c8684a9a4df3f60522440" - integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== - dependencies: - "@types/geojson" "*" - -"@types/d3-hierarchy@*": - version "3.1.7" - resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz#6023fb3b2d463229f2d680f9ac4b47466f71f17b" - integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg== - -"@types/d3-interpolate@*", "@types/d3-interpolate@^3.0.1": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" - integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== - dependencies: - "@types/d3-color" "*" - -"@types/d3-path@*": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.1.tgz#f632b380c3aca1dba8e34aa049bcd6a4af23df8a" - integrity sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg== - -"@types/d3-polygon@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.2.tgz#dfae54a6d35d19e76ac9565bcb32a8e54693189c" - integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== - -"@types/d3-quadtree@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz#d4740b0fe35b1c58b66e1488f4e7ed02952f570f" - integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== - -"@types/d3-random@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.3.tgz#ed995c71ecb15e0cd31e22d9d5d23942e3300cfb" - integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== - -"@types/d3-scale-chromatic@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#dc6d4f9a98376f18ea50bad6c39537f1b5463c39" - integrity sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ== - -"@types/d3-scale@*", "@types/d3-scale@^4.0.2": - version "4.0.9" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.9.tgz#57a2f707242e6fe1de81ad7bfcccaaf606179afb" - integrity sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw== - dependencies: - "@types/d3-time" "*" - -"@types/d3-selection@*": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.11.tgz#bd7a45fc0a8c3167a631675e61bc2ca2b058d4a3" - integrity sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w== - -"@types/d3-shape@*", "@types/d3-shape@^3.1.0": - version "3.1.7" - resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.7.tgz#2b7b423dc2dfe69c8c93596e673e37443348c555" - integrity sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg== - dependencies: - "@types/d3-path" "*" - -"@types/d3-time-format@*": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.3.tgz#d6bc1e6b6a7db69cccfbbdd4c34b70632d9e9db2" - integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== - -"@types/d3-time@*", "@types/d3-time@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.4.tgz#8472feecd639691450dd8000eb33edd444e1323f" - integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g== - -"@types/d3-timer@*", "@types/d3-timer@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" - integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== - -"@types/d3-transition@*": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.9.tgz#1136bc57e9ddb3c390dccc9b5ff3b7d2b8d94706" - integrity sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-zoom@*": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" - integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== - dependencies: - "@types/d3-interpolate" "*" - "@types/d3-selection" "*" - -"@types/d3@^7.4.0": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.3.tgz#d4550a85d08f4978faf0a4c36b848c61eaac07e2" - integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== - dependencies: - "@types/d3-array" "*" - "@types/d3-axis" "*" - "@types/d3-brush" "*" - "@types/d3-chord" "*" - "@types/d3-color" "*" - "@types/d3-contour" "*" - "@types/d3-delaunay" "*" - "@types/d3-dispatch" "*" - "@types/d3-drag" "*" - "@types/d3-dsv" "*" - "@types/d3-ease" "*" - "@types/d3-fetch" "*" - "@types/d3-force" "*" - "@types/d3-format" "*" - "@types/d3-geo" "*" - "@types/d3-hierarchy" "*" - "@types/d3-interpolate" "*" - "@types/d3-path" "*" - "@types/d3-polygon" "*" - "@types/d3-quadtree" "*" - "@types/d3-random" "*" - "@types/d3-scale" "*" - "@types/d3-scale-chromatic" "*" - "@types/d3-selection" "*" - "@types/d3-shape" "*" - "@types/d3-time" "*" - "@types/d3-time-format" "*" - "@types/d3-timer" "*" - "@types/d3-transition" "*" - "@types/d3-zoom" "*" - -"@types/dagre@0.7.42": - version "0.7.42" - resolved "https://registry.yarnpkg.com/@types/dagre/-/dagre-0.7.42.tgz#2b0cd7678d5fc273df7816a88b8b34016e3a5d85" - integrity sha512-knVdi1Ul8xYgJ0wdhQ+/2YGJFKJFa/5srcPII9zvOs4KhsHfpnFrSTQXATYmjslglxRMif3Lg+wEZ0beag+94A== - -"@types/enzyme@3.10.x": - version "3.10.18" - resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.18.tgz#86010e7cb56cf1450dd391b8cc3a788f6a6fadef" - integrity sha512-RaO/TyyHZvXkpzinbMTZmd/S5biU4zxkvDsn22ujC29t9FMSzq8tnn8f2MxQ2P8GVhFRG5jTAL05DXKyTtpEQQ== - dependencies: - "@types/cheerio" "*" - "@types/react" "^16" - -"@types/estree@^1.0.5": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" - integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz#41fec4ea20e9c7b22f024ab88a95c6bb288f51b8" - integrity sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express-serve-static-core@^4.17.21", "@types/express-serve-static-core@^4.17.33": - version "4.19.6" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" - integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@*": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.1.tgz#138d741c6e5db8cc273bec5285cd6e9d0779fc9f" - integrity sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^5.0.0" - "@types/serve-static" "*" - -"@types/express@^4.17.18", "@types/express@^4.17.21": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/geojson@*": - version "7946.0.16" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.16.tgz#8ebe53d69efada7044454e3305c19017d97ced2a" - integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg== - -"@types/graceful-fs@^4.1.3": - version "4.1.9" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" - -"@types/history@^4.7.11": - version "4.7.11" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" - integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== - -"@types/hoist-non-react-statics@^3.3.1": - version "3.3.6" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz#6bba74383cdab98e8db4e20ce5b4a6b98caed010" - integrity sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw== - dependencies: - "@types/react" "*" - hoist-non-react-statics "^3.3.0" - -"@types/http-errors@*": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" - integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== - -"@types/http-proxy@^1.17.8": - version "1.17.16" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.16.tgz#dee360707b35b3cc85afcde89ffeebff7d7f9240" - integrity sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w== - dependencies: - "@types/node" "*" - -"@types/invariant@^2.2.30": - version "2.2.37" - resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.37.tgz#1709741e534364d653c87dff22fc76fa94aa7bc0" - integrity sha512-IwpIMieE55oGWiXkQPSBY1nw1nFs6bsKXTFskNY8sdS17K24vyEBRQZEwlRS7ZmXCWnJcQtbxWzly+cODWGs2A== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^29.5.14": - version "29.5.14" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5" - integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - -"@types/js-yaml@^3.10.0": - version "3.12.10" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.10.tgz#4d80d0c7dfc570eb4f0be280cb2d67789f977ba5" - integrity sha512-/Mtaq/wf+HxXpvhzFYzrzCqNRcA958sW++7JOFC8nPrZcvfi/TrzOaaGbvt27ltJB2NQbHVAg5a1wUCsyMH7NA== - -"@types/jsdom@^20.0.0": - version "20.0.1" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" - integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/lodash-es@4.17.x": - version "4.17.12" - resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b" - integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== - dependencies: - "@types/lodash" "*" - -"@types/lodash@*", "@types/lodash@^4.14.175": - version "4.17.16" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.16.tgz#94ae78fab4a38d73086e962d0b65c30d816bfb0a" - integrity sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g== - -"@types/long@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/mime@^1": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" - integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== - -"@types/minimatch@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -"@types/node-forge@^1.3.0": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" - integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== - dependencies: - "@types/node" "*" - -"@types/node@*", "@types/node@>=13.7.0": - version "22.15.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.3.tgz#b7fb9396a8ec5b5dfb1345d8ac2502060e9af68b" - integrity sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw== - dependencies: - undici-types "~6.21.0" - -"@types/node@^18.0.0": - version "18.19.87" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.87.tgz#690f000cc51e3c7f48bc00f7e86fac6eb550b709" - integrity sha512-OIAAu6ypnVZHmsHCeJ+7CCSub38QNBS9uceMQeg7K5Ur0Jr+wG9wEOEvvMbhp09pxD5czIUy/jND7s7Tb6Nw7A== - dependencies: - undici-types "~5.26.4" - -"@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.3": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" - integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== - -"@types/prop-types@*": - version "15.7.14" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.14.tgz#1433419d73b2a7ebfc6918dcefd2ec0d5cd698f2" - integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ== - -"@types/qs@*": - version "6.9.18" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.18.tgz#877292caa91f7c1b213032b34626505b746624c2" - integrity sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA== - -"@types/range-parser@*": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" - integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== - -"@types/react-dom@<18.0.0": - version "17.0.26" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.26.tgz#fa7891ba70fd39ddbaa7e85b6ff9175bb546bc1b" - integrity sha512-Z+2VcYXJwOqQ79HreLU/1fyQ88eXSSFh6I3JdrEHQIfYSI0kCQpTGvOrbE6jFGGYXKsHuwY9tBa/w5Uo6KzrEg== - -"@types/react-helmet@^6.1.4": - version "6.1.11" - resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.11.tgz#8cafcafff38f75361f451563ba7b406b0c5d3907" - integrity sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g== - dependencies: - "@types/react" "*" - -"@types/react-measure@^2.0.6": - version "2.0.12" - resolved "https://registry.yarnpkg.com/@types/react-measure/-/react-measure-2.0.12.tgz#e8ba05057357b9529aa4115064fe7ea77549f54c" - integrity sha512-Y6V11CH6bU7RhqrIdENPwEUZlPXhfXNGylMNnGwq5TAEs2wDoBA3kSVVM/EQ8u72sz5r9ja+7W8M8PIVcS841Q== - dependencies: - "@types/react" "*" - -"@types/react-redux@6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-6.0.2.tgz#10069b53db8e0920fd8656e068dcf10c53c9ad2a" - integrity sha512-rNf/oxhVDPoRLpxP1d8NvdYHJe6LtyLp0ha8a/RLnsgMVBrbmPaQUznwcmAHlgCdAYFBFqntxe8OqmixHIVI5Q== - dependencies: - "@types/react" "*" - redux "^4.0.0" - -"@types/react-router-dom@^5.3.2": - version "5.3.3" - resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" - integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== - dependencies: - "@types/history" "^4.7.11" - "@types/react" "*" - "@types/react-router" "*" - -"@types/react-router@*": - version "5.1.20" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c" - integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== - dependencies: - "@types/history" "^4.7.11" - "@types/react" "*" - -"@types/react-transition-group@2.x": - version "2.9.2" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-2.9.2.tgz#c48cf2a11977c8b4ff539a1c91d259eaa627028d" - integrity sha512-5Fv2DQNO+GpdPZcxp2x/OQG/H19A01WlmpjVD9cKvVFmoVLOZ9LvBgSWG6pSXIU4og5fgbvGPaCV5+VGkWAEHA== - dependencies: - "@types/react" "*" - -"@types/react-virtualized@9.x": - version "9.22.2" - resolved "https://registry.yarnpkg.com/@types/react-virtualized/-/react-virtualized-9.22.2.tgz#97674f050a85d0f7aab827b3d894f3f1b237922a" - integrity sha512-0Eg/ME3OHYWGxs+/n4VelfYrhXssireZaa1Uqj5SEkTpSaBu5ctFGOCVxcOqpGXRiEdrk/7uho9tlZaryCIjHA== - dependencies: - "@types/prop-types" "*" - "@types/react" "*" - -"@types/react@*": - version "19.1.2" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.2.tgz#11df86f66f188f212c90ecb537327ec68bfd593f" - integrity sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw== - dependencies: - csstype "^3.0.2" - -"@types/react@^16": - version "16.14.63" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.63.tgz#0970c0bca7f23f630c85332cee00729d4ad53845" - integrity sha512-s83gano0fRBVEw3ejdLpjgvU83F0LIeeuXqdxfPZF/Sc2bhr60tEqCK1zZ+aLirBwRSD6V5zCtOsEjcwKow3JQ== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "^0.16" - csstype "^3.0.2" - -"@types/react@^17.0.37": - version "17.0.85" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.85.tgz#1f1abf89083e731d82469a3a59ec57ea93cc476b" - integrity sha512-5oBDUsRDsrYq4DdyHaL99gE1AJCfuDhyxqF6/55fvvOIRkp1PpKuwJ+aMiGJR+GJt7YqMNclPROTHF20vY2cXA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "^0.16" - csstype "^3.0.2" - -"@types/retry@0.12.2": - version "0.12.2" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" - integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== - -"@types/scheduler@^0.16": - version "0.16.8" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" - integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== - -"@types/semver@^7.3.12": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.7.0.tgz#64c441bdae033b378b6eef7d0c3d77c329b9378e" - integrity sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA== - -"@types/send@*": - version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" - integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-index@^1.9.4": - version "1.9.4" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" - integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== - dependencies: - "@types/express" "*" - -"@types/serve-static@*", "@types/serve-static@^1.15.5": - version "1.15.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" - integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== - dependencies: - "@types/http-errors" "*" - "@types/node" "*" - "@types/send" "*" - -"@types/shallowequal@^1.1.1": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@types/shallowequal/-/shallowequal-1.1.5.tgz#37e4871c464981b4abee74990c73c8f414cd13dd" - integrity sha512-8afr1hbNqvZ/FBMY2mcfkkbk7xhlTZN4lVCgQf55YdjUQpWLemmrcvcHg94vjw+ZVIfPa3UZz/sOE6CkaMlDnQ== - -"@types/sinonjs__fake-timers@8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" - integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== - -"@types/sizzle@^2.3.2": - version "2.3.9" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.9.tgz#d4597dbd4618264c414d7429363e3f50acb66ea2" - integrity sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w== - -"@types/sockjs@^0.3.36": - version "0.3.36" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" - integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== - dependencies: - "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" - integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== - -"@types/symlink-or-copy@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/symlink-or-copy/-/symlink-or-copy-1.2.2.tgz#51b1c00b516a5774ada5d611e65eb123f988ef8d" - integrity sha512-MQ1AnmTLOncwEf9IVU+B2e4Hchrku5N67NkgcAHW0p3sdzPe0FNMANxEm6OJUzPniEQGkeT3OROLlCwZJLWFZA== - -"@types/tough-cookie@*": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" - integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== - -"@types/uuid@10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d" - integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ== - -"@types/uuid@9.0.8": - version "9.0.8" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" - integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== - -"@types/uuid@^3.4.6": - version "3.4.13" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.13.tgz#fe890e517fb840620be284ee213e81d702b1f76b" - integrity sha512-pAeZeUbLE4Z9Vi9wsWV2bYPTweEHeJJy0G4pEjOA/FSvy1Ad5U5Km8iDV6TKre1mjBiVNfAdVHKruP8bAh4Q5A== - -"@types/ws@^8.5.10": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^17.0.8": - version "17.0.33" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" - integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== - dependencies: - "@types/yargs-parser" "*" - -"@types/yauzl@^2.9.1": - version "2.10.3" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" - integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@^5.14.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" - integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/type-utils" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.14.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" - integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== - dependencies: - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - -"@typescript-eslint/type-utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" - integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== - dependencies: - "@typescript-eslint/typescript-estree" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== - -"@typescript-eslint/types@8.31.1": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.31.1.tgz#478ed6f7e8aee1be7b63a60212b6bffe1423b5d4" - integrity sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ== - -"@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@^8.23.0": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz#37792fe7ef4d3021c7580067c8f1ae66daabacdf" - integrity sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag== - dependencies: - "@typescript-eslint/types" "8.31.1" - "@typescript-eslint/visitor-keys" "8.31.1" - 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" - -"@typescript-eslint/utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== - dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" - -"@typescript-eslint/visitor-keys@8.31.1": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz#6742b0e3ba1e0c1e35bdaf78c03e759eb8dd8e75" - integrity sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw== - dependencies: - "@typescript-eslint/types" "8.31.1" - eslint-visitor-keys "^4.2.0" - -"@ungap/structured-clone@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" - integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== - -"@vue/compiler-core@3.5.13": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz#b0ae6c4347f60c03e849a05d34e5bf747c9bda05" - integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q== - dependencies: - "@babel/parser" "^7.25.3" - "@vue/shared" "3.5.13" - entities "^4.5.0" - estree-walker "^2.0.2" - source-map-js "^1.2.0" - -"@vue/compiler-dom@3.5.13": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz#bb1b8758dbc542b3658dda973b98a1c9311a8a58" - integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA== - dependencies: - "@vue/compiler-core" "3.5.13" - "@vue/shared" "3.5.13" - -"@vue/compiler-sfc@^3.5.13": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz#461f8bd343b5c06fac4189c4fef8af32dea82b46" - integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ== - dependencies: - "@babel/parser" "^7.25.3" - "@vue/compiler-core" "3.5.13" - "@vue/compiler-dom" "3.5.13" - "@vue/compiler-ssr" "3.5.13" - "@vue/shared" "3.5.13" - estree-walker "^2.0.2" - magic-string "^0.30.11" - postcss "^8.4.48" - source-map-js "^1.2.0" - -"@vue/compiler-ssr@3.5.13": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz#e771adcca6d3d000f91a4277c972a996d07f43ba" - integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA== - dependencies: - "@vue/compiler-dom" "3.5.13" - "@vue/shared" "3.5.13" - -"@vue/shared@3.5.13": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f" - integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ== - -"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.12.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" - integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== - dependencies: - "@webassemblyjs/helper-numbers" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - -"@webassemblyjs/floating-point-hex-parser@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" - integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== - -"@webassemblyjs/helper-api-error@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" - integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== - -"@webassemblyjs/helper-buffer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" - integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== - -"@webassemblyjs/helper-numbers@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" - integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.13.2" - "@webassemblyjs/helper-api-error" "1.13.2" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" - integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== - -"@webassemblyjs/helper-wasm-section@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" - integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/wasm-gen" "1.14.1" - -"@webassemblyjs/ieee754@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" - integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" - integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" - integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== - -"@webassemblyjs/wasm-edit@^1.12.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" - integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/helper-wasm-section" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-opt" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - "@webassemblyjs/wast-printer" "1.14.1" - -"@webassemblyjs/wasm-gen@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" - integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wasm-opt@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" - integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - -"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.12.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" - integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-api-error" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wast-printer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" - integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@xtuc/long" "4.2.2" - -"@webpack-cli/configtest@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" - integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== - -"@webpack-cli/info@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" - integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== - -"@webpack-cli/serve@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" - integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== - -"@wojtekmaj/enzyme-adapter-react-17@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.4.1.tgz#a9d4a2873025c6de19e1142ca076661bac69f587" - integrity sha512-WZr8i4C6WVDV7Mb8sbm7GdlEPmk1f+xOMjUKThqrkWgwsfvu90zJyyX54wyAvsS91sjtKZ0JipGj2cJnEDaxPA== - dependencies: - enzyme-adapter-utils "^1.14.0" - enzyme-shallow-equal "^1.0.4" - has "^1.0.3" - object.assign "^4.1.0" - object.values "^1.1.1" - prop-types "^15.7.2" - react-is "^17.0.0" - react-test-renderer "^17.0.0" - semver "^5.7.0" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -accepts@~1.3.4, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" - integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== - dependencies: - acorn "^8.1.0" - acorn-walk "^8.0.2" - -acorn-import-attributes@^1.9.5: - version "1.9.5" - resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" - integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^8.0.2, acorn-walk@^8.1.1, acorn-walk@^8.2.0: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.1.0, acorn@^8.11.0, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.14.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" - integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== - -adjust-sourcemap-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" - integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A== - dependencies: - loader-utils "^2.0.0" - regex-parser "^2.2.11" - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -airbnb-prop-types@^2.16.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2" - integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg== - dependencies: - array.prototype.find "^2.1.1" - function.prototype.name "^1.1.2" - is-regex "^1.1.0" - object-is "^1.1.2" - object.assign "^4.1.0" - object.entries "^1.1.2" - prop-types "^15.7.2" - prop-types-exact "^1.2.0" - react-is "^16.13.1" - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.0, ajv@^8.0.1, ajv@^8.9.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -ansi-colors@^4.1.1, ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" - integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== - -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -app-module-path@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" - integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ== - -append-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" - integrity sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA== - dependencies: - buffer-equal "^1.0.0" - -arch@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -arg@^5.0.1, arg@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -aria-query@5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== - dependencies: - deep-equal "^2.0.5" - -array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" - integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== - dependencies: - call-bound "^1.0.3" - is-array-buffer "^3.0.5" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-includes@^3.1.6, array-includes@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" - integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - is-string "^1.0.7" - -array-timsort@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" - integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.filter@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz#bef83fde8a36a14d3de988c43563e0f5249962bf" - integrity sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-array-method-boxes-properly "^1.0.0" - es-object-atoms "^1.0.0" - is-string "^1.0.7" - -array.prototype.find@^2.1.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.2.3.tgz#675a233dbcd9b65ecf1fb3f915741aebc45461e6" - integrity sha512-fO/ORdOELvjbbeIfZfzrXFMhYHGofRGqd+am9zm3tZ4GlJINj/pA2eITyfd65Vg6+ZbHd/Cys7stpoRSWtQFdA== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - es-shim-unscopables "^1.0.2" - -array.prototype.findlast@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" - integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-shim-unscopables "^1.0.2" - -array.prototype.flat@^1.2.1, array.prototype.flat@^1.3.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" - integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== - dependencies: - call-bind "^1.0.8" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-shim-unscopables "^1.0.2" - -array.prototype.flatmap@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" - integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== - dependencies: - call-bind "^1.0.8" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-shim-unscopables "^1.0.2" - -array.prototype.tosorted@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" - integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.3" - es-errors "^1.3.0" - es-shim-unscopables "^1.0.2" - -arraybuffer.prototype.slice@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" - integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== - dependencies: - array-buffer-byte-length "^1.0.1" - call-bind "^1.0.8" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - is-array-buffer "^3.0.4" - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -asap@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -assertion-error-formatter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz#be9c8825dee6a8a6c72183d915912d9b57d5d265" - integrity sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ== - dependencies: - diff "^4.0.1" - pad-right "^0.2.2" - repeat-string "^1.6.1" - -ast-module-types@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-6.0.1.tgz#4b4ca0251c57b815bab62604dcb22f8c903e2523" - integrity sha512-WHw67kLXYbZuHTmcdbIrVArCq5wxo6NEuj3hiYAWr8mwJeC+C2mMCIBIWCiDoCye/OF/xelc+teJ1ERoWmnEIA== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-function@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" - integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== - -async@^3.2.0, async@^3.2.3: - version "3.2.6" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" - integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -attr-accept@^2.2.4: - version "2.2.5" - resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.5.tgz#d7061d958e6d4f97bf8665c68b75851a0713ab5e" - integrity sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ== - -available-typed-arrays@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" - integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - dependencies: - possible-typed-array-names "^1.0.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.13.2" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef" - integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== - -axe-core@^3.4.1: - version "3.5.6" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-3.5.6.tgz#e762a90d7f6dbd244ceacb4e72760ff8aad521b5" - integrity sha512-LEUDjgmdJoA3LqklSTwKYqkjcZ4HKc4ddIYGSAiSkr46NTjzg2L9RNB+lekO9P7Dlpa87+hBtzc2Fzn/+GUWMQ== - -babel-jest@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-30.0.0-alpha.7.tgz#f13c820abced26f5decddbc077d7c0ad35194611" - integrity sha512-EGY3n/zQcuR88leKdFAt67DmUSEpc+0xqMhMuYMfT9H1rhVAIJD9hc3JId+vzOnKyhn/iQsDxKoRkNcGDAe0WQ== - dependencies: - "@jest/transform" "30.0.0-alpha.7" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^7.0.0" - babel-preset-jest "30.0.0-alpha.7" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-loader@^8.2.1: - version "8.4.1" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.4.1.tgz#6ccb75c66e62c3b144e1c5f2eaec5b8f6c08c675" - integrity sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.4" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-istanbul@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.0.tgz#629a178f63b83dc9ecee46fd20266283b1f11280" - integrity sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.3" - istanbul-lib-instrument "^6.0.2" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.0-alpha.7.tgz#105b5ca28740a7d1c200177ec8b939e7c9dc6eb2" - integrity sha512-1EGEprSFBDxHdQvnkkklxdcmb6+WssLMTQU3FyzrBVUuzXOg5+D+Z909gGPZ4bhZ9VkrDGcNg08m6OjL2jh6Bg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.13" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz#7d445f0e0607ebc8fb6b01d7e8fb02069b91dd8b" - integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.4" - semver "^6.3.1" - -babel-plugin-polyfill-corejs3@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" - integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.3" - core-js-compat "^3.40.0" - -babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz#428c615d3c177292a22b4f93ed99e358d7906a9b" - integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.4" - -babel-plugin-transform-imports@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-imports/-/babel-plugin-transform-imports-1.5.1.tgz#b3756696aea907719d0d63b0e67c88fba963adb0" - integrity sha512-Jkb0tjqye8kjOD7GdcKJTGB3dC9fruQhwRFZCeYS0sZO2otyjG6SohKR8nZiSm/OvhY+Ny2ktzVE59XKgIqskA== - dependencies: - babel-types "^6.6.0" - is-valid-path "^0.1.1" - lodash.camelcase "^4.3.0" - lodash.findkey "^4.6.0" - lodash.kebabcase "^4.1.1" - lodash.snakecase "^4.1.1" - -babel-preset-current-node-syntax@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" - integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-import-attributes" "^7.24.7" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - -babel-preset-jest@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-30.0.0-alpha.7.tgz#4848db41db4c6c6b7829b35c51c2af2b355258bf" - integrity sha512-LUWdMJ6mIJhXv56hVe+t3/lxokSd0geN8+TT1FHjJAEdHXi+ye6TRqVggn6fdrL/mxXXg9QusAzHJVjF4vxWEA== - dependencies: - babel-plugin-jest-hoist "30.0.0-alpha.7" - babel-preset-current-node-syntax "^1.0.0" - -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== - dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-types@^6.6.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -balanced-match@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" - integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== - -base64-js@^1.3.1, base64-js@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -blob-util@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" - integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== - -bluebird@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" - integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== - -bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - -bonjour-service@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" - integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== - dependencies: - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -broccoli-node-api@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/broccoli-node-api/-/broccoli-node-api-1.7.0.tgz#391aa6edecd2a42c63c111b4162956b2fa288cb6" - integrity sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw== - -broccoli-node-info@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/broccoli-node-info/-/broccoli-node-info-2.2.0.tgz#feb01c13020792f429e01d7f7845dc5b3a7932b3" - integrity sha512-VabSGRpKIzpmC+r+tJueCE5h8k6vON7EIMMWu6d/FyPdtijwLQ7QvzShEw+m3mHoDzUaj/kiZsDYrS8X2adsBg== - -broccoli-output-wrapper@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/broccoli-output-wrapper/-/broccoli-output-wrapper-3.2.5.tgz#514b17801c92922a2c2f87fd145df2a25a11bc5f" - integrity sha512-bQAtwjSrF4Nu0CK0JOy5OZqw9t5U0zzv2555EA/cF8/a8SLDTIetk9UgrtMVw7qKLKdSpOZ2liZNeZZDaKgayw== - dependencies: - fs-extra "^8.1.0" - heimdalljs-logger "^0.1.10" - symlink-or-copy "^1.2.0" - -broccoli-plugin@^4.0.5: - version "4.0.7" - resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-4.0.7.tgz#dd176a85efe915ed557d913744b181abe05047db" - integrity sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg== - dependencies: - broccoli-node-api "^1.7.0" - broccoli-output-wrapper "^3.2.5" - fs-merger "^3.2.1" - promise-map-series "^0.3.0" - quick-temp "^0.1.8" - rimraf "^3.0.2" - symlink-or-copy "^1.3.1" - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserslist@^4.21.10, browserslist@^4.24.0, browserslist@^4.24.4: - version "4.24.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.5.tgz#aa0f5b8560fe81fde84c6dcb38f759bafba0e11b" - integrity sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw== - dependencies: - caniuse-lite "^1.0.30001716" - electron-to-chromium "^1.5.149" - node-releases "^2.0.19" - update-browserslist-db "^1.1.3" - -bs-logger@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-equal@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90" - integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-json@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" - integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== - -buffer@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bundle-name@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" - integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== - dependencies: - run-applescript "^7.0.0" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cache-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" - integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== - dependencies: - buffer-json "^2.0.0" - find-cache-dir "^3.0.0" - loader-utils "^1.2.3" - mkdirp "^0.5.1" - neo-async "^2.6.1" - schema-utils "^2.0.0" - -cachedir@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" - integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== - -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.7, call-bind@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" - integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== - dependencies: - call-bind-apply-helpers "^1.0.0" - es-define-property "^1.0.0" - get-intrinsic "^1.2.4" - set-function-length "^1.2.2" - -call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" - integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== - dependencies: - call-bind-apply-helpers "^1.0.2" - get-intrinsic "^1.3.0" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0, camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001716: - version "1.0.30001716" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001716.tgz#39220dfbc58c85d9d4519e7090b656aa11ca4b85" - integrity sha512-49/c1+x3Kwz7ZIWt+4DvK3aMJy9oYXXG6/97JKsnjdCk/6n9vVyWL8NAwVt95Lwt9eigI10Hl782kDfZUUlRXw== - -capital-case@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" - integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chalk@2.4.x: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== - -check-more-types@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" - integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== - -cheerio-select@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" - integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== - dependencies: - boolbase "^1.0.0" - css-select "^5.1.0" - css-what "^6.1.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - -cheerio@^1.0.0-rc.2: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0.tgz#1ede4895a82f26e8af71009f961a9b8cb60d6a81" - integrity sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww== - dependencies: - cheerio-select "^2.1.0" - dom-serializer "^2.0.0" - domhandler "^5.0.3" - domutils "^3.1.0" - encoding-sniffer "^0.2.0" - htmlparser2 "^9.1.0" - parse5 "^7.1.2" - parse5-htmlparser2-tree-adapter "^7.0.0" - parse5-parser-stream "^7.1.2" - undici "^6.19.5" - whatwg-mimetype "^4.0.0" - -chokidar@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^4.0.0, chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - dependencies: - readdirp "^4.0.1" - -chrome-trace-event@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" - integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -ci-info@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.2.0.tgz#cbd21386152ebfe1d56f280a3b5feccbd96764c7" - integrity sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg== - -cjs-module-lexer@^1.0.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d" - integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== - -class-transformer@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336" - integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw== - -classnames@2.x, classnames@^2.3.2: - version "2.5.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" - integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-table3@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" - integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== - dependencies: - string-width "^4.2.0" - optionalDependencies: - "@colors/colors" "1.5.0" - -cli-table3@^0.6.0, cli-table3@~0.6.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" - integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== - dependencies: - string-width "^4.2.0" - optionalDependencies: - "@colors/colors" "1.5.0" - -cli-table@^0.3.11: - version "0.3.11" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.11.tgz#ac69cdecbe81dccdba4889b9a18b7da312a9d3ee" - integrity sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== - dependencies: - colors "1.0.3" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" - integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - -clsx@^1.0.4, clsx@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" - integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== - -clsx@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" - integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.1.4, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colord@^2.9.3: - version "2.9.3" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" - integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - -colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16, colorette@^2.0.20: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== - -colors@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" - integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== - -commander@12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" - integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== - -commander@7, commander@~7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commander@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.1.0.tgz#a6b263b2327f2e188c6402c42623327909f2dbec" - integrity sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w== - -commander@^10.0.0, commander@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - -commander@^12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== - -commander@^13.0.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-13.1.0.tgz#776167db68c78f38dcce1f9b8d7b8b9a488abf46" - integrity sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw== - -commander@^2.19.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -comment-json@4.x: - version "4.2.5" - resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.5.tgz#482e085f759c2704b60bc6f97f55b8c01bc41e70" - integrity sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw== - dependencies: - array-timsort "^1.0.3" - core-util-is "^1.0.3" - esprima "^4.0.1" - has-own-prop "^2.0.0" - repeat-string "^1.6.1" - -common-ancestor-path@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" - integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== - -common-tags@^1.8.0: - version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -compressible@~2.0.18: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.8.0" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.0.tgz#09420efc96e11a0f44f3a558de59e321364180f7" - integrity sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA== - dependencies: - bytes "3.1.2" - compressible "~2.0.18" - debug "2.6.9" - negotiator "~0.6.4" - on-headers "~1.0.2" - safe-buffer "5.2.1" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-stream@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - -console.table@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/console.table/-/console.table-0.10.0.tgz#0917025588875befd70cf2eff4bef2c6e2d75d04" - integrity sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g== - dependencies: - easy-table "1.1.0" - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@1.0.5, content-type@^1.0.5, content-type@~1.0.4, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^1.5.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== - -copy-to-clipboard@^3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" - integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== - dependencies: - toggle-selection "^1.0.6" - -copy-webpack-plugin@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-13.0.0.tgz#793342576eed76fdbc7936b873eae17aa7a7d9a3" - integrity sha512-FgR/h5a6hzJqATDGd9YG41SeDViH+0bkHn6WNXCi5zKAZkeESeSxLySSsFLHqLEVCh0E+rITmCf0dusXWYukeQ== - dependencies: - glob-parent "^6.0.1" - normalize-path "^3.0.0" - schema-utils "^4.2.0" - serialize-javascript "^6.0.2" - tinyglobby "^0.2.12" - -core-js-compat@^3.40.0: - version "3.42.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.42.0.tgz#ce19c29706ee5806e26d3cb3c542d4cfc0ed51bb" - integrity sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ== - dependencies: - browserslist "^4.24.4" - -core-js@3.33.1: - version "3.33.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.1.tgz#ef3766cfa382482d0a2c2bc5cb52c6d88805da52" - integrity sha512-qVSq3s+d4+GsqN0teRCJtM6tdEEXyWxjzbhVrCHmBS5ZTM0FS2MOS0D13dUXAWDUN6a+lHI/N1hF9Ytz6iLl9Q== - -core-js@^2.4.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@^1.0.3, core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" - integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== - dependencies: - env-paths "^2.2.1" - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3, cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== - -css-functions-list@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.3.tgz#95652b0c24f0f59b291a9fc386041a19d4f40dbe" - integrity sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA== - -css-jss@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/css-jss/-/css-jss-10.10.0.tgz#bd51fbd255cc24597ac0f0f32368394794d37ef3" - integrity sha512-YyMIS/LsSKEGXEaVJdjonWe18p4vXLo8CMA4FrW/kcaEyqdIGKCFXao31gbJddXEdIxSXFFURWrenBJPlKTgAA== - dependencies: - "@babel/runtime" "^7.3.1" - jss "^10.10.0" - jss-preset-default "^10.10.0" - -css-loader@^6.7.1: - version "6.11.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.11.0.tgz#33bae3bf6363d0a7c2cf9031c96c744ff54d85ba" - integrity sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== - dependencies: - icss-utils "^5.1.0" - postcss "^8.4.33" - postcss-modules-extract-imports "^3.1.0" - postcss-modules-local-by-default "^4.0.5" - postcss-modules-scope "^3.2.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.2.0" - semver "^7.5.4" - -css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-tree@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-3.1.0.tgz#7aabc035f4e66b5c86f54570d55e05b1346eb0fd" - integrity sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w== - dependencies: - mdn-data "2.12.2" - source-map-js "^1.0.1" - -css-vendor@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" - integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== - dependencies: - "@babel/runtime" "^7.8.3" - is-in-browser "^1.0.2" - -css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssfontparser@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" - integrity sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg== - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -csstype@^3.0.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== - -cucumber-messages@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/cucumber-messages/-/cucumber-messages-8.0.0.tgz#99766ffe026185798eb80fc8c720d60d8a6ac8cb" - integrity sha512-lUnWRMjwA9+KhDec/5xRZV3Du67ISumHnVLywWQXyvzmc4P+Eqx8CoeQrBQoau3Pw1hs4kJLTDyV85hFBF00SQ== - dependencies: - "@types/uuid" "^3.4.6" - protobufjs "^6.8.8" - uuid "^3.3.3" - -cypress-axe@^0.12.0: - version "0.12.2" - resolved "https://registry.yarnpkg.com/cypress-axe/-/cypress-axe-0.12.2.tgz#4bc2f23ed4930eb6020ea802ba2a201b349b14d8" - integrity sha512-gn+rVJ2JnvUWhBshbZ/8dkJdANaEB96zgtAEClJ7vNvDgmqAYb+HhQpW0GM04EqtIiPhenqUeKNQDoqrquY5+w== - -cypress-file-upload@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz#d8824cbeaab798e44be8009769f9a6c9daa1b4a1" - integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g== - -cypress-multi-reporters@^1.6.2: - version "1.6.4" - resolved "https://registry.yarnpkg.com/cypress-multi-reporters/-/cypress-multi-reporters-1.6.4.tgz#6f9d25ed8a0d8d7fa5597977adcd2237d1249931" - integrity sha512-3xU2t6pZjZy/ORHaCvci5OT1DAboS4UuMMM8NBAizeb2C9qmHt+cgAjXgurazkwkPRdO7ccK39M5ZaPCju0r6A== - dependencies: - debug "^4.3.4" - lodash "^4.17.21" - -cypress@^13.10.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.17.0.tgz#34c3d68080c4497eace0f353bd1629587a5f600d" - integrity sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA== - dependencies: - "@cypress/request" "^3.0.6" - "@cypress/xvfb" "^1.2.4" - "@types/sinonjs__fake-timers" "8.1.1" - "@types/sizzle" "^2.3.2" - arch "^2.2.0" - blob-util "^2.0.2" - bluebird "^3.7.2" - buffer "^5.7.1" - cachedir "^2.3.0" - chalk "^4.1.0" - check-more-types "^2.24.0" - ci-info "^4.0.0" - cli-cursor "^3.1.0" - cli-table3 "~0.6.1" - commander "^6.2.1" - common-tags "^1.8.0" - dayjs "^1.10.4" - debug "^4.3.4" - enquirer "^2.3.6" - eventemitter2 "6.4.7" - execa "4.1.0" - executable "^4.1.1" - extract-zip "2.0.1" - figures "^3.2.0" - fs-extra "^9.1.0" - getos "^3.2.1" - is-installed-globally "~0.4.0" - lazy-ass "^1.6.0" - listr2 "^3.8.3" - lodash "^4.17.21" - log-symbols "^4.0.0" - minimist "^1.2.8" - ospath "^1.2.2" - pretty-bytes "^5.6.0" - process "^0.11.10" - proxy-from-env "1.0.0" - request-progress "^3.0.0" - semver "^7.5.3" - supports-color "^8.1.1" - tmp "~0.2.3" - tree-kill "1.2.2" - untildify "^4.0.0" - yauzl "^2.10.0" - -"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.1.6, d3-array@^3.2.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" - integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== - dependencies: - internmap "1 - 2" - -d3-axis@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" - integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== - -d3-brush@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" - integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "3" - d3-transition "3" - -d3-chord@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" - integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== - dependencies: - d3-path "1 - 3" - -"d3-color@1 - 3", d3-color@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" - integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== - -d3-contour@4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" - integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== - dependencies: - d3-array "^3.2.0" - -d3-delaunay@6: - version "6.0.4" - resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" - integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== - dependencies: - delaunator "5" - -d3-dispatch@1, d3-dispatch@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== - -"d3-dispatch@1 - 3", d3-dispatch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" - integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== - -"d3-drag@2 - 3", d3-drag@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" - integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== - dependencies: - d3-dispatch "1 - 3" - d3-selection "3" - -d3-drag@^1.0.4: - version "1.2.5" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" - integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== - dependencies: - d3-dispatch "1" - d3-selection "1" - -"d3-dsv@1 - 3", d3-dsv@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" - integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== - dependencies: - commander "7" - iconv-lite "0.6" - rw "1" - -"d3-ease@1 - 3", d3-ease@3, d3-ease@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" - integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== - -d3-fetch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" - integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== - dependencies: - d3-dsv "1 - 3" - -d3-force@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" - integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== - dependencies: - d3-dispatch "1 - 3" - d3-quadtree "1 - 3" - d3-timer "1 - 3" - -"d3-format@1 - 3", d3-format@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" - integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== - -d3-geo@3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.1.tgz#6027cf51246f9b2ebd64f99e01dc7c3364033a4d" - integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q== - dependencies: - d3-array "2.5.0 - 3" - -d3-hierarchy@3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" - integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== - -"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3, d3-interpolate@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" - integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== - dependencies: - d3-color "1 - 3" - -d3-path@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== - -"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" - integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== - -d3-polygon@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" - integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== - -"d3-quadtree@1 - 3", d3-quadtree@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" - integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== - -d3-random@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" - integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== - -d3-scale-chromatic@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" - integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== - dependencies: - d3-color "1 - 3" - d3-interpolate "1 - 3" - -d3-scale@4, d3-scale@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" - integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== - dependencies: - d3-array "2.10.0 - 3" - d3-format "1 - 3" - d3-interpolate "1.2.0 - 3" - d3-time "2.1.1 - 3" - d3-time-format "2 - 4" - -d3-selection@1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" - integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== - -"d3-selection@2 - 3", d3-selection@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" - integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== - -d3-shape@3, d3-shape@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" - integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== - dependencies: - d3-path "^3.1.0" - -d3-shape@^1.3.5: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== - dependencies: - d3-path "1" - -"d3-time-format@2 - 4", d3-time-format@4: - version "4.1.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" - integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== - dependencies: - d3-time "1 - 3" - -"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3, d3-time@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" - integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== - dependencies: - d3-array "2 - 3" - -"d3-timer@1 - 3", d3-timer@3, d3-timer@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" - integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== - -d3-timer@^1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - -"d3-transition@2 - 3", d3-transition@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" - integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== - dependencies: - d3-color "1 - 3" - d3-dispatch "1 - 3" - d3-ease "1 - 3" - d3-interpolate "1 - 3" - d3-timer "1 - 3" - -d3-zoom@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" - integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "2 - 3" - d3-transition "2 - 3" - -d3@^7.8.0: - version "7.9.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.9.0.tgz#579e7acb3d749caf8860bd1741ae8d371070cd5d" - integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA== - dependencies: - d3-array "3" - d3-axis "3" - d3-brush "3" - d3-chord "3" - d3-color "3" - d3-contour "4" - d3-delaunay "6" - d3-dispatch "3" - d3-drag "3" - d3-dsv "3" - d3-ease "3" - d3-fetch "3" - d3-force "3" - d3-format "3" - d3-geo "3" - d3-hierarchy "3" - d3-interpolate "3" - d3-path "3" - d3-polygon "3" - d3-quadtree "3" - d3-random "3" - d3-scale "4" - d3-scale-chromatic "3" - d3-selection "3" - d3-shape "3" - d3-time "3" - d3-time-format "4" - d3-timer "3" - d3-transition "3" - d3-zoom "3" - -dagre@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.2.tgz#755b79f4d5499d63cf74c3368fb08add93eceafe" - integrity sha512-TEOOGZOkCOgCG7AoUIq64sJ3d21SMv8tyoqteLpX+UsUsS9Qw8iap4hhogXY4oB3r0bbZuAjO0atAilgCmsE0Q== - dependencies: - graphlib "^2.1.5" - lodash "^4.17.4" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - -data-view-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" - integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - is-data-view "^1.0.2" - -data-view-byte-length@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" - integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - is-data-view "^1.0.2" - -data-view-byte-offset@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" - integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -dateformat@^4.5.1: - version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" - integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== - -dayjs@^1.10.4: - version "1.11.13" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" - integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== - -debug@2.6.9, debug@^2.2.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@^4.3.6, debug@^4.3.7: - version "4.4.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" - integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== - dependencies: - ms "^2.1.3" - -debug@4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -decimal.js@^10.4.2: - version "10.5.0" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.5.0.tgz#0f371c7cf6c4898ce0afb09836db73cd82010f22" - integrity sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw== - -dedent@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.6.0.tgz#79d52d6389b1ffa67d2bcef59ba51847a9d503b2" - integrity sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA== - -deep-equal@^2.0.5, deep-equal@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" - integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.5" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.2" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.13" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" - integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -default-browser-id@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" - integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== - -default-browser@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.2.1.tgz#7b7ba61204ff3e425b556869ae6d3e9d9f1712cf" - integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== - dependencies: - bundle-name "^4.1.0" - default-browser-id "^5.0.0" - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.1.3, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delaunator@5: - version "5.0.1" - resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.1.tgz#39032b08053923e924d6094fe2cde1a99cc51278" - integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw== - dependencies: - robust-predicates "^3.0.2" - -delaunator@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-4.0.1.tgz#3d779687f57919a7a418f8ab947d3bddb6846957" - integrity sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag== - -delaunay-find@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/delaunay-find/-/delaunay-find-0.0.6.tgz#2ed017a79410013717fa7d9422e082c2502d4ae3" - integrity sha512-1+almjfrnR7ZamBk0q3Nhg6lqSe6Le4vL0WJDSMx4IDbQwTpUTXPjxC00lqLBT8MYsJpPCbI16sIkw9cPsbi7Q== - dependencies: - delaunator "^4.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -dependency-tree@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-11.1.1.tgz#5ab5fbb223fb32a9b03ed40952eb04bf09929ad6" - integrity sha512-pnkCd8VGOq70EVaEQxDC9mZCjCwYj4yG4j8h+PEJswuWp+rdE6p8zbtVvWk+yPwaVimOjlhNi782U9K5KOU9MQ== - dependencies: - commander "^12.1.0" - filing-cabinet "^5.0.3" - precinct "^12.2.0" - typescript "^5.7.3" - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -detective-amd@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-6.0.1.tgz#71eb13b5d9b17222d7b4de3fb89a8e684d8b9a23" - integrity sha512-TtyZ3OhwUoEEIhTFoc1C9IyJIud3y+xYkSRjmvCt65+ycQuc3VcBrPRTMWoO/AnuCyOB8T5gky+xf7Igxtjd3g== - dependencies: - ast-module-types "^6.0.1" - escodegen "^2.1.0" - get-amd-module-type "^6.0.1" - node-source-walk "^7.0.1" - -detective-cjs@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/detective-cjs/-/detective-cjs-6.0.1.tgz#4fb81a67337630811409abb2148b2b622cacbdcd" - integrity sha512-tLTQsWvd2WMcmn/60T2inEJNhJoi7a//PQ7DwRKEj1yEeiQs4mrONgsUtEJKnZmrGWBBmE0kJ1vqOG/NAxwaJw== - dependencies: - ast-module-types "^6.0.1" - node-source-walk "^7.0.1" - -detective-es6@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-5.0.1.tgz#f0c026bc9b767a243e57ef282f4343fcf3b8ec4e" - integrity sha512-XusTPuewnSUdoxRSx8OOI6xIA/uld/wMQwYsouvFN2LAg7HgP06NF1lHRV3x6BZxyL2Kkoih4ewcq8hcbGtwew== - dependencies: - node-source-walk "^7.0.1" - -detective-postcss@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-7.0.1.tgz#f5822d8988339fb56851fcdb079d51fbcff114db" - integrity sha512-bEOVpHU9picRZux5XnwGsmCN4+8oZo7vSW0O0/Enq/TO5R2pIAP2279NsszpJR7ocnQt4WXU0+nnh/0JuK4KHQ== - dependencies: - is-url "^1.2.4" - postcss-values-parser "^6.0.2" - -detective-sass@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/detective-sass/-/detective-sass-6.0.1.tgz#fcf5aa51bebf7b721807be418418470ee2409f8a" - integrity sha512-jSGPO8QDy7K7pztUmGC6aiHkexBQT4GIH+mBAL9ZyBmnUIOFbkfZnO8wPRRJFP/QP83irObgsZHCoDHZ173tRw== - dependencies: - gonzales-pe "^4.3.0" - node-source-walk "^7.0.1" - -detective-scss@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/detective-scss/-/detective-scss-5.0.1.tgz#6a7f792dc9c0e8cfc0d252a50ba26a6df12596a7" - integrity sha512-MAyPYRgS6DCiS6n6AoSBJXLGVOydsr9huwXORUlJ37K3YLyiN0vYHpzs3AdJOgHobBfispokoqrEon9rbmKacg== - dependencies: - gonzales-pe "^4.3.0" - node-source-walk "^7.0.1" - -detective-stylus@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/detective-stylus/-/detective-stylus-5.0.1.tgz#57d54a0b405305ee16655e42008b38a827a9f179" - integrity sha512-Dgn0bUqdGbE3oZJ+WCKf8Dmu7VWLcmRJGc6RCzBgG31DLIyai9WAoEhYRgIHpt/BCRMrnXLbGWGPQuBUrnF0TA== - -detective-typescript@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/detective-typescript/-/detective-typescript-14.0.0.tgz#3cf429652eb7d7d2be2c050ac47af957a559527d" - integrity sha512-pgN43/80MmWVSEi5LUuiVvO/0a9ss5V7fwVfrJ4QzAQRd3cwqU1SfWGXJFcNKUqoD5cS+uIovhw5t/0rSeC5Mw== - dependencies: - "@typescript-eslint/typescript-estree" "^8.23.0" - ast-module-types "^6.0.1" - node-source-walk "^7.0.1" - -detective-vue2@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/detective-vue2/-/detective-vue2-2.2.0.tgz#35fd1d39e261b064aca9fcaf20e136c76877482a" - integrity sha512-sVg/t6O2z1zna8a/UIV6xL5KUa2cMTQbdTIIvqNM0NIPswp52fe43Nwmbahzj3ww4D844u/vC2PYfiGLvD3zFA== - dependencies: - "@dependents/detective-less" "^5.0.1" - "@vue/compiler-sfc" "^3.5.13" - detective-es6 "^5.0.1" - detective-sass "^6.0.1" - detective-scss "^5.0.1" - detective-stylus "^5.0.1" - detective-typescript "^14.0.0" - -diff-sequences@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-30.0.0-alpha.7.tgz#4d93fe1a7368ecb7140b27b292391010136c5e2b" - integrity sha512-T8qx2cdaE0DW3nMpgf0jxOvSECOIkvPpjEeTs3qVT/+gzhZGLKjex4lc+dNiaLA92hDwmt6AG9WO/j2RUlNQJw== - -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^5.0.0, diff@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" - integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" - integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== - -dnd-core@^9.5.1: - version "9.5.1" - resolved "https://registry.yarnpkg.com/dnd-core/-/dnd-core-9.5.1.tgz#e9ec02d33529b68fa528865704d40ac4b14f2baf" - integrity sha512-/yEWFF2jg51yyB8uA2UbvBr9Qis0Oo/4p9cqHLEKZdxzHHVSPfq0a/ool8NG6dIS6Q4uN+oKGObY0rNWiopJDA== - dependencies: - "@types/asap" "^2.0.0" - "@types/invariant" "^2.2.30" - asap "^2.0.6" - invariant "^2.2.4" - redux "^4.0.4" - -dns-packet@^5.2.2: - version "5.6.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" - integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-accessibility-api@^0.5.9: - version "0.5.16" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" - integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== - -dom-helpers@^3.3.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" - integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== - dependencies: - "@babel/runtime" "^7.1.2" - -dom-helpers@^5.1.3: - version "5.2.1" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" - integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== - dependencies: - "@babel/runtime" "^7.8.7" - csstype "^3.0.2" - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - -domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -domutils@^3.0.1, domutils@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" - integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - -dunder-proto@^1.0.0, dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - -duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -easy-table@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/easy-table/-/easy-table-1.1.0.tgz#86f9ab4c102f0371b7297b92a651d5824bc8cb73" - integrity sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA== - optionalDependencies: - wcwidth ">=1.0.1" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -ejs@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" - integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== - dependencies: - jake "^10.8.5" - -electron-to-chromium@^1.5.149: - version "1.5.149" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.149.tgz#b6d1a468b9537165e2494d0b5b82e9b3392d0ddb" - integrity sha512-UyiO82eb9dVOx8YO3ajDf9jz2kKyt98DEITRdeLPstOEuTlLzDA4Gyq5K9he71TQziU5jUVu2OAu5N48HmQiyQ== - -emittery@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" - integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -encodeurl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" - integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== - -encoding-sniffer@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz#799569d66d443babe82af18c9f403498365ef1d5" - integrity sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg== - dependencies: - iconv-lite "^0.6.3" - whatwg-encoding "^3.1.1" - -encoding@0.1.13, encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.1, enhanced-resolve@^5.18.0: - version "5.18.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf" - integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -enquirer@^2.3.6: - version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" - integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== - dependencies: - ansi-colors "^4.1.1" - strip-ansi "^6.0.1" - -ensure-posix-path@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz#3c62bdb19fa4681544289edb2b382adc029179ce" - integrity sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw== - -entities@^4.2.0, entities@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -entities@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.0.tgz#09c9e29cb79b0a6459a9b9db9efb418ac5bb8e51" - integrity sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw== - -env-paths@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -envinfo@^7.7.3: - version "7.14.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.14.0.tgz#26dac5db54418f2a4c1159153a0b2ae980838aae" - integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== - -enzyme-adapter-utils@^1.14.0: - version "1.14.2" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.2.tgz#1d012e6261accbe7d406db098bb4d8dfdce8c003" - integrity sha512-1ZC++RlsYRaiOWE5NRaF5OgsMt7F5rn/VuaJIgc7eW/fmgg8eS1/Ut7EugSPPi7VMdWMLcymRnMF+mJUJ4B8KA== - dependencies: - airbnb-prop-types "^2.16.0" - function.prototype.name "^1.1.6" - hasown "^2.0.0" - object.assign "^4.1.5" - object.fromentries "^2.0.7" - prop-types "^15.8.1" - semver "^6.3.1" - -enzyme-shallow-equal@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz#4e3aa678022387a68e6c47aff200587851885b5e" - integrity sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg== - dependencies: - hasown "^2.0.0" - object-is "^1.1.5" - -enzyme@3.10.x: - version "3.10.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.10.0.tgz#7218e347c4a7746e133f8e964aada4a3523452f6" - integrity sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg== - dependencies: - array.prototype.flat "^1.2.1" - cheerio "^1.0.0-rc.2" - function.prototype.name "^1.1.0" - has "^1.0.3" - html-element-map "^1.0.0" - is-boolean-object "^1.0.0" - is-callable "^1.1.4" - is-number-object "^1.0.3" - is-regex "^1.0.4" - is-string "^1.0.4" - is-subset "^0.1.1" - lodash.escape "^4.0.1" - lodash.isequal "^4.5.0" - object-inspect "^1.6.0" - object-is "^1.0.1" - object.assign "^4.1.0" - object.entries "^1.0.4" - object.values "^1.0.4" - raf "^3.4.0" - rst-selector-parser "^2.2.3" - string.prototype.trim "^1.1.2" - -eol@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd" - integrity sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" - integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== - dependencies: - stackframe "^1.3.4" - -es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9: - version "1.23.9" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.9.tgz#5b45994b7de78dada5c1bebf1379646b32b9d606" - integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA== - dependencies: - array-buffer-byte-length "^1.0.2" - arraybuffer.prototype.slice "^1.0.4" - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - call-bound "^1.0.3" - data-view-buffer "^1.0.2" - data-view-byte-length "^1.0.2" - data-view-byte-offset "^1.0.1" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-set-tostringtag "^2.1.0" - es-to-primitive "^1.3.0" - function.prototype.name "^1.1.8" - get-intrinsic "^1.2.7" - get-proto "^1.0.0" - get-symbol-description "^1.1.0" - globalthis "^1.0.4" - gopd "^1.2.0" - has-property-descriptors "^1.0.2" - has-proto "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - internal-slot "^1.1.0" - is-array-buffer "^3.0.5" - is-callable "^1.2.7" - is-data-view "^1.0.2" - is-regex "^1.2.1" - is-shared-array-buffer "^1.0.4" - is-string "^1.1.1" - is-typed-array "^1.1.15" - is-weakref "^1.1.0" - math-intrinsics "^1.1.0" - object-inspect "^1.13.3" - object-keys "^1.1.1" - object.assign "^4.1.7" - own-keys "^1.0.1" - regexp.prototype.flags "^1.5.3" - safe-array-concat "^1.1.3" - safe-push-apply "^1.0.0" - safe-regex-test "^1.1.0" - set-proto "^1.0.0" - string.prototype.trim "^1.2.10" - string.prototype.trimend "^1.0.9" - string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.3" - typed-array-byte-length "^1.0.3" - typed-array-byte-offset "^1.0.4" - typed-array-length "^1.0.7" - unbox-primitive "^1.1.0" - which-typed-array "^1.1.18" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-define-property@^1.0.0, es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - -es-iterator-helpers@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz#d1dd0f58129054c0ad922e6a9a1e65eef435fe75" - integrity sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - es-abstract "^1.23.6" - es-errors "^1.3.0" - es-set-tostringtag "^2.0.3" - function-bind "^1.1.2" - get-intrinsic "^1.2.6" - globalthis "^1.0.4" - gopd "^1.2.0" - has-property-descriptors "^1.0.2" - has-proto "^1.2.0" - has-symbols "^1.1.0" - internal-slot "^1.1.0" - iterator.prototype "^1.1.4" - safe-array-concat "^1.1.3" - -es-module-lexer@^1.2.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" - integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== - -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.0.3, es-set-tostringtag@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" - integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== - dependencies: - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -es-shim-unscopables@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5" - integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== - dependencies: - hasown "^2.0.2" - -es-to-primitive@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" - integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== - dependencies: - is-callable "^1.2.7" - is-date-object "^1.0.5" - is-symbol "^1.0.4" - -esbuild@~0.25.0: - version "0.25.3" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.3.tgz#371f7cb41283e5b2191a96047a7a89562965a285" - integrity sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q== - optionalDependencies: - "@esbuild/aix-ppc64" "0.25.3" - "@esbuild/android-arm" "0.25.3" - "@esbuild/android-arm64" "0.25.3" - "@esbuild/android-x64" "0.25.3" - "@esbuild/darwin-arm64" "0.25.3" - "@esbuild/darwin-x64" "0.25.3" - "@esbuild/freebsd-arm64" "0.25.3" - "@esbuild/freebsd-x64" "0.25.3" - "@esbuild/linux-arm" "0.25.3" - "@esbuild/linux-arm64" "0.25.3" - "@esbuild/linux-ia32" "0.25.3" - "@esbuild/linux-loong64" "0.25.3" - "@esbuild/linux-mips64el" "0.25.3" - "@esbuild/linux-ppc64" "0.25.3" - "@esbuild/linux-riscv64" "0.25.3" - "@esbuild/linux-s390x" "0.25.3" - "@esbuild/linux-x64" "0.25.3" - "@esbuild/netbsd-arm64" "0.25.3" - "@esbuild/netbsd-x64" "0.25.3" - "@esbuild/openbsd-arm64" "0.25.3" - "@esbuild/openbsd-x64" "0.25.3" - "@esbuild/sunos-x64" "0.25.3" - "@esbuild/win32-arm64" "0.25.3" - "@esbuild/win32-ia32" "0.25.3" - "@esbuild/win32-x64" "0.25.3" - -escalade@^3.1.1, escalade@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-html@^1.0.3, escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^2.0.0, escodegen@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-prettier@^8.5.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" - integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== - -eslint-plugin-cypress@^2.12.1: - version "2.15.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.2.tgz#f22e12fad4c434edad7b298ef92bac8fa087ffa0" - integrity sha512-CtcFEQTDKyftpI22FVGpx8bkpKyYXBlNge6zSo0pl5/qJvBAnzaD76Vu2AsP16d6mTj478Ldn2mhgrWV+Xr0vQ== - dependencies: - globals "^13.20.0" - -eslint-plugin-prettier@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-react-hooks@4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.1.2.tgz#2eb53731d11c95826ef7a7272303eabb5c9a271e" - integrity sha512-ykUeqkGyUGgwTtk78C0o8UG2fzwmgJ0qxBGPp2WqRKsTwcLuVf01kTDRAtOsd4u6whX2XOC8749n2vPydP82fg== - -eslint-plugin-react@^7.29.1: - version "7.37.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz#2975511472bdda1b272b34d779335c9b0e877065" - integrity sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA== - dependencies: - array-includes "^3.1.8" - array.prototype.findlast "^1.2.5" - array.prototype.flatmap "^1.3.3" - array.prototype.tosorted "^1.1.4" - doctrine "^2.1.0" - es-iterator-helpers "^1.2.1" - estraverse "^5.3.0" - hasown "^2.0.2" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.9" - object.fromentries "^2.0.8" - object.values "^1.2.1" - prop-types "^15.8.1" - resolve "^2.0.0-next.5" - semver "^6.3.1" - string.prototype.matchall "^4.0.12" - string.prototype.repeat "^1.0.0" - -eslint-scope@5.1.1, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint-visitor-keys@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" - integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== - -eslint@^8.10.0: - version "8.57.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" - integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.1" - "@humanwhocodes/config-array" "^0.13.0" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" - integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -eventemitter2@6.4.7: - version "6.4.7" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" - integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.2.0, events@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -execa@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -executable@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== - dependencies: - pify "^2.2.0" - -exit-x@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/exit-x/-/exit-x-0.2.2.tgz#1f9052de3b8d99a696b10dad5bced9bdd5c3aa64" - integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== - -expect@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/expect/-/expect-30.0.0-alpha.7.tgz#4cfcf0bccf863cd5e4055ef3285cd22d015eaa91" - integrity sha512-tWb6p3Dn1S8GTunR9jfsku6l6dkZrqZQ5smI+UWx0KIk5ugS0QuPo66w40NdWRWcH+JklC9Dk8Elh2S2M4FfSw== - dependencies: - "@jest/expect-utils" "30.0.0-alpha.7" - jest-get-type "30.0.0-alpha.7" - jest-matcher-utils "30.0.0-alpha.7" - jest-message-util "30.0.0-alpha.7" - jest-mock "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - -expect@^29.0.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - -express@^4.21.2: - version "4.21.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" - integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.3" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.12" - proxy-addr "~2.0.7" - qs "6.13.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.9, fast-glob@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.8" - -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-uri@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" - integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== - -fastest-levenshtein@^1.0.12, fastest-levenshtein@^1.0.16: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -fastq@^1.6.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" - integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - -fdir@^6.4.4: - version "6.4.4" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.4.tgz#1cfcf86f875a883e19a8fab53622cfe992e8d2f9" - integrity sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg== - -figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-entry-cache@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-9.1.0.tgz#2e66ad98ce93f49aed1b178c57b0b5741591e075" - integrity sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg== - dependencies: - flat-cache "^5.0.0" - -file-saver@1.3.x: - version "1.3.8" - resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-1.3.8.tgz#e68a30c7cb044e2fb362b428469feb291c2e09d8" - integrity sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg== - -file-selector@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-2.1.2.tgz#fe7c7ee9e550952dfbc863d73b14dc740d7de8b4" - integrity sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig== - dependencies: - tslib "^2.7.0" - -filelist@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - -filing-cabinet@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/filing-cabinet/-/filing-cabinet-5.0.3.tgz#e5ab960958653ee7fe70d5d99b3b88c342ce7907" - integrity sha512-PlPcMwVWg60NQkhvfoxZs4wEHjhlOO/y7OAm4sKM60o1Z9nttRY4mcdQxp/iZ+kg/Vv6Hw1OAaTbYVM9DA9pYg== - dependencies: - app-module-path "^2.2.0" - commander "^12.1.0" - enhanced-resolve "^5.18.0" - module-definition "^6.0.1" - module-lookup-amd "^9.0.3" - resolve "^1.22.10" - resolve-dependency-path "^4.0.1" - sass-lookup "^6.1.0" - stylus-lookup "^6.1.0" - tsconfig-paths "^4.2.0" - typescript "^5.7.3" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== - dependencies: - debug "2.6.9" - encodeurl "~2.0.0" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-cypress-specs@^1.45.2: - version "1.54.0" - resolved "https://registry.yarnpkg.com/find-cypress-specs/-/find-cypress-specs-1.54.0.tgz#e977a0d7661cadd5f4af85c9ae22aac3db9025a1" - integrity sha512-FlUxYFWtaVf39UMXSldDY1TEMHVS+5uwtXBRjhbxkBFNHqUKDMuOZyvf6zPCRonlGbSN9WjPQq9Yetx6lIQoZg== - dependencies: - "@actions/core" "^1.10.0" - arg "^5.0.1" - console.table "^0.10.0" - debug "^4.3.3" - find-test-names "1.29.7" - globby "^11.1.0" - minimatch "^3.0.4" - pluralize "^8.0.0" - require-and-forget "^1.0.1" - shelljs "^0.8.5" - spec-change "^1.11.0" - tsx "^4.19.3" - -find-test-names@1.29.7: - version "1.29.7" - resolved "https://registry.yarnpkg.com/find-test-names/-/find-test-names-1.29.7.tgz#a014ced692fc367be65f4910fe41eaafb210f7e9" - integrity sha512-Ps/+M9+rvYqR/gzvfjsfrdeypfSViGZ7Cn7clOGllTlwBcKVGqwfgllGBJ4XwzGp+PaEZZ1MbG4qT1qp4AD9DQ== - dependencies: - "@babel/parser" "^7.24.7" - "@babel/plugin-syntax-jsx" "^7.24.7" - acorn-walk "^8.2.0" - debug "^4.3.3" - globby "^11.0.4" - simple-bin-help "^1.8.0" - -find-up-simple@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/find-up-simple/-/find-up-simple-1.0.1.tgz#18fb90ad49e45252c4d7fca56baade04fa3fca1e" - integrity sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ== - -find-up@4.x, find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flat-cache@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-5.0.0.tgz#26c4da7b0f288b408bb2b506b2cb66c240ddf062" - integrity sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ== - dependencies: - flatted "^3.3.1" - keyv "^4.5.4" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flatted@^3.2.9, flatted@^3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" - integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== - -flush-write-stream@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -focus-trap@7.6.2: - version "7.6.2" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.6.2.tgz#a501988821ca23d0150a7229eb7a20a3695bdf0e" - integrity sha512-9FhUxK1hVju2+AiQIDJ5Dd//9R2n2RAfJ0qfhF4IHGHgcoEUTMpbTeG/zbEuwaiYXfuAH6XE0/aCyxDdRM+W5w== - dependencies: - tabbable "^6.2.0" - -follow-redirects@^1.0.0: - version "1.15.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" - integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== - -for-each@^0.3.3, for-each@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" - integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== - dependencies: - is-callable "^1.2.7" - -foreground-child@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@^4.0.0, form-data@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c" - integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" - mime-types "^2.1.12" - -formik@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/formik/-/formik-2.0.3.tgz#7cf088b1a6e0ba21782b73a90453a78426959168" - integrity sha512-kYBvcxlsYSncY8OiJHD49C0UmoWXbgmIc9V1g3N1WwBJ7SMLk34QpcJDgroYd42K1cH+mSJlXhB7PlgTXTzlWg== - dependencies: - deepmerge "^2.1.1" - hoist-non-react-statics "^3.3.0" - lodash "^4.17.14" - lodash-es "^4.17.14" - react-fast-compare "^2.0.1" - scheduler "^0.14.0" - tiny-warning "^1.0.2" - tslib "^1.9.3" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.0.1, fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-merger@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/fs-merger/-/fs-merger-3.2.1.tgz#a225b11ae530426138294b8fbb19e82e3d4e0b3b" - integrity sha512-AN6sX12liy0JE7C2evclwoo0aCG3PFulLjrTLsJpWh/2mM+DinhpSGqYLbHBBbIW1PLRNcFhJG8Axtz8mQW3ug== - dependencies: - broccoli-node-api "^1.7.0" - broccoli-node-info "^2.1.0" - fs-extra "^8.0.1" - fs-tree-diff "^2.0.1" - walk-sync "^2.2.0" - -fs-mkdirp-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" - integrity sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ== - dependencies: - graceful-fs "^4.1.11" - through2 "^2.0.3" - -fs-tree-diff@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fs-tree-diff/-/fs-tree-diff-2.0.1.tgz#343e4745ab435ec39ebac5f9059ad919cd034afa" - integrity sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A== - dependencies: - "@types/symlink-or-copy" "^1.2.0" - heimdalljs-logger "^0.1.7" - object-assign "^4.1.0" - path-posix "^1.0.0" - symlink-or-copy "^1.1.8" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -fsu@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fsu/-/fsu-1.1.1.tgz#bd36d3579907c59d85b257a75b836aa9e0c31834" - integrity sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.0, function.prototype.name@^1.1.2, function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" - integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - functions-have-names "^1.2.3" - hasown "^2.0.2" - is-callable "^1.2.7" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -fuzzysearch@1.0.x: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fuzzysearch/-/fuzzysearch-1.0.3.tgz#dffc80f6d6b04223f2226aa79dd194231096d008" - integrity sha512-s+kNWQuI3mo9OALw0HJ6YGmMbLqEufCh2nX/zzV5CrICQ/y4AwPxM+6TIiF9ItFCHXFCyM/BfCCmN57NTIJuPg== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-amd-module-type@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-6.0.1.tgz#191f479ae8706c246b52bf402fbe1bb0965d9f1e" - integrity sha512-MtjsmYiCXcYDDrGqtNbeIYdAl85n+5mSv2r3FbzER/YV3ZILw4HNNIw34HuV5pyl0jzs6GFYU1VHVEefhgcNHQ== - dependencies: - ast-module-types "^6.0.1" - node-source-walk "^7.0.1" - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.2, get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - dependencies: - call-bind-apply-helpers "^1.0.2" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.1.1" - function-bind "^1.1.2" - get-proto "^1.0.1" - gopd "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - math-intrinsics "^1.1.0" - -get-node-dimensions@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-node-dimensions/-/get-node-dimensions-1.2.1.tgz#fb7b4bb57060fb4247dd51c9d690dfbec56b0823" - integrity sha512-2MSPMu7S1iOTL+BOa6K1S62hB2zUAYNF/lV0gSVlOaacd087lc6nR1H1r0e3B1CerTo+RceOmi1iJW+vp21xcQ== - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-proto@^1.0.0, get-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" - integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - -get-tsconfig@^4.7.5: - version "4.10.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.10.0.tgz#403a682b373a823612475a4c2928c7326fc0f6bb" - integrity sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A== - dependencies: - resolve-pkg-maps "^1.0.0" - -getos@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" - integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== - dependencies: - async "^3.2.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -gettext-converter@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/gettext-converter/-/gettext-converter-1.3.0.tgz#c01ee63f05469cc7b578bbda25c657fea01d7d8f" - integrity sha512-vXjx4vRBjw6rd3Zg73IMyNLZuPjs8/lE9gJZs270YJJI0t5vlCpdsyX5E0TmSd+KcRWzwPbwjwd6bnNpF72sFQ== - dependencies: - arrify "^2.0.1" - content-type "1.0.5" - encoding "0.1.13" - -gettext-parser@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-8.0.0.tgz#2c47676ac2817d4fbb30fadf5b95450d52b804bc" - integrity sha512-eFmhDi2xQ+2reMRY2AbJ2oa10uFOl1oyGbAKdCZiNOk94NJHi7aN0OBELSC9v35ZAPQdr+uRBi93/Gu4SlBdrA== - dependencies: - content-type "^1.0.5" - encoding "^0.1.13" - readable-stream "^4.5.2" - safe-buffer "^5.2.1" - -gherkin-lint@^4.1.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/gherkin-lint/-/gherkin-lint-4.2.4.tgz#5c1965d3c4ecf773d580917018823cf31f798116" - integrity sha512-iM+ECIHOF6Wh94YIF1hSHA6JH9rzcgozlMLHA/uCzGtQiMjb/uL093eh1nTpfoJ/38veL7Jfh4yY2inu7uUoFA== - dependencies: - commander "11.0.0" - core-js "3.33.1" - gherkin "9.0.0" - glob "7.1.6" - lodash "4.17.21" - strip-json-comments "3.0.1" - xml-js "^1.6.11" - -gherkin@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/gherkin/-/gherkin-9.0.0.tgz#dc1e52bb495f712f6de8f495eb7a2b655cbbabfd" - integrity sha512-6xoAepoxo5vhkBXjB4RCfVnSKHu5z9SqXIQVUyj+Jw8BQX8odATlee5otXgdN8llZvyvHokuvNiBeB3naEnnIQ== - dependencies: - commander "^4.0.1" - cucumber-messages "8.0.0" - source-map-support "^0.5.16" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1, glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-stream@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" - integrity sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw== - dependencies: - extend "^3.0.0" - glob "^7.1.1" - glob-parent "^3.1.0" - is-negated-glob "^1.0.0" - ordered-read-streams "^1.0.0" - pumpify "^1.3.5" - readable-stream "^2.1.5" - remove-trailing-separator "^1.0.1" - to-absolute-glob "^2.0.0" - unique-stream "^2.0.2" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.x, glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^10.3.10, glob@^10.4.5: - version "10.4.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" - integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -global-dirs@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" - integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== - dependencies: - ini "2.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.19.0, globals@^13.20.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" - integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== - dependencies: - define-properties "^1.2.1" - gopd "^1.0.1" - -globby@^11.0.4, globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globjoin@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" - integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== - -gonzales-pe@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" - integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== - dependencies: - minimist "^1.2.5" - -gopd@^1.0.1, gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -graphlib@^2.1.5: - version "2.1.8" - resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" - integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== - dependencies: - lodash "^4.17.15" - -gulp-sort@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/gulp-sort/-/gulp-sort-2.0.0.tgz#c6762a2f1f0de0a3fc595a21599d3fac8dba1aca" - integrity sha512-MyTel3FXOdh1qhw1yKhpimQrAmur9q1X0ZigLmCOxouQD+BD3za9/89O+HfbgBQvvh4igEbp0/PUWO+VqGYG1g== - dependencies: - through2 "^2.0.1" - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -has-ansi@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-4.0.1.tgz#f216a8c8d7b129e490dc15f4a62cc1cdb9603ce8" - integrity sha512-Qr4RtTm30xvEdqUXbSBVWDu+PrTokJOwe/FU+VdfJPk+MXAPoeOzKpRyrDTnZIJwAkQ4oBLTU53nu0HrkF/Z2A== - dependencies: - ansi-regex "^4.1.0" - -has-bigints@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" - integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-own-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" - integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== - -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" - integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== - dependencies: - dunder-proto "^1.0.0" - -has-symbols@^1.0.3, has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -has@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" - integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== - -hasown@^2.0.0, hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -heimdalljs-logger@^0.1.10, heimdalljs-logger@^0.1.7: - version "0.1.10" - resolved "https://registry.yarnpkg.com/heimdalljs-logger/-/heimdalljs-logger-0.1.10.tgz#90cad58aabb1590a3c7e640ddc6a4cd3a43faaf7" - integrity sha512-pO++cJbhIufVI/fmB/u2Yty3KJD0TqNPecehFae0/eps0hkZ3b4Zc/PezUMOpYuHFQbA7FxHZxa305EhmjLj4g== - dependencies: - debug "^2.2.0" - heimdalljs "^0.2.6" - -heimdalljs@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/heimdalljs/-/heimdalljs-0.2.6.tgz#b0eebabc412813aeb9542f9cc622cb58dbdcd9fe" - integrity sha512-o9bd30+5vLBvBtzCPwwGqpry2+n0Hi6H1+qwt6y+0kwRHGGF8TFIhJPmnuM0xO97zaKrDZMwO/V56fAnn8m/tA== - dependencies: - rsvp "~3.2.1" - -history@^4.9.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== - dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" - -history@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/history/-/history-5.3.0.tgz#1548abaa245ba47992f063a0783db91ef201c73b" - integrity sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ== - dependencies: - "@babel/runtime" "^7.7.6" - -hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.2.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz#9b751acac097757667f30114607ef7b661ff4f17" - integrity sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w== - dependencies: - lru-cache "^10.0.1" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-element-map@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.1.tgz#44b2cbcfa7be7aa4ff59779e47e51012e1c73c08" - integrity sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg== - dependencies: - array.prototype.filter "^1.0.0" - call-bind "^1.0.2" - -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-parse-stringify@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" - integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg== - dependencies: - void-elements "3.1.0" - -html-tags@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" - integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== - -htmlparser2@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-9.1.0.tgz#cdb498d8a75a51f739b61d3f718136c369bc8c23" - integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.1.0" - entities "^4.5.0" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.10" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075" - integrity sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA== - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http-proxy-middleware@^2.0.7: - version "2.0.9" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" - integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.4.0.tgz#dee5a9ba2bf49416abc544abd6d967f6a94c8c3f" - integrity sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg== - dependencies: - assert-plus "^1.0.0" - jsprim "^2.0.2" - sshpk "^1.18.0" - -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -hyperdyperid@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" - integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== - -hyphenate-style-name@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436" - integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw== - -i18next-conv@^15.1.1: - version "15.1.1" - resolved "https://registry.yarnpkg.com/i18next-conv/-/i18next-conv-15.1.1.tgz#74865b6a904ef874c9963ccbbd841dce8ba86ba1" - integrity sha512-PpI8/1jmxM/Sgfxof4SBp3MAIM1HYl/2RwXYBcloqtoOx0IxojMxDvjAiN7FhgVKPjZ0s/jdIP33JQmqCHG3Qg== - dependencies: - "@postalsys/gettext" "^4.0.0" - colorette "^2.0.20" - commander "^13.0.0" - gettext-converter "^1.3.0" - gettext-parser "^8.0.0" - p-from-callback "^2.0.0" - -i18next-parser@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/i18next-parser/-/i18next-parser-3.11.0.tgz#62ead424f63c6e5e40da26bca258a5d6fb08538e" - integrity sha512-mJuh+5sgDCbdaSGDXRUKZ90UjjmBwo7Uq4GYsjve1XmtQpzftVz0XRjGC4JP4A6wyyeha1l7SI3KFLbOk8s0qQ== - dependencies: - broccoli-plugin "^4.0.5" - cheerio "^1.0.0-rc.2" - colors "~1.4.0" - commander "~7.2.0" - concat-stream "~2.0.0" - eol "^0.9.1" - fs-extra "^9.1.0" - gulp-sort "^2.0.0" - i18next "^20.2.1" - js-yaml "4.1.0" - rsvp "^4.8.2" - through2 "~4.0.2" - typescript "^4.2.4" - vinyl "~2.2.1" - vinyl-fs "^3.0.2" - vue-template-compiler "^2.6.11" - -i18next@^20.2.1: - version "20.6.1" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-20.6.1.tgz#535e5f6e5baeb685c7d25df70db63bf3cc0aa345" - integrity sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A== - dependencies: - "@babel/runtime" "^7.12.0" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ieee754@^1.1.13, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.2.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -ignore@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-6.0.2.tgz#77cccb72a55796af1b6d2f9eb14fa326d24f4283" - integrity sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A== - -immutable@3.x, immutable@^3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" - integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== - -immutable@^5.0.2: - version "5.1.1" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.1.tgz#d4cb552686f34b076b3dcf23c4384c04424d8354" - integrity sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg== - -import-fresh@^3.2.1, import-fresh@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" - integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" - integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -index-to-position@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/index-to-position/-/index-to-position-1.1.0.tgz#2e50bd54c8040bdd6d9b3d95ec2a8fedf86b4d44" - integrity sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - -ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - -ini@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -internal-slot@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" - integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== - dependencies: - es-errors "^1.3.0" - hasown "^2.0.2" - side-channel "^1.1.0" - -"internmap@1 - 2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" - integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -interpret@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" - integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== - -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -ipaddr.js@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-arguments@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.2.0.tgz#ad58c6aecf563b78ef2bf04df540da8f5d7d8e1b" - integrity sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA== - dependencies: - call-bound "^1.0.2" - has-tostringtag "^1.0.2" - -is-array-buffer@^3.0.2, is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" - integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - get-intrinsic "^1.2.6" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-async-function@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" - integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== - dependencies: - async-function "^1.0.0" - call-bound "^1.0.3" - get-proto "^1.0.1" - has-tostringtag "^1.0.2" - safe-regex-test "^1.1.0" - -is-bigint@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" - integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== - dependencies: - has-bigints "^1.0.2" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.0.0, is-boolean-object@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e" - integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== - dependencies: - call-bound "^1.0.3" - has-tostringtag "^1.0.2" - -is-buffer@^1.1.5, is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.13.0, is-core-module@^2.16.0: - version "2.16.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== - dependencies: - hasown "^2.0.2" - -is-data-view@^1.0.1, is-data-view@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" - integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== - dependencies: - call-bound "^1.0.2" - get-intrinsic "^1.2.6" - is-typed-array "^1.1.13" - -is-date-object@^1.0.5, is-date-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" - integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== - dependencies: - call-bound "^1.0.2" - has-tostringtag "^1.0.2" - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww== - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-finalizationregistry@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" - integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== - dependencies: - call-bound "^1.0.3" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-generator-function@^1.0.10: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca" - integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ== - dependencies: - call-bound "^1.0.3" - get-proto "^1.0.0" - has-tostringtag "^1.0.2" - safe-regex-test "^1.1.0" - -is-glob@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - integrity sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg== - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-in-browser@^1.0.2, is-in-browser@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" - integrity sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g== - -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-installed-globally@^0.4.0, is-installed-globally@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - -is-invalid-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-invalid-path/-/is-invalid-path-0.1.0.tgz#307a855b3cf1a938b44ea70d2c61106053714f34" - integrity sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ== - dependencies: - is-glob "^2.0.0" - -is-map@^2.0.2, is-map@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" - integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== - -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - integrity sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug== - -is-network-error@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997" - integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== - -is-number-object@^1.0.3, is-number-object@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" - integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== - dependencies: - call-bound "^1.0.3" - has-tostringtag "^1.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== - -is-path-inside@^3.0.2, is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-regex@^1.0.4, is-regex@^1.1.0, is-regex@^1.1.4, is-regex@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" - integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== - dependencies: - call-bound "^1.0.2" - gopd "^1.2.0" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-set@^2.0.2, is-set@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" - integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== - -is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" - integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== - dependencies: - call-bound "^1.0.3" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.4, is-string@^1.0.7, is-string@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" - integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== - dependencies: - call-bound "^1.0.3" - has-tostringtag "^1.0.2" - -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - integrity sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw== - -is-symbol@^1.0.4, is-symbol@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" - integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== - dependencies: - call-bound "^1.0.2" - has-symbols "^1.1.0" - safe-regex-test "^1.1.0" - -is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: - version "1.1.15" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" - integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== - dependencies: - which-typed-array "^1.1.16" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-url-superb@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" - integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== - -is-url@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== - -is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== - -is-valid-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" - integrity sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA== - -is-valid-path@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-valid-path/-/is-valid-path-0.1.1.tgz#110f9ff74c37f663e1ec7915eb451f2db93ac9df" - integrity sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A== - dependencies: - is-invalid-path "^0.1.0" - -is-weakmap@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" - integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== - -is-weakref@^1.0.2, is-weakref@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" - integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== - dependencies: - call-bound "^1.0.3" - -is-weakset@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" - integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== - dependencies: - call-bound "^1.0.3" - get-intrinsic "^1.2.6" - -is-windows@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" - integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== - dependencies: - is-inside-container "^1.0.0" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" - integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-instrument@^6.0.0, istanbul-lib-instrument@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" - integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== - dependencies: - "@babel/core" "^7.23.9" - "@babel/parser" "^7.23.9" - "@istanbuljs/schema" "^0.1.3" - istanbul-lib-coverage "^3.2.0" - semver "^7.5.4" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^5.0.0: - version "5.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz#acaef948df7747c8eb5fbf1265cb980f6353a441" - integrity sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A== - dependencies: - "@jridgewell/trace-mapping" "^0.3.23" - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - -istanbul-reports@^3.1.3: - version "3.1.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" - integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -iterator.prototype@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz#12c959a29de32de0aa3bbbb801f4d777066dae39" - integrity sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g== - dependencies: - define-data-property "^1.1.4" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.6" - get-proto "^1.0.0" - has-symbols "^1.1.0" - set-function-name "^2.0.2" - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jake@^10.8.5: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" - integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.4" - minimatch "^3.1.2" - -jest-canvas-mock@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6" - integrity sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A== - dependencies: - cssfontparser "^1.2.1" - moo-color "^1.0.2" - -jest-changed-files@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-30.0.0-alpha.7.tgz#d4374384e0328fcf5f815170d2633508b5bc6877" - integrity sha512-H8LBMHv5FZ+zkSohhq6vYxVlDl4bogTw/8/Cm78Bw+jfTOH+DkrWUESC8GLCDgK2YA12PiczhCrgun9yaBwn0A== - dependencies: - execa "^5.0.0" - jest-util "30.0.0-alpha.7" - p-limit "^3.1.0" - -jest-circus@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-30.0.0-alpha.7.tgz#8e3bbc9d92e4fd2e608101926af9a04ef4e0b8cb" - integrity sha512-lTd93dNI5zG15AejGuGetIPr9n0BbF6JhaTjtmsENFYOpb0cuNv3supdGp9y+eWW06jbg4PNANHWAyAakNRPqw== - dependencies: - "@jest/environment" "30.0.0-alpha.7" - "@jest/expect" "30.0.0-alpha.7" - "@jest/test-result" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "30.0.0-alpha.7" - jest-matcher-utils "30.0.0-alpha.7" - jest-message-util "30.0.0-alpha.7" - jest-runtime "30.0.0-alpha.7" - jest-snapshot "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - p-limit "^3.1.0" - pretty-format "30.0.0-alpha.7" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-30.0.0-alpha.7.tgz#9e81be58da4eb431cddcc4bce7b29967ce16e677" - integrity sha512-DemFDFvWPtdHr61L1MSkzY0VbUtjkQeVAulMmtrJOH25xw8mPQAQVD97zmFLbtvzasxTwY8C36C/dHViAM7rpA== - dependencies: - "@jest/core" "30.0.0-alpha.7" - "@jest/test-result" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - chalk "^4.0.0" - exit-x "^0.2.2" - import-local "^3.0.2" - jest-config "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - jest-validate "30.0.0-alpha.7" - yargs "^17.3.1" - -jest-config@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-30.0.0-alpha.7.tgz#f0a2e6f7237a714add0618c7bbcc04c8a5a713a5" - integrity sha512-YTzk8fQ2xwvEfIupwKxDpqHblWxtePTTfCA7Pto1jretggvFtNZnVWiIAqq7/GabsYoTsFl8uj7iKzxTZzXmXg== - dependencies: - "@babel/core" "^7.11.6" - "@jest/pattern" "30.0.0-alpha.7" - "@jest/test-sequencer" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - babel-jest "30.0.0-alpha.7" - chalk "^4.0.0" - ci-info "^4.0.0" - deepmerge "^4.2.2" - glob "^10.3.10" - graceful-fs "^4.2.9" - jest-circus "30.0.0-alpha.7" - jest-docblock "30.0.0-alpha.7" - jest-environment-node "30.0.0-alpha.7" - jest-get-type "30.0.0-alpha.7" - jest-regex-util "30.0.0-alpha.7" - jest-resolve "30.0.0-alpha.7" - jest-runner "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - jest-validate "30.0.0-alpha.7" - micromatch "^4.0.8" - parse-json "^5.2.0" - pretty-format "30.0.0-alpha.7" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.0.0-alpha.7.tgz#145c80e38e605292a10a188920701e7385d99c55" - integrity sha512-a2O+O+qBIhpUtKSwApNDN6zWqNuP1vfSN1maXmm0ix1+GkBezSdNWSGlcQqJNVM1cwSD/oQQo7EzhixpMi6TWQ== - dependencies: - chalk "^4.0.0" - diff-sequences "30.0.0-alpha.7" - jest-get-type "30.0.0-alpha.7" - pretty-format "30.0.0-alpha.7" - -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-docblock@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-30.0.0-alpha.7.tgz#3abc54a61011171070baff82767577af2c72bd55" - integrity sha512-vAid4aUsBD0yke/NIbmSBi0BuJqcyqX6f4vR//7VADq6ASWzmadfpRPSKrfvOeBy+ElBGVNf9UVaH4+eSPfrcw== - dependencies: - detect-newline "^3.0.0" - -jest-each@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-30.0.0-alpha.7.tgz#5f0ece665821b3062909fba31ee88e80a7b208ba" - integrity sha512-+l0iwn3am4WaIk00+r2qt5yA1kD/GfS9ARIfp/SXNb+4ztxgtK4o+/uCDdUWjiowtPbJtSDDcDcNb4l8/2bgyQ== - dependencies: - "@jest/types" "30.0.0-alpha.7" - chalk "^4.0.0" - jest-get-type "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - pretty-format "30.0.0-alpha.7" - -jest-environment-jsdom@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" - integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/jsdom" "^20.0.0" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - jsdom "^20.0.0" - -jest-environment-node@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-30.0.0-alpha.7.tgz#8096f4921c0441107b6e1a4a3816a5635572778b" - integrity sha512-d2WEhVIO75wXaSupVUSsn4VF0G9XIXlKPKMrppEJaHLe+EDtt6lBS6TI7CD1YrxS+0Jgs6+b428tKc4xUZlyMA== - dependencies: - "@jest/environment" "30.0.0-alpha.7" - "@jest/fake-timers" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - jest-mock "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - -jest-get-type@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-30.0.0-alpha.7.tgz#0f522210bd994c6137dbdf83635e6582a75196f1" - integrity sha512-0Zt3y51PSw3FZxgRYyoC6TlKnL2Z2wMWS1NCQbs/CrmNEDRNpx9ZMF+UIByQgFcDT+fB3U/gwKeLtmSpNhJRNw== - -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-haste-map@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-30.0.0-alpha.7.tgz#bb8a3f31f501d2645a10b642e3454d7732f129a0" - integrity sha512-Yxxbsm00ne7b1kis8WEkCl1gf+7/TQl8S25iyGp+mDHvhzP8SFpX7Pi1Mi1D+Y0kAO8A0S+6s5UO9QXj9CKCcg== - dependencies: - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - jest-worker "30.0.0-alpha.7" - micromatch "^4.0.8" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== - dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-junit@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785" - integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ== - dependencies: - mkdirp "^1.0.4" - strip-ansi "^6.0.1" - uuid "^8.3.2" - xml "^1.0.1" - -jest-leak-detector@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-30.0.0-alpha.7.tgz#86bdeedb6721c61d0bd9043b6e33f86b8839ad85" - integrity sha512-MdS+e4GnipvUsh7WBYz+hFLTiLhn28asqAFugUKL8IDTHJRhwKi0QRaKRFUXDyA/RX3HWuobeQisR/YMjdsgcw== - dependencies: - jest-get-type "30.0.0-alpha.7" - pretty-format "30.0.0-alpha.7" - -jest-matcher-utils@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.0.0-alpha.7.tgz#ed07cb738a991a27e551fdfa869445415f46aaba" - integrity sha512-qD99h6nz8VXD+qimS4BSfFKtWXsDsFtKk10jGBdo5+yiuSViY/plr1MWKA1QpbJswXmqcTiPeoViNmhUKqjefw== - dependencies: - chalk "^4.0.0" - jest-diff "30.0.0-alpha.7" - jest-get-type "30.0.0-alpha.7" - pretty-format "30.0.0-alpha.7" - -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-message-util@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.0.0-alpha.7.tgz#e81a3a2b15411803df1b504c55a18981933d76a3" - integrity sha512-Wzfx5D8SQwdeb4iXex86ddzTMK2QTc0FUIIFEQ7VuQ+RWEcCRgpOPu6QaQqLl9X8q/JZ1yU/6ZIhb7dpJ6TnWw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "30.0.0-alpha.7" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.8" - pretty-format "30.0.0-alpha.7" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.0.0-alpha.7.tgz#95c98087829cb5fdafca64cc623b9f5b32c48d3f" - integrity sha512-HQc7Uem+l5hzVZNMKpUV5F27AahfgmMuYbyRT5NV9OGD2WGkw9BouKAcV5tFGykcQc2+Rt5kk/hF1l5qi4Iwrw== - dependencies: - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - jest-util "30.0.0-alpha.7" - -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.0-alpha.7.tgz#d76bc217fa0670a5cbb626857b83212015ba903d" - integrity sha512-EUHpErwer3WQVcX1wKlvGHtIzVnGz5PzFVzp3/PzI+kTGduDvo0JuOnKHWuBYVwc5TADQmrdNiVU3+25swZoug== - -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - -jest-resolve-dependencies@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-30.0.0-alpha.7.tgz#22f5a7cc1ee070ef3d645c6bfa57a6d9365caa8f" - integrity sha512-6BbZrjAvJIKmD6gfh1moaAxUnKi7QM9L4y9ciV7OMQmbbPRcRynUs/Pfdh5Z1dcxuyYuSV95Q6XIt77SK6ePCQ== - dependencies: - jest-regex-util "30.0.0-alpha.7" - jest-snapshot "30.0.0-alpha.7" - -jest-resolve@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-30.0.0-alpha.7.tgz#57b5fed3911c9ced7cacb60c55d981074d52be74" - integrity sha512-NukCyDlEv2rw7pM+Tl8tAvxM9di1Svxdx84HM6V2XB9PvPXxxrcfepWpsle09/ypYCRnSPlLpn4j5nQUsVLHZA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "30.0.0-alpha.7" - jest-pnp-resolver "^1.2.2" - jest-util "30.0.0-alpha.7" - jest-validate "30.0.0-alpha.7" - resolve "^1.20.0" - resolve.exports "^2.0.0" - slash "^3.0.0" - -jest-runner@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-30.0.0-alpha.7.tgz#94a828ec7ddcd2d4c466a646e18675db41f4d4b0" - integrity sha512-UiXWHn55UfPrDH+F1XO027exFyYNkR7dNgmX9L4Lcmpb3oxDl83ITFdUZZFJwQtwVWNWPziKsCQD9aUPJnlx7Q== - dependencies: - "@jest/console" "30.0.0-alpha.7" - "@jest/environment" "30.0.0-alpha.7" - "@jest/test-result" "30.0.0-alpha.7" - "@jest/transform" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "30.0.0-alpha.7" - jest-environment-node "30.0.0-alpha.7" - jest-haste-map "30.0.0-alpha.7" - jest-leak-detector "30.0.0-alpha.7" - jest-message-util "30.0.0-alpha.7" - jest-resolve "30.0.0-alpha.7" - jest-runtime "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - jest-watcher "30.0.0-alpha.7" - jest-worker "30.0.0-alpha.7" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-30.0.0-alpha.7.tgz#2c56f78a4318e1315774832c6bf18d0af36b03b9" - integrity sha512-BRgyqgFRwo+faZDh8LAQ1se+Qu3j9aNtPPm+31Wh+Nrg5On4uEJ3jwqdV5WlRR3A+nGflks3QmRBI/0zeT/3oA== - dependencies: - "@jest/environment" "30.0.0-alpha.7" - "@jest/fake-timers" "30.0.0-alpha.7" - "@jest/globals" "30.0.0-alpha.7" - "@jest/source-map" "30.0.0-alpha.7" - "@jest/test-result" "30.0.0-alpha.7" - "@jest/transform" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^10.3.10" - graceful-fs "^4.2.9" - jest-haste-map "30.0.0-alpha.7" - jest-message-util "30.0.0-alpha.7" - jest-mock "30.0.0-alpha.7" - jest-regex-util "30.0.0-alpha.7" - jest-resolve "30.0.0-alpha.7" - jest-snapshot "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-30.0.0-alpha.7.tgz#4eadabb01e987ff81c77c6deb005c82320f2a546" - integrity sha512-c9T892KMUTJJp0FtiR/ynFcIWeS5y7bH/DItXUws1aBO4BA6BxU/qG/1CBHCqmuSFPLmYaKy0wGPEdbXmXchEQ== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "30.0.0-alpha.7" - "@jest/snapshot-utils" "30.0.0-alpha.7" - "@jest/transform" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "30.0.0-alpha.7" - graceful-fs "^4.2.9" - jest-diff "30.0.0-alpha.7" - jest-get-type "30.0.0-alpha.7" - jest-matcher-utils "30.0.0-alpha.7" - jest-message-util "30.0.0-alpha.7" - jest-util "30.0.0-alpha.7" - pretty-format "30.0.0-alpha.7" - semver "^7.5.3" - synckit "^0.9.0" - -jest-util@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.0.0-alpha.7.tgz#d2822d193edccc74e4b7d2a9326fcffcf83c6682" - integrity sha512-8slx+UQVqYE7WgkOyAab//u0YlTKXFIv31+nsHNFpT0boE5E/w4uJ/HSer0SWpUOotcrGLveeWYi2Pyy8gxVfg== - dependencies: - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^4.0.0" - graceful-fs "^4.2.9" - picomatch "^4.0.0" - -jest-util@^29.0.0, jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-30.0.0-alpha.7.tgz#8b8e3163ab28c4b3d7f9571ed240dd072030a970" - integrity sha512-PR7tDiTYSoXQPXatW3L39KyeZaF7/HZ4j41Nq2BhtgO/DCqPvySgCa6Cz++ykZcZ4NMnS+og7TBfri9a7dFmmg== - dependencies: - "@jest/types" "30.0.0-alpha.7" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "30.0.0-alpha.7" - leven "^3.1.0" - pretty-format "30.0.0-alpha.7" - -jest-watcher@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-30.0.0-alpha.7.tgz#545f05964c82c60b1d35a7a7cc3467b06481e686" - integrity sha512-lR8YUEcSJ4x1b8Tr6WpQjkCpwwvtU/YlFaBbg0zZ8gePLAeDWs8WFcn1dYOOOe396mCs0YCqBZtBdBCz945kyA== - dependencies: - "@jest/test-result" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.13.1" - jest-util "30.0.0-alpha.7" - string-length "^4.0.1" - -jest-worker@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.0.0-alpha.7.tgz#2c44a929149cd09e0dc224310de0f585e740d325" - integrity sha512-kL3vimPjBpN1PKymyD1JYJM5SDTzqtkIs4TcaI4nUIktJEVulnZf0j4YjaAtnYflFohJfgmcPKP6IHqPHcn6dw== - dependencies: - "@types/node" "*" - "@ungap/structured-clone" "^1.2.0" - jest-util "30.0.0-alpha.7" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/jest/-/jest-30.0.0-alpha.7.tgz#1826af6aa4d8fdd5623612438b4148c0fa5fcb51" - integrity sha512-wgecbBctx5wBsRO5WePp5v47H9PX9QGzums9iirHm6qYfvaZ3vk7gYGKP1KiDxm5SjmQ1Ae0eG1kcyW8MrRYgA== - dependencies: - "@jest/core" "30.0.0-alpha.7" - "@jest/types" "30.0.0-alpha.7" - import-local "^3.0.2" - jest-cli "30.0.0-alpha.7" - -js-base64@^2.5.1: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsdom@^20.0.0: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" - integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== - dependencies: - abab "^2.0.6" - acorn "^8.8.1" - acorn-globals "^7.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.4.2" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.2" - parse5 "^7.1.1" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.11.0" - xml-name-validator "^4.0.0" - -jsesc@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" - integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== - -jsesc@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" - integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" - integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -jss-plugin-camel-case@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz#27ea159bab67eb4837fa0260204eb7925d4daa1c" - integrity sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw== - dependencies: - "@babel/runtime" "^7.3.1" - hyphenate-style-name "^1.0.3" - jss "10.10.0" - -jss-plugin-compose@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-compose/-/jss-plugin-compose-10.10.0.tgz#00d7a79adf7fcfe4927a792febdf0deceb0a7cd2" - integrity sha512-F5kgtWpI2XfZ3Z8eP78tZEYFdgTIbpA/TMuX3a8vwrNolYtN1N4qJR/Ob0LAsqIwCMLojtxN7c7Oo/+Vz6THow== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - tiny-warning "^1.0.2" - -jss-plugin-default-unit@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz#db3925cf6a07f8e1dd459549d9c8aadff9804293" - integrity sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - -jss-plugin-expand@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-expand/-/jss-plugin-expand-10.10.0.tgz#5debd80554174ca2d9b9e38d85d4cb6f3e0393ab" - integrity sha512-ymT62W2OyDxBxr7A6JR87vVX9vTq2ep5jZLIdUSusfBIEENLdkkc0lL/Xaq8W9s3opUq7R0sZQpzRWELrfVYzA== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - -jss-plugin-extend@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-extend/-/jss-plugin-extend-10.10.0.tgz#94eb450847a8941777e77ea4533a579c1c578430" - integrity sha512-sKYrcMfr4xxigmIwqTjxNcHwXJIfvhvjTNxF+Tbc1NmNdyspGW47Ey6sGH8BcQ4FFQhLXctpWCQSpDwdNmXSwg== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - tiny-warning "^1.0.2" - -jss-plugin-global@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz#1c55d3c35821fab67a538a38918292fc9c567efd" - integrity sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - -jss-plugin-nested@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz#db872ed8925688806e77f1fc87f6e62264513219" - integrity sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - tiny-warning "^1.0.2" - -jss-plugin-props-sort@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz#67f4dd4c70830c126f4ec49b4b37ccddb680a5d7" - integrity sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - -jss-plugin-rule-value-function@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz#7d99e3229e78a3712f78ba50ab342e881d26a24b" - integrity sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - tiny-warning "^1.0.2" - -jss-plugin-rule-value-observable@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-observable/-/jss-plugin-rule-value-observable-10.10.0.tgz#d17b28c4401156bbe4cd0c4a73a80aad70613e8b" - integrity sha512-ZLMaYrR3QE+vD7nl3oNXuj79VZl9Kp8/u6A1IbTPDcuOu8b56cFdWRZNZ0vNr8jHewooEeq2doy8Oxtymr2ZPA== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - symbol-observable "^1.2.0" - -jss-plugin-template@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-template/-/jss-plugin-template-10.10.0.tgz#072cda74a94c91b02d3a895d9e2408fd978ce033" - integrity sha512-ocXZBIOJOA+jISPdsgkTs8wwpK6UbsvtZK5JI7VUggTD6LWKbtoxUzadd2TpfF+lEtlhUmMsCkTRNkITdPKa6w== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - tiny-warning "^1.0.2" - -jss-plugin-vendor-prefixer@10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz#c01428ef5a89f2b128ec0af87a314d0c767931c7" - integrity sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg== - dependencies: - "@babel/runtime" "^7.3.1" - css-vendor "^2.0.8" - jss "10.10.0" - -jss-preset-default@10.10.0, jss-preset-default@^10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-preset-default/-/jss-preset-default-10.10.0.tgz#c8209449a0f6d232526c2ba3a3a6ec69ee97e023" - integrity sha512-GL175Wt2FGhjE+f+Y3aWh+JioL06/QWFgZp53CbNNq6ZkVU0TDplD8Bxm9KnkotAYn3FlplNqoW5CjyLXcoJ7Q== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.10.0" - jss-plugin-camel-case "10.10.0" - jss-plugin-compose "10.10.0" - jss-plugin-default-unit "10.10.0" - jss-plugin-expand "10.10.0" - jss-plugin-extend "10.10.0" - jss-plugin-global "10.10.0" - jss-plugin-nested "10.10.0" - jss-plugin-props-sort "10.10.0" - jss-plugin-rule-value-function "10.10.0" - jss-plugin-rule-value-observable "10.10.0" - jss-plugin-template "10.10.0" - jss-plugin-vendor-prefixer "10.10.0" - -jss@10.10.0, jss@^10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/jss/-/jss-10.10.0.tgz#a75cc85b0108c7ac8c7b7d296c520a3e4fbc6ccc" - integrity sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw== - dependencies: - "@babel/runtime" "^7.3.1" - csstype "^3.0.2" - is-in-browser "^1.1.3" - tiny-warning "^1.0.2" - -"jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.3.5" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" - integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - object.assign "^4.1.4" - object.values "^1.1.6" - -keyv@^4.5.3, keyv@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klona@^2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" - integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== - -known-css-properties@^0.35.0: - version "0.35.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.35.0.tgz#f6f8e40ab4e5700fa32f5b2ef5218a56bc853bd6" - integrity sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A== - -knuth-shuffle-seeded@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz#01f1b65733aa7540ee08d8b0174164d22081e4e1" - integrity sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg== - dependencies: - seed-random "~2.2.0" - -launch-editor@^2.6.1: - version "2.10.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.10.0.tgz#5ca3edfcb9667df1e8721310f3a40f1127d4bc42" - integrity sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.8.1" - -lazy-ass@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== - -lazy-ass@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-2.0.3.tgz#1e8451729f2bebdff1218bb18921566a08f81b36" - integrity sha512-/O3/DoQmI1XAhklDvF1dAjFf/epE8u3lzOZegQfLZ8G7Ud5bTRSZiFOpukHCu6jODrCA4gtIdwUCC7htxcDACA== - -lazystream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" - integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== - dependencies: - readable-stream "^2.0.5" - -lead@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" - integrity sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow== - dependencies: - flush-write-stream "^1.0.2" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -linear-layout-vector@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/linear-layout-vector/-/linear-layout-vector-0.0.1.tgz#398114d7303b6ecc7fd6b273af7b8401d8ba9c70" - integrity sha512-w+nr1ZOVFGyMhwr8JKo0YzqDc8C2Z7pc9UbTuJA4VG/ezlSFEx+7kNrfCYvq7JQ/jHKR+FWy6reNrkVVzm0hSA== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -linkify-it@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" - integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== - dependencies: - uc.micro "^1.0.1" - -listr2@^3.8.3: - version "3.14.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" - integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.1" - through "^2.3.8" - wrap-ansi "^7.0.0" - -loader-runner@^4.1.0, loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -loader-utils@^1.2.3: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0, loader-utils@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" - integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash-es@^4.17.14, lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.escape@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" - integrity sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw== - -lodash.findkey@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.findkey/-/lodash.findkey-4.6.0.tgz#83058e903b51cbb759d09ccf546dea3ea39c4718" - integrity sha512-Y+f2R8KsUDJVqdfeai01P5A1IQeMWsMG1p0rghzdhIl7TIap47Y2Z5UJK8x4pstixNL56KVHFRE1IW9jvRwy4g== - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== - -lodash.get@4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - -lodash.isempty@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" - integrity sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg== - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - -lodash.isfunction@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" - integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== - -lodash.isobject@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" - integrity sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA== - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.mergewith@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" - integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== - -lodash.once@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== - -lodash.snakecase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" - integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - -lodash@4.17.21, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.0.0, log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^10.0.1, lru-cache@^10.2.0: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -luxon@3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.2.1.tgz#14f1af209188ad61212578ea7e3d518d18cee45f" - integrity sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg== - -luxon@^3.5.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.6.1.tgz#d283ffc4c0076cb0db7885ec6da1c49ba97e47b0" - integrity sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ== - -lz-string@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" - integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== - -magic-string@^0.30.11: - version "0.30.17" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" - integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - -make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -make-error@^1.1.1, make-error@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -matcher-collection@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-2.0.1.tgz#90be1a4cf58d6f2949864f65bb3b0f3e41303b29" - integrity sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ== - dependencies: - "@types/minimatch" "^3.0.3" - minimatch "^3.0.2" - -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - -mathml-tag-names@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" - integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== - -md5@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -mdn-data@2.12.2: - version "2.12.2" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.12.2.tgz#9ae6c41a9e65adf61318b32bff7b64fbfb13f8cf" - integrity sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -memfs@^4.6.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.17.0.tgz#a3c4b5490b9b1e7df5d433adc163e08208ce7ca2" - integrity sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg== - dependencies: - "@jsonjoy.com/json-pack" "^1.0.3" - "@jsonjoy.com/util" "^1.3.0" - tree-dump "^1.0.1" - tslib "^2.0.0" - -memoize-one@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" - integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== - -meow@^13.2.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-13.2.0.tgz#6b7d63f913f984063b3cc261b6e8800c4cd3474f" - integrity sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== - -merge-descriptors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" - integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@4.0.8, micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -"mime-db@>= 1.43.0 < 2": - version "1.54.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" - integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== - -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.0.1, minimatch@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.4: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@^2.1.5: - version "2.1.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" - integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== - -mkdirp@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" - integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== - -mktemp@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/mktemp/-/mktemp-0.4.0.tgz#6d0515611c8a8c84e484aa2000129b98e981ff0b" - integrity sha512-IXnMcJ6ZyTuhRmJSjzvHSRhlVPiN9Jwc6e59V0bEJ0ba6OBeX2L0E+mRN1QseeOF4mM+F1Rit6Nh7o+rl2Yn/A== - -mobx-react-lite@^3.4.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.4.3.tgz#3a4c22c30bfaa8b1b2aa48d12b2ba811c0947ab7" - integrity sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg== - -mobx-react@^7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-7.6.0.tgz#ebf0456728a9bd2e5c24fdcf9b36e285a222a7d6" - integrity sha512-+HQUNuh7AoQ9ZnU6c4rvbiVVl+wEkb9WqYsVDzGLng+Dqj1XntHu79PvEWKtSMoMj67vFp/ZPXcElosuJO8ckA== - dependencies: - mobx-react-lite "^3.4.0" - -mobx@^6.9.0: - version "6.13.7" - resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.13.7.tgz#70e5dda7a45da947f773b3cd3b065dfe7c8a75de" - integrity sha512-aChaVU/DO5aRPmk1GX8L+whocagUUpBQqoPtJk+cm7UOXUk87J4PeWCh6nNmTTIfEhiR9DI/+FnA8dln/hTK7g== - -mocha-junit-reporter@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-2.2.1.tgz#739f5595d0f051d07af9d74e32c416e13a41cde5" - integrity sha512-iDn2tlKHn8Vh8o4nCzcUVW4q7iXp7cC4EB78N0cDHIobLymyHNwe0XG8HEHHjc3hJlXm0Vy6zcrxaIhnI2fWmw== - dependencies: - debug "^4.3.4" - md5 "^2.3.0" - mkdirp "^3.0.0" - strip-ansi "^6.0.1" - xml "^1.0.1" - -mocha@^11.0.0: - version "11.2.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.2.2.tgz#2dfefc9652de746389f5286888034239b6486231" - integrity sha512-VlSBxrPYHK4YNOEbFdkCxHQbZMoNzBkoPprqtZRW6311EUF/DlSxoycE2e/2NtRk4WKkIXzyrXDTrlikJMWgbw== - dependencies: - browser-stdout "^1.3.1" - chokidar "^4.0.1" - debug "^4.3.5" - diff "^5.2.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^10.4.5" - he "^1.2.0" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^5.1.6" - ms "^2.1.3" - picocolors "^1.1.1" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^6.5.1" - yargs "^17.7.2" - yargs-parser "^21.1.1" - yargs-unparser "^2.0.0" - -mochawesome-merge@^4.3.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/mochawesome-merge/-/mochawesome-merge-4.4.1.tgz#cdb243d972868a160fa6eb39462dde81b62e1414" - integrity sha512-QCzsXrfH5ewf4coUGvrAOZSpRSl9Vg39eqL2SpKKGkUw390f18hx9C90BNWTA4f/teD2nA0Inb1yxYPpok2gvg== - dependencies: - fs-extra "^7.0.1" - glob "^7.1.6" - yargs "^15.3.1" - -mochawesome-report-generator@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/mochawesome-report-generator/-/mochawesome-report-generator-6.2.0.tgz#65a30a11235ba7a68e1cf0ca1df80d764b93ae78" - integrity sha512-Ghw8JhQFizF0Vjbtp9B0i//+BOkV5OWcQCPpbO0NGOoxV33o+gKDYU0Pr2pGxkIHnqZ+g5mYiXF7GMNgAcDpSg== - dependencies: - chalk "^4.1.2" - dateformat "^4.5.1" - escape-html "^1.0.3" - fs-extra "^10.0.0" - fsu "^1.1.1" - lodash.isfunction "^3.0.9" - opener "^1.5.2" - prop-types "^15.7.2" - tcomb "^3.2.17" - tcomb-validation "^3.3.0" - validator "^13.6.0" - yargs "^17.2.1" - -mochawesome@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/mochawesome/-/mochawesome-7.1.3.tgz#07b358138f37f5b07b51a1b255d84babfa36fa83" - integrity sha512-Vkb3jR5GZ1cXohMQQ73H3cZz7RoxGjjUo0G5hu0jLaW+0FdUxUwg3Cj29bqQdh0rFcnyV06pWmqmi5eBPnEuNQ== - dependencies: - chalk "^4.1.2" - diff "^5.0.0" - json-stringify-safe "^5.0.1" - lodash.isempty "^4.4.0" - lodash.isfunction "^3.0.9" - lodash.isobject "^3.0.2" - lodash.isstring "^4.0.1" - mochawesome-report-generator "^6.2.0" - strip-ansi "^6.0.1" - uuid "^8.3.2" - -module-definition@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-6.0.1.tgz#47e73144cc5a9aa31f3380166fddf8e962ccb2e4" - integrity sha512-FeVc50FTfVVQnolk/WQT8MX+2WVcDnTGiq6Wo+/+lJ2ET1bRVi3HG3YlJUfqagNMc/kUlFSoR96AJkxGpKz13g== - dependencies: - ast-module-types "^6.0.1" - node-source-walk "^7.0.1" - -module-lookup-amd@^9.0.3: - version "9.0.4" - resolved "https://registry.yarnpkg.com/module-lookup-amd/-/module-lookup-amd-9.0.4.tgz#328aff0913a47b25f02dd03c40efc9640d60f38c" - integrity sha512-DWJEuLVvjxh5b8wrvJC5wr2a7qo7pOWXIgdCBNazU416kcIyzO4drxvlqKhsHzYwxcC4cWuhoK+MiWCKCGnv7A== - dependencies: - commander "^12.1.0" - glob "^7.2.3" - requirejs "^2.3.7" - requirejs-config-file "^4.0.0" - -monaco-editor@^0.28.1: - version "0.28.1" - resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.28.1.tgz#732788ff2172d59e6d436b206da8cac715413940" - integrity sha512-P1vPqxB4B1ZFzTeR1ScggSp9/5NoQrLCq88fnlNUsuRAP1usEBN4TIpI2lw0AYIZNVIanHk0qwjze2uJwGOHUw== - -moo-color@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.3.tgz#d56435f8359c8284d83ac58016df7427febece74" - integrity sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ== - dependencies: - color-name "^1.1.4" - -moo@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" - integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.1, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - -mz@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nanoclone@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" - integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA== - -nanoid@^3.3.8: - version "3.3.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -nearley@^2.7.10: - version "2.20.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -negotiator@~0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" - integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== - -neo-async@^2.6.1, neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-addon-api@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" - integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== - -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" - integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== - -node-source-walk@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-7.0.1.tgz#3e4ab8d065377228fd038af7b2d4fb58f61defd3" - integrity sha512-3VW/8JpPqPvnJvseXowjZcirPisssnBuDikk6JIZ8jQzF7KJQX52iPFX4RYYxLycYH7IbMRSPUOga/esVjy5Yg== - dependencies: - "@babel/parser" "^7.26.7" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz#a7bc22167fe24025412bcff0a9651eb768b03506" - integrity sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g== - dependencies: - hosted-git-info "^7.0.0" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -now-and-later@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" - integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== - dependencies: - once "^1.3.2" - -npm-run-path@^4.0.0, npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -nwsapi@^2.2.2: - version "2.2.20" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.20.tgz#22e53253c61e7b0e7e93cef42c891154bcca11ef" - integrity sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA== - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.13.3, object-inspect@^1.6.0: - version "1.13.4" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" - integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== - -object-is@^1.0.1, object-is@^1.1.2, object-is@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" - integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.4, object.assign@^4.1.5, object.assign@^4.1.7: - version "4.1.7" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" - integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - has-symbols "^1.1.0" - object-keys "^1.1.1" - -object.entries@^1.0.4, object.entries@^1.1.2, object.entries@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.9.tgz#e4770a6a1444afb61bd39f984018b5bede25f8b3" - integrity sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.4" - define-properties "^1.2.1" - es-object-atoms "^1.1.1" - -object.fromentries@^2.0.7, object.fromentries@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" - integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - -object.values@^1.0.4, object.values@^1.1.1, object.values@^1.1.6, object.values@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" - integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@2.4.1, on-finished@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^10.0.3: - version "10.1.2" - resolved "https://registry.yarnpkg.com/open/-/open-10.1.2.tgz#d5df40984755c9a9c3c93df8156a12467e882925" - integrity sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw== - dependencies: - default-browser "^5.2.1" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^3.1.0" - -openapi-typescript@^6.7.0: - version "6.7.6" - resolved "https://registry.yarnpkg.com/openapi-typescript/-/openapi-typescript-6.7.6.tgz#4f387199203bd7bfb94545cbc613751b52e3fa37" - integrity sha512-c/hfooPx+RBIOPM09GSxABOZhYPblDoyaGhqBkD/59vtpN21jEuWKDlM0KYTvqJVlSYjKs0tBcIdeXKChlSPtw== - dependencies: - ansi-colors "^4.1.3" - fast-glob "^3.3.2" - js-yaml "^4.1.0" - supports-color "^9.4.0" - undici "^5.28.4" - yargs-parser "^21.1.1" - -opener@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - -optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.5" - -ordered-read-streams@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" - integrity sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw== - dependencies: - readable-stream "^2.0.1" - -ospath@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" - integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== - -own-keys@^1.0.0, own-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" - integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== - dependencies: - get-intrinsic "^1.2.6" - object-keys "^1.1.1" - safe-push-apply "^1.0.0" - -p-from-callback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-from-callback/-/p-from-callback-2.0.0.tgz#045e8ffbcdb0acdf73ff8a079e164449bb7ead85" - integrity sha512-0gjkaVoLeg71VE4L7lccq8VPGEpZrVpDsS0s+sk6k3lQUVh9QYQPSog7a/Km407vzQt8zS9MoUMG4EgML//k2Q== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-retry@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" - integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== - dependencies: - "@types/retry" "0.12.2" - is-network-error "^1.0.0" - retry "^0.13.1" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pad-right@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774" - integrity sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g== - dependencies: - repeat-string "^1.5.2" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.0.0, parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-json@^8.0.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-8.3.0.tgz#88a195a2157025139a2317a4f2f9252b61304ed5" - integrity sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ== - dependencies: - "@babel/code-frame" "^7.26.2" - index-to-position "^1.1.0" - type-fest "^4.39.1" - -parse5-htmlparser2-tree-adapter@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b" - integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g== - dependencies: - domhandler "^5.0.3" - parse5 "^7.0.0" - -parse5-parser-stream@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz#d7c20eadc37968d272e2c02660fff92dd27e60e1" - integrity sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow== - dependencies: - parse5 "^7.0.0" - -parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2: - version "7.3.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" - integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== - dependencies: - entities "^6.0.0" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-posix@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/path-posix/-/path-posix-1.0.0.tgz#06b26113f56beab042545a23bfa88003ccac260f" - integrity sha512-1gJ0WpNIiYcQydgg3Ed8KzvIqTsDpNwq+cjBCssvBtuTWjEqY1AW+i+OepiEMqDCzyro9B2sLAe4RBPajMYFiA== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -path-to-regexp@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" - integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== - -path-to-regexp@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.9.0.tgz#5dc0753acbf8521ca2e0f137b4578b917b10cf24" - integrity sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g== - dependencies: - isarray "0.0.1" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^1.0.0, picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -picomatch@^4.0.0, picomatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" - integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== - -pify@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pirates@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" - integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -point-in-svg-path@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/point-in-svg-path/-/point-in-svg-path-1.0.2.tgz#e7b25370e96f58a858c34882ffb57d41b7a574bf" - integrity sha512-+Smsf7B9e7eRFHIwpN+4rE8inF2APbFWeywPfUgbeh02xdJSkbTz6Pqdt7A36wVCR+CnLbaNkRnBjgOpF5RMVQ== - -popper.js@^1.16.1: - version "1.16.1" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" - integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== - -possible-typed-array-names@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" - integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== - -postcss-modules-extract-imports@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" - integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== - -postcss-modules-local-by-default@^4.0.5: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz#d150f43837831dae25e4085596e84f6f5d6ec368" - integrity sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^7.0.0" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" - integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== - dependencies: - postcss-selector-parser "^7.0.0" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-resolve-nested-selector@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz#3d84dec809f34de020372c41b039956966896686" - integrity sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw== - -postcss-safe-parser@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz#36e4f7e608111a0ca940fd9712ce034718c40ec0" - integrity sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A== - -postcss-selector-parser@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz#4d6af97eba65d73bc4d84bcb343e865d7dd16262" - integrity sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss-values-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz#636edc5b86c953896f1bb0d7a7a6615df00fb76f" - integrity sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw== - dependencies: - color-name "^1.1.4" - is-url-superb "^4.0.0" - quote-unquote "^1.0.0" - -postcss@^8.2.14, postcss@^8.4.33, postcss@^8.4.48, postcss@^8.4.49, postcss@^8.5.1: - version "8.5.3" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" - integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== - dependencies: - nanoid "^3.3.8" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -precinct@^12.2.0: - version "12.2.0" - resolved "https://registry.yarnpkg.com/precinct/-/precinct-12.2.0.tgz#6ab18f48034cc534f2c8fedb318f19a11bcd171b" - integrity sha512-NFBMuwIfaJ4SocE9YXPU/n4AcNSoFMVFjP72nvl3cx69j/ke61/hPOWFREVxLkFhhEGnA8ZuVfTqJBa+PK3b5w== - dependencies: - "@dependents/detective-less" "^5.0.1" - commander "^12.1.0" - detective-amd "^6.0.1" - detective-cjs "^6.0.1" - detective-es6 "^5.0.1" - detective-postcss "^7.0.1" - detective-sass "^6.0.1" - detective-scss "^5.0.1" - detective-stylus "^5.0.1" - detective-typescript "^14.0.0" - detective-vue2 "^2.2.0" - module-definition "^6.0.1" - node-source-walk "^7.0.1" - postcss "^8.5.1" - typescript "^5.7.3" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^2.7.1: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -pretty-bytes@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" - integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== - -pretty-format@30.0.0-alpha.7: - version "30.0.0-alpha.7" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.0.0-alpha.7.tgz#c50fd4eb07a9cd85bb07ceb68d0d28af24cd90b3" - integrity sha512-2gg8UNJxO+v6IiWydXPTM2LvCuIBxT2RC53Ind6IW0Cu9zvxoCMKeAAVV9nfukZyK01GFdYXhoH2zW18PsA6MQ== - dependencies: - "@jest/schemas" "30.0.0-alpha.7" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-format@^27.0.2: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-map-series@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/promise-map-series/-/promise-map-series-0.3.0.tgz#41873ca3652bb7a042b387d538552da9b576f8a1" - integrity sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA== - -prop-types-exact@^1.2.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.7.tgz#dba4509df22b72f79583bb82e22cce663b05f0e3" - integrity sha512-A4RaV6mg3jocQqBYmqi2ojJ2VnV4AKTEHhl3xHsud08/u87gcVJc8DUOtgnPegoOCQv/shUqEk4eZGYibjnHzQ== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - hasown "^2.0.2" - isarray "^2.0.5" - object.assign "^4.1.7" - own-keys "^1.0.0" - -prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -property-expr@^2.0.4, property-expr@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.6.tgz#f77bc00d5928a6c748414ad12882e83f24aec1e8" - integrity sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA== - -protobufjs@^6.8.8: - version "6.11.4" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" - integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -proxy-from-env@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== - -psl@^1.1.33: - version "1.15.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6" - integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== - dependencies: - punycode "^2.3.1" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" - integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -pure-rand@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" - integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== - -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== - dependencies: - side-channel "^1.0.6" - -qs@6.14.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" - integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== - dependencies: - side-channel "^1.1.0" - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-temp@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/quick-temp/-/quick-temp-0.1.8.tgz#bab02a242ab8fb0dd758a3c9776b32f9a5d94408" - integrity sha512-YsmIFfD9j2zaFwJkzI6eMG7y0lQP7YeWzgtFgNl38pGWZBSXJooZbOWwkcRot7Vt0Fg9L23pX0tqWU3VvLDsiA== - dependencies: - mktemp "~0.4.0" - rimraf "^2.5.4" - underscore.string "~3.3.4" - -quote-unquote@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/quote-unquote/-/quote-unquote-1.0.0.tgz#67a9a77148effeaf81a4d428404a710baaac8a0b" - integrity sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg== - -raf@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== - -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" - integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -re-resizable@6.11.2: - version "6.11.2" - resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-6.11.2.tgz#2e8f7119ca3881d5b5aea0ffa014a80e5c1252b3" - integrity sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A== - -react-copy-to-clipboard@5.x: - version "5.1.0" - resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz#09aae5ec4c62750ccb2e6421a58725eabc41255c" - integrity sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A== - dependencies: - copy-to-clipboard "^3.3.1" - prop-types "^15.8.1" - -react-display-name@^0.2.4: - version "0.2.5" - resolved "https://registry.yarnpkg.com/react-display-name/-/react-display-name-0.2.5.tgz#304c7cbfb59ee40389d436e1a822c17fe27936c6" - integrity sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg== - -react-dnd-html5-backend@^9.4.0: - version "9.5.1" - resolved "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-9.5.1.tgz#e6a0aed3ece800c1abe004f9ed9991513e2e644c" - integrity sha512-wUdzjREwLqHxFkA6E+XDVL5IFjRDbBI3SHVKil9n3qrGT5dm2tA2oi1aIALdfMKsu00c+OXA9lz/LuKZCE9KXg== - dependencies: - dnd-core "^9.5.1" - -react-dnd@^9.4.0: - version "9.5.1" - resolved "https://registry.yarnpkg.com/react-dnd/-/react-dnd-9.5.1.tgz#907e55c791d6c50cbed1a4021c14b989b86ac467" - integrity sha512-j2MvziPNLsxXkb3kIJzLvvOv/TQ4sysp6U4CmxAXd4C884dXm/9UGdB7K1wkTW3ZxVpI1K7XhKbX0JgNlPfLcA== - dependencies: - "@types/hoist-non-react-statics" "^3.3.1" - "@types/shallowequal" "^1.1.1" - dnd-core "^9.5.1" - hoist-non-react-statics "^3.3.0" - shallowequal "^1.1.0" - -react-dom@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" - -react-draggable@4.4.6: - version "4.4.6" - resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.6.tgz#63343ee945770881ca1256a5b6fa5c9f5983fe1e" - integrity sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw== - dependencies: - clsx "^1.1.1" - prop-types "^15.8.1" - -react-dropzone@^14.2.3: - version "14.3.8" - resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-14.3.8.tgz#a7eab118f8a452fe3f8b162d64454e81ba830582" - integrity sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug== - dependencies: - attr-accept "^2.2.4" - file-selector "^2.1.0" - prop-types "^15.8.1" - -react-fast-compare@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" - integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== - -react-fast-compare@^3.1.1, react-fast-compare@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" - integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== - -react-helmet@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" - integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== - dependencies: - object-assign "^4.1.1" - prop-types "^15.7.2" - react-fast-compare "^3.1.1" - react-side-effect "^2.1.0" - -react-i18next@^11.7.3: - version "11.18.6" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.18.6.tgz#e159c2960c718c1314f1e8fcaa282d1c8b167887" - integrity sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA== - dependencies: - "@babel/runtime" "^7.14.5" - html-parse-stringify "^3.0.1" - -"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.0.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - -react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^17.0.0, react-is@^17.0.1, react-is@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-jss@^10.10.0: - version "10.10.0" - resolved "https://registry.yarnpkg.com/react-jss/-/react-jss-10.10.0.tgz#d08ab3257b0eed01e15d6d8275840055c279b0da" - integrity sha512-WLiq84UYWqNBF6579/uprcIUnM1TSywYq6AIjKTTTG5ziJl9Uy+pwuvpN3apuyVwflMbD60PraeTKT7uWH9XEQ== - dependencies: - "@babel/runtime" "^7.3.1" - "@emotion/is-prop-valid" "^0.7.3" - css-jss "10.10.0" - hoist-non-react-statics "^3.2.0" - is-in-browser "^1.1.3" - jss "10.10.0" - jss-preset-default "10.10.0" - prop-types "^15.6.0" - shallow-equal "^1.2.0" - theming "^3.3.0" - tiny-warning "^1.0.2" - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-linkify@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/react-linkify/-/react-linkify-0.2.2.tgz#55b99b1cc7244446a0f9bdebbe13b2c30f789e65" - integrity sha512-0S8cvUNtEgfJpIGDPKklyrnrTffJ63WuJAc4KaYLBihl5TjgH5cHUmYD+AXLpsV+CVmfoo/56SUNfrZcY4zYMQ== - dependencies: - linkify-it "^2.0.3" - prop-types "^15.5.8" - tlds "^1.57.0" - -react-measure@^2.3.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/react-measure/-/react-measure-2.5.2.tgz#4ffc410e8b9cb836d9455a9ff18fc1f0fca67f89" - integrity sha512-M+rpbTLWJ3FD6FXvYV6YEGvQ5tMayQ3fGrZhRPHrE9bVlBYfDCLuDcgNttYfk8IqfOI03jz6cbpqMRTUclQnaA== - dependencies: - "@babel/runtime" "^7.2.0" - get-node-dimensions "^1.2.1" - prop-types "^15.6.2" - resize-observer-polyfill "^1.5.0" - -react-monaco-editor@0.46.x: - version "0.46.0" - resolved "https://registry.yarnpkg.com/react-monaco-editor/-/react-monaco-editor-0.46.0.tgz#ac97d5429cd8821d466f0e8e0536ea2a90bbc6d0" - integrity sha512-/GyQ0tQLbjHAuMUNRfKecBYN68o8TwA4fnwH9P+lHbF80ayMAo0PQ60joTQH6R6j839kMn6o9Kk/cbzOxK5DzA== - dependencies: - prop-types "^15.7.2" - -react-redux@7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.2.tgz#03862e803a30b6b9ef8582dadcc810947f74b736" - integrity sha512-8+CQ1EvIVFkYL/vu6Olo7JFLWop1qRUeb46sGtIMDCSpgwPQq8fPLpirIB0iTqFe9XYEFPHssdX8/UwN6pAkEA== - dependencies: - "@babel/runtime" "^7.12.1" - hoist-non-react-statics "^3.3.2" - loose-envify "^1.4.0" - prop-types "^15.7.2" - react-is "^16.13.1" - -react-rnd@^10.3.4: - version "10.5.2" - resolved "https://registry.yarnpkg.com/react-rnd/-/react-rnd-10.5.2.tgz#47a22c104fb640dae71f149e2c005c879de833bd" - integrity sha512-0Tm4x7k7pfHf2snewJA8x7Nwgt3LV+58MVEWOVsFjk51eYruFEa6Wy7BNdxt4/lH0wIRsu7Gm3KjSXY2w7YaNw== - dependencies: - re-resizable "6.11.2" - react-draggable "4.4.6" - tslib "2.6.2" - -react-router-dom-v5-compat@^6.11.2: - version "6.30.0" - resolved "https://registry.yarnpkg.com/react-router-dom-v5-compat/-/react-router-dom-v5-compat-6.30.0.tgz#d089e7b8dc964ade2480467aa77381647b10a78b" - integrity sha512-MAVRASbdQ3+ZOTPPjAa7jKcF0F9LkHWKB/iib3hf+jzzIazL4GEpMDDdTswCsqRQNU+zNnT3qD0WiNbzJ6ncPw== - dependencies: - "@remix-run/router" "1.23.0" - history "^5.3.0" - react-router "6.30.0" - -react-router-dom@5.3.x: - version "5.3.4" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" - integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== - dependencies: - "@babel/runtime" "^7.12.13" - history "^4.9.0" - loose-envify "^1.3.1" - prop-types "^15.6.2" - react-router "5.3.4" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react-router@5.3.4, react-router@5.3.x: - version "5.3.4" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" - integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== - dependencies: - "@babel/runtime" "^7.12.13" - history "^4.9.0" - hoist-non-react-statics "^3.1.0" - loose-envify "^1.3.1" - path-to-regexp "^1.7.0" - prop-types "^15.6.2" - react-is "^16.6.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react-router@6.30.0: - version "6.30.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.30.0.tgz#9789d775e63bc0df60f39ced77c8c41f1e01ff90" - integrity sha512-D3X8FyH9nBcTSHGdEKurK7r8OYE1kKFn3d/CF+CoxbSHkxU7o37+Uh7eAHRXr6k2tSExXYO++07PeXJtA/dEhQ== - dependencies: - "@remix-run/router" "1.23.0" - -react-shallow-renderer@^16.13.1: - version "16.15.0" - resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz#48fb2cf9b23d23cde96708fe5273a7d3446f4457" - integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA== - dependencies: - object-assign "^4.1.1" - react-is "^16.12.0 || ^17.0.0 || ^18.0.0" - -react-side-effect@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a" - integrity sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw== - -react-test-renderer@^17.0.0: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.2.tgz#4cd4ae5ef1ad5670fc0ef776e8cc7e1231d9866c" - integrity sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ== - dependencies: - object-assign "^4.1.1" - react-is "^17.0.2" - react-shallow-renderer "^16.13.1" - scheduler "^0.20.2" - -react-transition-group@2.3.x: - version "2.3.1" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.3.1.tgz#31d611b33e143a5e0f2d94c348e026a0f3b474b6" - integrity sha512-hu4/LAOFSKjWt1+1hgnOv3ldxmt6lvZGTWz4KUkFrqzXrNDIVSu6txIcPszw7PNduR8en9YTN55JLRyd/L1ZiQ== - dependencies: - dom-helpers "^3.3.1" - loose-envify "^1.3.1" - prop-types "^15.6.1" - -react-virtualized@9.x, react-virtualized@^9.22.5: - version "9.22.6" - resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.22.6.tgz#3ae2aa69eca61cf3af332e2f9d6b4aa5638786d5" - integrity sha512-U5j7KuUQt3AaMatlMJ0UJddqSiX+Km0YJxSqbAzIiGw5EmNz0khMyqP2hzgu4+QUtm+QPIrxzUX4raJxmVJnHg== - dependencies: - "@babel/runtime" "^7.7.2" - clsx "^1.0.4" - dom-helpers "^5.1.3" - loose-envify "^1.4.0" - prop-types "^15.7.2" - react-lifecycles-compat "^3.0.4" - -react@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -read-package-up@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/read-package-up/-/read-package-up-11.0.0.tgz#71fb879fdaac0e16891e6e666df22de24a48d5ba" - integrity sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ== - dependencies: - find-up-simple "^1.0.0" - read-pkg "^9.0.0" - type-fest "^4.6.0" - -read-pkg@5.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -read-pkg@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-9.0.1.tgz#b1b81fb15104f5dbb121b6bbdee9bbc9739f569b" - integrity sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA== - dependencies: - "@types/normalize-package-data" "^2.4.3" - normalize-package-data "^6.0.0" - parse-json "^8.0.0" - type-fest "^4.6.0" - unicorn-magic "^0.1.0" - -readable-stream@3, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.5.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^4.5.2: - version "4.7.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.7.0.tgz#cedbd8a1146c13dfff8dab14068028d58c15ac91" - integrity sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg== - dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - string_decoder "^1.3.0" - -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - -rechoir@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" - integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== - dependencies: - resolve "^1.20.0" - -redux-thunk@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.0.tgz#ac89e1d6b9bdb9ee49ce69a69071be41bbd82d67" - integrity sha512-/y6ZKQNU/0u8Bm7ROLq9Pt/7lU93cT0IucYMrubo89ENjxPa7i8pqLKu6V4X7/TvYovQ6x01unTeyeZ9lgXiTA== - -redux@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5" - integrity sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg== - dependencies: - loose-envify "^1.4.0" - symbol-observable "^1.2.0" - -redux@^4.0.0, redux@^4.0.4: - version "4.2.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" - integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== - dependencies: - "@babel/runtime" "^7.9.2" - -reflect-metadata@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.1.tgz#8d5513c0f5ef2b4b9c3865287f3c0940c1f67f74" - integrity sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw== - -reflect-metadata@0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" - integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== - -reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" - integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== - dependencies: - call-bind "^1.0.8" - define-properties "^1.2.1" - es-abstract "^1.23.9" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.7" - get-proto "^1.0.1" - which-builtin-type "^1.2.1" - -regenerate-unicode-properties@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" - integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regex-parser@^2.2.11: - version "2.3.1" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.3.1.tgz#ee3f70e50bdd81a221d505242cb9a9c275a2ad91" - integrity sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ== - -regexp-match-indices@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regexp-match-indices/-/regexp-match-indices-1.0.2.tgz#cf20054a6f7d5b3e116a701a7b00f82889d10da6" - integrity sha512-DwZuAkt8NF5mKwGGER1EGh2PRqyvhRhhLviH+R8y8dIuaQROlUfXjt4s9ZTXstIsSkptf06BSvwcEmmfheJJWQ== - dependencies: - regexp-tree "^0.1.11" - -regexp-tree@^0.1.11: - version "0.1.27" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" - integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== - -regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.3: - version "1.5.4" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" - integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== - dependencies: - call-bind "^1.0.8" - define-properties "^1.2.1" - es-errors "^1.3.0" - get-proto "^1.0.1" - gopd "^1.2.0" - set-function-name "^2.0.2" - -regexpu-core@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" - integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.2.0" - regjsgen "^0.8.0" - regjsparser "^0.12.0" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" - -regjsgen@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" - integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== - -regjsparser@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" - integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== - dependencies: - jsesc "~3.0.2" - -remove-bom-buffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" - integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== - dependencies: - is-buffer "^1.1.5" - is-utf8 "^0.2.1" - -remove-bom-stream@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" - integrity sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA== - dependencies: - remove-bom-buffer "^3.0.0" - safe-buffer "^5.1.0" - through2 "^2.0.3" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" - integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== - -request-progress@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" - integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg== - dependencies: - throttleit "^1.0.0" - -require-and-forget@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-and-forget/-/require-and-forget-1.0.1.tgz#b535a1b8f0f0dd6a48ab05b0ab15d26135d61142" - integrity sha512-Sea861D/seGo3cptxc857a34Df0oEijXit8Q3IDodiwZMzVmyXrRI9EgQQa3hjkhoEjNzCBvv0t/0fMgebmWLg== - dependencies: - debug "4.3.4" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requirejs-config-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz#4244da5dd1f59874038cc1091d078d620abb6ebc" - integrity sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw== - dependencies: - esprima "^4.0.0" - stringify-object "^3.2.1" - -requirejs@^2.3.7: - version "2.3.7" - resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.7.tgz#0b22032e51a967900e0ae9f32762c23a87036bd0" - integrity sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -reselect@4.x: - version "4.1.8" - resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" - integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== - -resize-observer-polyfill@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-dependency-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/resolve-dependency-path/-/resolve-dependency-path-4.0.1.tgz#1b9d43e5b62384301e26d040b9fce61ee5db60bd" - integrity sha512-YQftIIC4vzO9UMhO/sCgXukNyiwVRCVaxiWskCBy7Zpqkplm8kTAISZ8O1MoKW1ca6xzgLUBjZTcDgypXvXxiQ== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-options@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" - integrity sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A== - dependencies: - value-or-function "^3.0.0" - -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== - -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - -resolve-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-2.0.0.tgz#ac06991418a7623edc119084edc98b0e6bf05a41" - integrity sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ== - dependencies: - resolve-from "^5.0.0" - -resolve-url-loader@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz#ee3142fb1f1e0d9db9524d539cfa166e9314f795" - integrity sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg== - dependencies: - adjust-sourcemap-loader "^4.0.0" - convert-source-map "^1.7.0" - loader-utils "^2.0.0" - postcss "^8.2.14" - source-map "0.6.1" - -resolve.exports@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f" - integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== - -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.10: - version "1.22.10" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" - integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== - dependencies: - is-core-module "^2.16.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^2.0.0-next.5: - version "2.0.0-next.5" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" - integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - -rfdc@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" - integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== - -rimraf@^2.5.4: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -robust-predicates@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" - integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== - -rst-selector-parser@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" - integrity sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA== - dependencies: - lodash.flattendeep "^4.4.0" - nearley "^2.7.10" - -rsvp@^4.8.2: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -rsvp@~3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.2.1.tgz#07cb4a5df25add9e826ebc67dcc9fd89db27d84a" - integrity sha512-Rf4YVNYpKjZ6ASAmibcwTNciQ5Co5Ztq6iZPEykHpkoflnD/K5ryE/rHehFsTm4NJj8nKDhbi3eKBWGogmNnkg== - -run-applescript@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" - integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rw@1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== - -rxjs@^7.5.1: - version "7.8.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" - integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== - dependencies: - tslib "^2.1.0" - -safe-array-concat@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" - integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.2" - get-intrinsic "^1.2.6" - has-symbols "^1.1.0" - isarray "^2.0.5" - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-push-apply@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5" - integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== - dependencies: - es-errors "^1.3.0" - isarray "^2.0.5" - -safe-regex-test@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" - integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - is-regex "^1.2.1" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass-loader@^10.1.1: - version "10.5.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.5.2.tgz#1ca30534fff296417b853c7597ca3b0bbe8c37d0" - integrity sha512-vMUoSNOUKJILHpcNCCyD23X34gve1TS7Rjd9uXHeKqhvBG39x6XbswFDtpbTElj6XdMFezoWhkh5vtKudf2cgQ== - dependencies: - klona "^2.0.4" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" - -sass-lookup@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/sass-lookup/-/sass-lookup-6.1.0.tgz#a13b1f31dd44d2b4bcd55ba8f72763db4d95bd7c" - integrity sha512-Zx+lVyoWqXZxHuYWlTA17Z5sczJ6braNT2C7rmClw+c4E7r/n911Zwss3h1uHI9reR5AgHZyNHF7c2+VIp5AUA== - dependencies: - commander "^12.1.0" - enhanced-resolve "^5.18.0" - -sass@^1.42.1: - version "1.87.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.87.0.tgz#8cceb36fa63fb48a8d5d7f2f4c13b49c524b723e" - integrity sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw== - dependencies: - chokidar "^4.0.0" - immutable "^5.0.2" - source-map-js ">=0.6.2 <2.0.0" - optionalDependencies: - "@parcel/watcher" "^2.4.1" - -sax@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" - integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== - -saxes@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" - integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== - dependencies: - xmlchars "^2.2.0" - -scheduler@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.14.0.tgz#b392c23c9c14bfa2933d4740ad5603cc0d59ea5b" - integrity sha512-9CgbS06Kki2f4R9FjLSITjZo5BZxPsryiRNyL3LpvrM9WxcVmhlqAOc9E+KQbeI2nqej4JIIbOsfdL51cNb4Iw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -schema-utils@^2.0.0, schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.0, schema-utils@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae" - integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -seed-random@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/seed-random/-/seed-random-2.2.0.tgz#2a9b19e250a817099231a5b99a4daf80b7fbed54" - integrity sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ== - -seedrandom@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7" - integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg== - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -selfsigned@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== - dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" - -"semver@2 || 3 || 4 || 5", semver@^5.7.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@6.x, semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@7.5.3: - version "7.5.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" - integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.1: - version "7.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" - integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== - -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== - dependencies: - encodeurl "~2.0.0" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.19.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-function-length@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -set-function-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" - integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.2" - -set-proto@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e" - integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== - dependencies: - dunder-proto "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shallow-equal@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" - integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== - -shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a" - integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== - -shelljs@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -side-channel-list@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" - integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== - dependencies: - es-errors "^1.3.0" - object-inspect "^1.13.3" - -side-channel-map@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" - integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - get-intrinsic "^1.2.5" - object-inspect "^1.13.3" - -side-channel-weakmap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" - integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - get-intrinsic "^1.2.5" - object-inspect "^1.13.3" - side-channel-map "^1.0.1" - -side-channel@^1.0.4, side-channel@^1.0.6, side-channel@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" - integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== - dependencies: - es-errors "^1.3.0" - object-inspect "^1.13.3" - side-channel-list "^1.0.0" - side-channel-map "^1.0.1" - side-channel-weakmap "^1.0.2" - -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -simple-bin-help@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/simple-bin-help/-/simple-bin-help-1.8.0.tgz#21bb82c6bccd9fa8678f9c0fadf2956b54e2160a" - integrity sha512-0LxHn+P1lF5r2WwVB/za3hLRIsYoLaNq1CXqjbrs3ZvLuvlWnRKrUjEWzV7umZL7hpQ7xULiQMV+0iXdRa5iFg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.0, source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@0.5.21, source-map-support@^0.5.16, source-map-support@^0.5.21, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" - integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.21" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz#6d6e980c9df2b6fc905343a3b2d702a6239536c3" - integrity sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -spec-change@^1.11.0: - version "1.11.15" - resolved "https://registry.yarnpkg.com/spec-change/-/spec-change-1.11.15.tgz#81e169365b4e1ba2dac1939babf1beb32863e8ac" - integrity sha512-+4U2JnoiScZABBdEynxZuTWu0cqvMCxilcEBdkgHJpvuhFVHqTk6EngWANDJX2llW6CI6+P2xHvAq1H650ssQA== - dependencies: - arg "^5.0.2" - debug "^4.3.4" - deep-equal "^2.2.3" - dependency-tree "^11.0.0" - lazy-ass "^2.0.3" - tinyglobby "^0.2.0" - -split@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== - dependencies: - through "2" - -sprintf-js@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" - integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.18.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" - integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -stackframe@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" - integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -stop-iteration-iterator@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad" - integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== - dependencies: - es-errors "^1.3.0" - internal-slot "^1.1.0" - -stream-browserify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" - integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== - dependencies: - inherits "~2.0.4" - readable-stream "^3.5.0" - -stream-shift@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" - integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== - -string-argv@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string.prototype.matchall@^4.0.12: - version "4.0.12" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz#6c88740e49ad4956b1332a911e949583a275d4c0" - integrity sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - es-abstract "^1.23.6" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.6" - gopd "^1.2.0" - has-symbols "^1.1.0" - internal-slot "^1.1.0" - regexp.prototype.flags "^1.5.3" - set-function-name "^2.0.2" - side-channel "^1.1.0" - -string.prototype.repeat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" - integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trim@^1.1.2, string.prototype.trim@^1.2.10: - version "1.2.10" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81" - integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.2" - define-data-property "^1.1.4" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-object-atoms "^1.0.0" - has-property-descriptors "^1.0.2" - -string.prototype.trimend@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" - integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.2" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string.prototype.trimstart@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" - integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string_decoder@^1.1.1, string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-object@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -style-loader@^3.3.1: - version "3.3.4" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.4.tgz#f30f786c36db03a45cbd55b6a70d930c479090e7" - integrity sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== - -stylelint-config-recommended@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-11.0.0.tgz#b1cb7d71bd92f9b8593f93c2ca6df16ed7d61522" - integrity sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA== - -stylelint-config-standard@^31.0.0: - version "31.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-31.0.0.tgz#90d94e1b43df798412e129b4b1cb4c4e56ffe64f" - integrity sha512-CUGAmtROCvX0YgMY2+6P9tqSkHj5z/75XxrQ8bGxvkCa1xYdGDx4poM0pa7cXc3s74/PZLJH/okxZZouRfOSGw== - dependencies: - stylelint-config-recommended "^11.0.0" - -stylelint@16.12.0: - version "16.12.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-16.12.0.tgz#13532dcbaed21348da0e9e0fb9a4e1e7f6dab2b8" - integrity sha512-F8zZ3L/rBpuoBZRvI4JVT20ZanPLXfQLzMOZg1tzPflRVh9mKpOZ8qcSIhh1my3FjAjZWG4T2POwGnmn6a6hbg== - dependencies: - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - "@csstools/media-query-list-parser" "^4.0.2" - "@csstools/selector-specificity" "^5.0.0" - "@dual-bundle/import-meta-resolve" "^4.1.0" - balanced-match "^2.0.0" - colord "^2.9.3" - cosmiconfig "^9.0.0" - css-functions-list "^3.2.3" - css-tree "^3.0.1" - debug "^4.3.7" - fast-glob "^3.3.2" - fastest-levenshtein "^1.0.16" - file-entry-cache "^9.1.0" - global-modules "^2.0.0" - globby "^11.1.0" - globjoin "^0.1.4" - html-tags "^3.3.1" - ignore "^6.0.2" - imurmurhash "^0.1.4" - is-plain-object "^5.0.0" - known-css-properties "^0.35.0" - mathml-tag-names "^2.1.3" - meow "^13.2.0" - micromatch "^4.0.8" - normalize-path "^3.0.0" - picocolors "^1.1.1" - postcss "^8.4.49" - postcss-resolve-nested-selector "^0.1.6" - postcss-safe-parser "^7.0.1" - postcss-selector-parser "^7.0.0" - postcss-value-parser "^4.2.0" - resolve-from "^5.0.0" - string-width "^4.2.3" - supports-hyperlinks "^3.1.0" - svg-tags "^1.0.0" - table "^6.9.0" - write-file-atomic "^5.0.1" - -stylus-lookup@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/stylus-lookup/-/stylus-lookup-6.1.0.tgz#f0fe88a885b830dc7520f51dd0a7e59e5d3307b4" - integrity sha512-5QSwgxAzXPMN+yugy61C60PhoANdItfdjSEZR8siFwz7yL9jTmV0UBKDCfn3K8GkGB4g0Y9py7vTCX8rFu4/pQ== - dependencies: - commander "^12.1.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0, supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" - integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== - -supports-hyperlinks@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz#b8e485b179681dea496a1e7abdf8985bd3145461" - integrity sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== - -symbol-observable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -symlink-or-copy@^1.1.8, symlink-or-copy@^1.2.0, symlink-or-copy@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/symlink-or-copy/-/symlink-or-copy-1.3.1.tgz#9506dd64d8e98fa21dcbf4018d1eab23e77f71fe" - integrity sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA== - -synckit@^0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.2.tgz#a3a935eca7922d48b9e7d6c61822ee6c3ae4ec62" - integrity sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw== - dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" - -tabbable@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" - integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== - -table@^6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.9.0.tgz#50040afa6264141c7566b3b81d4d82c47a8668f5" - integrity sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -tcomb-validation@^3.3.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tcomb-validation/-/tcomb-validation-3.4.1.tgz#a7696ec176ce56a081d9e019f8b732a5a8894b65" - integrity sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA== - dependencies: - tcomb "^3.0.0" - -tcomb@^3.0.0, tcomb@^3.2.17: - version "3.2.29" - resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-3.2.29.tgz#32404fe9456d90c2cf4798682d37439f1ccc386c" - integrity sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ== - -terser-webpack-plugin@^5.3.10: - version "5.3.14" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" - integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.25" - jest-worker "^27.4.5" - schema-utils "^4.3.0" - serialize-javascript "^6.0.2" - terser "^5.31.1" - -terser@^5.31.1: - version "5.39.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" - integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -theming@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/theming/-/theming-3.3.0.tgz#dacabf04aa689edde35f1e1c117ec6de73fbf870" - integrity sha512-u6l4qTJRDaWZsqa8JugaNt7Xd8PPl9+gonZaIe28vAhqgHMIG/DOyFPqiKN/gQLQYj05tHv+YQdNILL4zoiAVA== - dependencies: - hoist-non-react-statics "^3.3.0" - prop-types "^15.5.8" - react-display-name "^0.2.4" - tiny-warning "^1.0.2" - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -thingies@^1.20.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/thingies/-/thingies-1.21.0.tgz#e80fbe58fd6fdaaab8fad9b67bd0a5c943c445c1" - integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== - -thread-loader@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-3.0.4.tgz#c392e4c0241fbc80430eb680e4886819b504a31b" - integrity sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA== - dependencies: - json-parse-better-errors "^1.0.2" - loader-runner "^4.1.0" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^3.0.0" - -throttleit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.1.tgz#304ec51631c3b770c65c6c6f76938b384000f4d5" - integrity sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ== - -through2-filter@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.1.0.tgz#4a1b45d2b76b3ac93ec137951e372c268efc1a4e" - integrity sha512-VhZsTsfrIJjyUi6GeecnwcOJlmoqgIdGFDjqnV5ape+F1DN8GejfPO66XyIhoinxmxGImiUTrq9RwpTN5yszGA== - dependencies: - through2 "^4.0.2" - -through2@^2.0.0, through2@^2.0.1, through2@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@^4.0.2, through2@~4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" - integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== - dependencies: - readable-stream "3" - -through@2, through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -tiny-case@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-case/-/tiny-case-1.0.3.tgz#d980d66bc72b5d5a9ca86fb7c9ffdb9c898ddd03" - integrity sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q== - -tiny-invariant@^1.0.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" - integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== - -tiny-warning@^1.0.0, tiny-warning@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - -tinyglobby@^0.2.0, tinyglobby@^0.2.12: - version "0.2.13" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.13.tgz#a0e46515ce6cbcd65331537e57484af5a7b2ff7e" - integrity sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw== - dependencies: - fdir "^6.4.4" - picomatch "^4.0.2" - -tlds@^1.57.0: - version "1.258.0" - resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.258.0.tgz#214b9bdfc4d1ba83dd59f11458ec067c2bd18567" - integrity sha512-XGhStWuOlBA5D8QnyN2xtgB2cUOdJ3ztisne1DYVWMcVH29qh8eQIpRmP3HnuJLdgyzG0HpdGzRMu1lm/Oictw== - -tldts-core@^6.1.86: - version "6.1.86" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8" - integrity sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA== - -tldts@^6.1.32: - version "6.1.86" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.86.tgz#087e0555b31b9725ee48ca7e77edc56115cd82f7" - integrity sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ== - dependencies: - tldts-core "^6.1.86" - -tmp@0.2.3, tmp@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" - integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-absolute-glob@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" - integrity sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA== - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-through@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" - integrity sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q== - dependencies: - through2 "^2.0.3" - -toggle-selection@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -toposort@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" - integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== - -tough-cookie@^4.1.2: - version "4.1.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" - integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tough-cookie@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7" - integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== - dependencies: - tldts "^6.1.32" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -tree-dump@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.2.tgz#c460d5921caeb197bde71d0e9a7b479848c5b8ac" - integrity sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ== - -tree-kill@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -ts-api-utils@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" - integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== - -ts-dedent@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" - integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== - -ts-jest@^29.3.1: - version "29.3.2" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.3.2.tgz#0576cdf0a507f811fe73dcd16d135ce89f8156cb" - integrity sha512-bJJkrWc6PjFVz5g2DGCNUo8z7oFEYaz1xP1NpeDU7KNLMWPpEyV8Chbpkn8xjzgRDpQhnGMyvyldoL7h8JXyug== - dependencies: - bs-logger "^0.2.6" - ejs "^3.1.10" - fast-json-stable-stringify "^2.1.0" - jest-util "^29.0.0" - json5 "^2.2.3" - lodash.memoize "^4.1.2" - make-error "^1.3.6" - semver "^7.7.1" - type-fest "^4.39.1" - yargs-parser "^21.1.1" - -ts-loader@^9.3.1: - version "9.5.2" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.2.tgz#1f3d7f4bb709b487aaa260e8f19b301635d08020" - integrity sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw== - dependencies: - chalk "^4.1.0" - enhanced-resolve "^5.0.0" - micromatch "^4.0.0" - semver "^7.3.4" - source-map "^0.7.4" - -ts-node@^10.9.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tsconfig-paths@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" - integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== - dependencies: - json5 "^2.2.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -tslib@^1.8.1, tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.5.0, tslib@^2.5.2, tslib@^2.6.2, tslib@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tsx@^4.19.3: - version "4.19.4" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.4.tgz#647b4141f4fdd9d773a9b564876773d2846901f4" - integrity sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q== - dependencies: - esbuild "~0.25.0" - get-tsconfig "^4.7.5" - optionalDependencies: - fsevents "~2.3.3" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - -type-fest@^4.39.1, type-fest@^4.6.0, type-fest@^4.8.3: - version "4.40.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.40.1.tgz#d78a09f08dd1081a434dd377967650cfd565401d" - integrity sha512-9YvLNnORDpI+vghLU/Nf+zSv0kL47KbVJ1o3sKgoTefl6i+zebxbiDQWoe/oWWqPhIgQdRZRT1KA9sCPL810SA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typed-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" - integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - is-typed-array "^1.1.14" - -typed-array-byte-length@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" - integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== - dependencies: - call-bind "^1.0.8" - for-each "^0.3.3" - gopd "^1.2.0" - has-proto "^1.2.0" - is-typed-array "^1.1.14" - -typed-array-byte-offset@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" - integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - for-each "^0.3.3" - gopd "^1.2.0" - has-proto "^1.2.0" - is-typed-array "^1.1.15" - reflect.getprototypeof "^1.0.9" - -typed-array-length@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" - integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - is-typed-array "^1.1.13" - possible-typed-array-names "^1.0.0" - reflect.getprototypeof "^1.0.6" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -typesafe-actions@^4.2.1, typesafe-actions@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/typesafe-actions/-/typesafe-actions-4.4.2.tgz#8f817c479d12130b5ebb442032968b2a18929e1a" - integrity sha512-QW61P4cOX8dCNmrfpcUMjvU/MF/sFTC8/PlG9215W1gKDzZUBjRGdyYSO6ZcEUNsn491S2VpryJOHSIVSDqJrg== - -typescript@^4.2.4, typescript@^4.7.4: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -typescript@^5.7.3: - version "5.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" - integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== - -uc.micro@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - -unbox-primitive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" - integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== - dependencies: - call-bound "^1.0.3" - has-bigints "^1.0.2" - has-symbols "^1.1.0" - which-boxed-primitive "^1.1.1" - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== - -underscore.string@~3.3.4: - version "3.3.6" - resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.6.tgz#ad8cf23d7423cb3b53b898476117588f4e2f9159" - integrity sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ== - dependencies: - sprintf-js "^1.1.1" - util-deprecate "^1.0.2" - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -undici@^5.25.4, undici@^5.28.4: - version "5.29.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.29.0.tgz#419595449ae3f2cdcba3580a2e8903399bd1f5a3" - integrity sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg== - dependencies: - "@fastify/busboy" "^2.0.0" - -undici@^6.19.5: - version "6.21.2" - resolved "https://registry.yarnpkg.com/undici/-/undici-6.21.2.tgz#49c5884e8f9039c65a89ee9018ef3c8e2f1f4928" - integrity sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" - integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" - integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - -unicorn-magic@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" - integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== - -unique-stream@^2.0.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" - integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== - dependencies: - json-stable-stringify-without-jsonify "^1.0.1" - through2-filter "^3.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -universalify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" - integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -update-browserslist-db@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" - integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.1" - -upper-case-first@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" - integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== - dependencies: - tslib "^2.0.3" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -util-arity@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/util-arity/-/util-arity-1.1.0.tgz#59d01af1fdb3fede0ac4e632b0ab5f6ce97c9330" - integrity sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@10.0.0, uuid@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294" - integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ== - -uuid@11.0.5: - version "11.0.5" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.0.5.tgz#07b46bdfa6310c92c3fb3953a8720f170427fc62" - integrity sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA== - -uuid@9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -uuid@^3.3.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -v8-to-istanbul@^9.0.1: - version "9.3.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" - integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^2.0.0" - -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validator@^13.6.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.15.0.tgz#2dc7ce057e7513a55585109eec29b2c8e8c1aefd" - integrity sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA== - -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - -value-or-function@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" - integrity sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -victory-area@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-area/-/victory-area-36.9.2.tgz#8dd79834cb182cbac0eb480d040dd6059e24bc43" - integrity sha512-32aharvPf2RgdQB+/u1j3/ajYFNH/7ugLX9ZRpdd65gP6QEbtXL+58gS6CxvFw6gr/y8a0xMlkMKkpDVacXLpw== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - victory-vendor "^36.9.2" - -victory-axis@^36.9.1, victory-axis@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-axis/-/victory-axis-36.9.2.tgz#80137a900671e918d9296f0f12f8252b6094b09b" - integrity sha512-4Odws+IAjprJtBg2b2ZCxEPgrQ6LgIOa22cFkGghzOSfTyNayN4M3AauNB44RZyn2O/hDiM1gdBkEg1g9YDevQ== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - -victory-bar@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-bar/-/victory-bar-36.9.2.tgz#8ab0f67337394b71d8bd6ee1599bd260f3d63303" - integrity sha512-R3LFoR91FzwWcnyGK2P8DHNVv9gsaWhl5pSr2KdeNtvLbZVEIvUkTeVN9RMBMzterSFPw0mbWhS1Asb3sV6PPw== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - victory-vendor "^36.9.2" - -victory-box-plot@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-box-plot/-/victory-box-plot-36.9.2.tgz#504c0ceef303a7c56ce2877711d53df99915e9c4" - integrity sha512-nUD45V/YHDkAKZyak7YDsz+Vk1F9N0ica3jWQe0AY0JqD9DleHa8RY/olSVws26kLyEj1I+fQqva6GodcLaIqQ== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - victory-vendor "^36.9.2" - -victory-brush-container@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-brush-container/-/victory-brush-container-36.9.2.tgz#989c2b4787fb222f8354202c7ff0d0b3fa236e53" - integrity sha512-KcQjzFeo40tn52cJf1A02l5MqeR9GKkk3loDqM3T2hfi1PCyUrZXEUjGN5HNlLizDRvtcemaAHNAWlb70HbG/g== - dependencies: - lodash "^4.17.19" - react-fast-compare "^3.2.0" - victory-core "^36.9.2" - -victory-chart@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-chart/-/victory-chart-36.9.2.tgz#ab09f566722d7337e55ebca45a6a82ed071fb277" - integrity sha512-dMNcS0BpqL3YiGvI4BSEmPR76FCksCgf3K4CSZ7C/MGyrElqB6wWwzk7afnlB1Qr71YIHXDmdwsPNAl/iEwTtA== - dependencies: - lodash "^4.17.19" - react-fast-compare "^3.2.0" - victory-axis "^36.9.2" - victory-core "^36.9.2" - victory-polar-axis "^36.9.2" - victory-shared-events "^36.9.2" - -victory-core@^36.9.1, victory-core@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-core/-/victory-core-36.9.2.tgz#bb82846e8f60b62f51e70b2658192c8434596d02" - integrity sha512-AzmMy+9MYMaaRmmZZovc/Po9urHne3R3oX7bbXeQdVuK/uMBrlPiv11gVJnuEH2SXLVyep43jlKgaBp8ef9stQ== - dependencies: - lodash "^4.17.21" - react-fast-compare "^3.2.0" - victory-vendor "^36.9.2" - -victory-create-container@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-create-container/-/victory-create-container-36.9.2.tgz#d913683cc2a9dda25f58c1f1336e0985f8288712" - integrity sha512-uA0dh1R0YDzuXyE/7StZvq4qshet+WYceY7R1UR5mR/F9079xy+iQsa2Ca4h97/GtVZoLO6r1eKLWBt9TN+U7A== - dependencies: - lodash "^4.17.19" - victory-brush-container "^36.9.2" - victory-core "^36.9.2" - victory-cursor-container "^36.9.2" - victory-selection-container "^36.9.2" - victory-voronoi-container "^36.9.2" - victory-zoom-container "^36.9.2" - -victory-cursor-container@^36.9.1, victory-cursor-container@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-cursor-container/-/victory-cursor-container-36.9.2.tgz#4f874c76c02c80a4f3d09ffa741076f905f8ed4f" - integrity sha512-jidab4j3MaciF3fGX70jTj4H9rrLcY8o2LUrhJ67ZLvEFGGmnPtph+p8Fe97Umrag7E/DszjNxQZolpwlgUh3g== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - -victory-group@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-group/-/victory-group-36.9.2.tgz#4451b3cf9a4a9488271277c31d85022dfdb59397" - integrity sha512-wBmpsjBTKva8mxHvHNY3b8RE58KtnpLLItEyyAHaYkmExwt3Uj8Cld3sF3vmeuijn2iR64NPKeMbgMbfZJzycw== - dependencies: - lodash "^4.17.19" - react-fast-compare "^3.2.0" - victory-core "^36.9.2" - victory-shared-events "^36.9.2" - -victory-legend@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-legend/-/victory-legend-36.9.2.tgz#2ca9e36b7be60bc4a64711f25524ac1290e75453" - integrity sha512-cucFJpv6fty+yXp5pElQFQnHBk1TqA4guGUMI+XF/wLlnuM4bhdAtASobRIIBkz0mHGBaCAAV4PzL9azPU/9dg== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - -victory-line@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-line/-/victory-line-36.9.2.tgz#02e3e1f404ac4b0a2cca4ae4684c20037e2a51a3" - integrity sha512-kmYFZUo0o2xC8cXRsmt/oUBRQSZJVT2IJnAkboUepypoj09e6CY5tRH4TSdfEDGkBk23xQkn7d4IFgl4kAGnSA== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - victory-vendor "^36.9.2" - -victory-pie@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-pie/-/victory-pie-36.9.2.tgz#2af3c12b9251de20f11a8325c821aede9cb5f8a5" - integrity sha512-i3zWezvy5wQEkhXKt4rS9ILGH7Vr9Q5eF9fKO4GMwDPBdYOTE3Dh2tVaSrfDC8g9zFIc0DKzOtVoJRTb+0AkPg== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - victory-vendor "^36.9.2" - -victory-polar-axis@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-polar-axis/-/victory-polar-axis-36.9.2.tgz#574a7deede92d227e20e9ad4938c57633f5e5ac3" - integrity sha512-HBR90FF4M56yf/atXjSmy3DMps1vSAaLXmdVXLM/A5g+0pUS7HO719r5x6dsR3I6Rm+8x6Kk8xJs0qgpnGQIEw== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - -victory-scatter@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-scatter/-/victory-scatter-36.9.2.tgz#f07dced7660f90e2a898053431462d3c6372149f" - integrity sha512-hK9AtbJQfaW05i8BH7Lf1HK7vWMAfQofj23039HEQJqTKbCL77YT+Q0LhZw1a1BRCpC/5aSg9EuqblhfIYw2wg== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - -victory-selection-container@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-selection-container/-/victory-selection-container-36.9.2.tgz#bff359d27d50b04a473eacdb8e8c66488afd20a4" - integrity sha512-chboroEwqqVlMB60kveXM2WznJ33ZM00PWkFVCoJDzHHlYs7TCADxzhqet2S67SbZGSyvSprY2YztSxX8kZ+XQ== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - -victory-shared-events@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-shared-events/-/victory-shared-events-36.9.2.tgz#cf0cf2220ee1eb90baa16e202873b20254ab9cde" - integrity sha512-W/atiw3Or6MnpBuhluFv6007YrixIRh5NtiRvtFLGxNuQJLYjaSh6koRAih5xJer5Pj7YUx0tL9x67jTRcJ6Dg== - dependencies: - json-stringify-safe "^5.0.1" - lodash "^4.17.19" - react-fast-compare "^3.2.0" - victory-core "^36.9.2" - -victory-stack@^36.9.1: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-stack/-/victory-stack-36.9.2.tgz#25cd48ed66b4c9163993e6ac8d770dca791e2074" - integrity sha512-imR6FniVlDFlBa/B3Est8kTryNhWj2ZNpivmVOebVDxkKcVlLaDg3LotCUOI7NzOhBQaro0UzeE9KmZV93JcYA== - dependencies: - lodash "^4.17.19" - react-fast-compare "^3.2.0" - victory-core "^36.9.2" - victory-shared-events "^36.9.2" - -victory-tooltip@^36.9.1, victory-tooltip@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-tooltip/-/victory-tooltip-36.9.2.tgz#8e240a03f80909e80a9501419bec01bc13700919" - integrity sha512-76seo4TWD1WfZHJQH87IP3tlawv38DuwrUxpnTn8+uW6/CUex82poQiVevYdmJzhataS9jjyCWv3w7pOmLBCLg== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - -victory-vendor@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-vendor/-/victory-vendor-36.9.2.tgz#668b02a448fa4ea0f788dbf4228b7e64669ff801" - integrity sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ== - dependencies: - "@types/d3-array" "^3.0.3" - "@types/d3-ease" "^3.0.0" - "@types/d3-interpolate" "^3.0.1" - "@types/d3-scale" "^4.0.2" - "@types/d3-shape" "^3.1.0" - "@types/d3-time" "^3.0.0" - "@types/d3-timer" "^3.0.0" - d3-array "^3.1.6" - d3-ease "^3.0.1" - d3-interpolate "^3.0.1" - d3-scale "^4.0.2" - d3-shape "^3.1.0" - d3-time "^3.0.0" - d3-timer "^3.0.1" - -victory-voronoi-container@^36.9.1, victory-voronoi-container@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-voronoi-container/-/victory-voronoi-container-36.9.2.tgz#1b3ce4dd43ceb371f6caba6b0724ca563de87b96" - integrity sha512-NIVYqck9N4OQnEz9mgQ4wILsci3OBWWK7RLuITGHyoD7Ne/+WH1i0Pv2y9eIx+f55rc928FUTugPPhkHvXyH3A== - dependencies: - delaunay-find "0.0.6" - lodash "^4.17.19" - react-fast-compare "^3.2.0" - victory-core "^36.9.2" - victory-tooltip "^36.9.2" - -victory-zoom-container@^36.9.1, victory-zoom-container@^36.9.2: - version "36.9.2" - resolved "https://registry.yarnpkg.com/victory-zoom-container/-/victory-zoom-container-36.9.2.tgz#2899c8fa06d772864128b44130d48744298b76d0" - integrity sha512-pXa2Ji6EX/pIarKT6Hcmmu2n7IG/x8Vs0D2eACQ/nbpvZa+DXWIxCRW4hcg2Va35fmXcDIEpGaX3/soXzZ+pbw== - dependencies: - lodash "^4.17.19" - victory-core "^36.9.2" - -vinyl-fs@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" - integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== - dependencies: - fs-mkdirp-stream "^1.0.0" - glob-stream "^6.1.0" - graceful-fs "^4.0.0" - is-valid-glob "^1.0.0" - lazystream "^1.0.0" - lead "^1.0.0" - object.assign "^4.0.4" - pumpify "^1.3.5" - readable-stream "^2.3.3" - remove-bom-buffer "^3.0.0" - remove-bom-stream "^1.2.0" - resolve-options "^1.1.0" - through2 "^2.0.0" - to-through "^2.0.0" - value-or-function "^3.0.0" - vinyl "^2.0.0" - vinyl-sourcemap "^1.1.0" - -vinyl-sourcemap@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" - integrity sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA== - dependencies: - append-buffer "^1.0.2" - convert-source-map "^1.5.0" - graceful-fs "^4.1.6" - normalize-path "^2.1.1" - now-and-later "^2.0.0" - remove-bom-buffer "^3.0.0" - vinyl "^2.0.0" - -vinyl@^2.0.0, vinyl@~2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" - integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - -void-elements@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== - -vue-template-compiler@^2.6.11: - version "2.7.16" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz#c81b2d47753264c77ac03b9966a46637482bb03b" - integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ== - dependencies: - de-indent "^1.0.2" - he "^1.2.0" - -w3c-xmlserializer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" - integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== - dependencies: - xml-name-validator "^4.0.0" - -walk-sync@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-2.2.0.tgz#80786b0657fcc8c0e1c0b1a042a09eae2966387a" - integrity sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg== - dependencies: - "@types/minimatch" "^3.0.3" - ensure-posix-path "^1.1.0" - matcher-collection "^2.0.0" - minimatch "^3.0.4" - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -watchpack@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" - integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -wcwidth@>=1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -webcola@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/webcola/-/webcola-3.4.0.tgz#490d26ae98e5b5109478b94a846a62ff6831a99d" - integrity sha512-4BiLXjXw3SJHo3Xd+rF+7fyClT6n7I+AR6TkBqyQ4kTsePSAMDLRCXY1f3B/kXJeP9tYn4G1TblxTO+jAt0gaw== - dependencies: - d3-dispatch "^1.0.3" - d3-drag "^1.0.4" - d3-shape "^1.3.5" - d3-timer "^1.0.5" - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -webpack-cli@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" - integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.1" - "@webpack-cli/info" "^2.0.2" - "@webpack-cli/serve" "^2.0.5" - colorette "^2.0.14" - commander "^10.0.1" - cross-spawn "^7.0.3" - envinfo "^7.7.3" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^3.1.1" - rechoir "^0.8.0" - webpack-merge "^5.7.3" - -webpack-dev-middleware@^7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz#40e265a3d3d26795585cff8207630d3a8ff05877" - integrity sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA== - dependencies: - colorette "^2.0.10" - memfs "^4.6.0" - mime-types "^2.1.31" - on-finished "^2.4.1" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@^5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.2.1.tgz#049072d6e19cbda8cf600b9e364e6662d61218ba" - integrity sha512-ml/0HIj9NLpVKOMq+SuBPLHcmbG+TGIjXRHsYfZwocUBIqEvws8NnS/V9AFQ5FKP+tgn5adwVwRrTEpGL33QFQ== - dependencies: - "@types/bonjour" "^3.5.13" - "@types/connect-history-api-fallback" "^1.5.4" - "@types/express" "^4.17.21" - "@types/express-serve-static-core" "^4.17.21" - "@types/serve-index" "^1.9.4" - "@types/serve-static" "^1.15.5" - "@types/sockjs" "^0.3.36" - "@types/ws" "^8.5.10" - ansi-html-community "^0.0.8" - bonjour-service "^1.2.1" - chokidar "^3.6.0" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - express "^4.21.2" - graceful-fs "^4.2.6" - http-proxy-middleware "^2.0.7" - ipaddr.js "^2.1.0" - launch-editor "^2.6.1" - open "^10.0.3" - p-retry "^6.2.0" - schema-utils "^4.2.0" - selfsigned "^2.4.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^7.4.2" - ws "^8.18.0" - -webpack-merge@^5.7.3: - version "5.10.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" - integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== - dependencies: - clone-deep "^4.0.1" - flat "^5.0.2" - wildcard "^2.0.0" - -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack@5.75.0, webpack@5.94.0: - version "5.94.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f" - integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg== - dependencies: - "@types/estree" "^1.0.5" - "@webassemblyjs/ast" "^1.12.1" - "@webassemblyjs/wasm-edit" "^1.12.1" - "@webassemblyjs/wasm-parser" "^1.12.1" - acorn "^8.7.1" - acorn-import-attributes "^1.9.5" - browserslist "^4.21.10" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.1" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.11" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.2.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.10" - watchpack "^2.4.1" - webpack-sources "^3.2.3" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - -whatwg-encoding@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" - integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== - dependencies: - iconv-lite "0.6.3" - -whatwg-fetch@2.x: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-mimetype@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" - integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -which-boxed-primitive@^1.0.2, which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" - integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== - dependencies: - is-bigint "^1.1.0" - is-boolean-object "^1.2.1" - is-number-object "^1.1.1" - is-string "^1.1.1" - is-symbol "^1.1.1" - -which-builtin-type@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" - integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== - dependencies: - call-bound "^1.0.2" - function.prototype.name "^1.1.6" - has-tostringtag "^1.0.2" - is-async-function "^2.0.0" - is-date-object "^1.1.0" - is-finalizationregistry "^1.1.0" - is-generator-function "^1.0.10" - is-regex "^1.2.1" - is-weakref "^1.0.2" - isarray "^2.0.5" - which-boxed-primitive "^1.1.0" - which-collection "^1.0.2" - which-typed-array "^1.1.16" - -which-collection@^1.0.1, which-collection@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" - integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== - dependencies: - is-map "^2.0.3" - is-set "^2.0.3" - is-weakmap "^2.0.2" - is-weakset "^2.0.3" - -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which-typed-array@^1.1.13, which-typed-array@^1.1.16, which-typed-array@^1.1.18: - version "1.1.19" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" - integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - call-bound "^1.0.4" - for-each "^0.3.5" - get-proto "^1.0.1" - gopd "^1.2.0" - has-tostringtag "^1.0.2" - -which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wildcard@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" - integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== - -word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -workerpool@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" - integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -write-file-atomic@^5.0.0, write-file-atomic@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" - integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^4.0.1" - -ws@^8.11.0, ws@^8.18.0: - version "8.18.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.2.tgz#42738b2be57ced85f46154320aabb51ab003705a" - integrity sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ== - -xml-js@^1.6.11: - version "1.6.11" - resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" - integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== - dependencies: - sax "^1.2.4" - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -xml@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" - integrity sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw== - -xmlbuilder@^15.1.1: - version "15.1.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" - integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^2.2.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.1.tgz#44a247d1b88523855679ac7fa7cda6ed7e135cf6" - integrity sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^17.2.1, yargs@^17.3.1, yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yup@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/yup/-/yup-1.2.0.tgz#9e51af0c63bdfc9be0fdc6c10aa0710899d8aff6" - integrity sha512-PPqYKSAXjpRCgLgLKVGPA33v5c/WgEx3wi6NFjIiegz90zSwyMpvTFp/uGcVnnbx6to28pgnzp/q8ih3QRjLMQ== - dependencies: - property-expr "^2.0.5" - tiny-case "^1.0.3" - toposort "^2.0.2" - type-fest "^2.19.0" - -yup@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/yup/-/yup-1.6.1.tgz#8defcff9daaf9feac178029c0e13b616563ada4b" - integrity sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA== - dependencies: - property-expr "^2.0.5" - tiny-case "^1.0.3" - toposort "^2.0.2" - type-fest "^2.19.0" - -yup@^0.32.11: - version "0.32.11" - resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.11.tgz#d67fb83eefa4698607982e63f7ca4c5ed3cf18c5" - integrity sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg== - dependencies: - "@babel/runtime" "^7.15.4" - "@types/lodash" "^4.14.175" - lodash "^4.17.21" - lodash-es "^4.17.21" - nanoclone "^0.2.1" - property-expr "^2.0.4" - toposort "^2.0.2" diff --git a/upstream/.tekton/.placeholder b/upstream/.tekton/.placeholder deleted file mode 100644 index e69de29b..00000000 diff --git a/upstream/.tekton/console-plugin-next-console-plugin-pull-request.yaml b/upstream/.tekton/console-plugin-next-console-plugin-pull-request.yaml deleted file mode 100644 index 094e7098..00000000 --- a/upstream/.tekton/console-plugin-next-console-plugin-pull-request.yaml +++ /dev/null @@ -1,51 +0,0 @@ -# Generated for Konflux Application openshift-pipelines-core-next by openshift-pipelines/hack. DO NOT EDIT -apiVersion: tekton.dev/v1 -kind: PipelineRun -metadata: - annotations: - pipelinesascode.tekton.dev/cancel-in-progress: "true" # Cancel in-progress pipelines - pipelinesascode.tekton.dev/pipeline: "https://raw.githubusercontent.com/openshift-pipelines/operator/refs/heads/main/.tekton/docker-build-ta.yaml" - build.appstudio.openshift.io/repo: https://github.com/openshift-pipelines/console-plugin.git?rev={{revision}} - build.appstudio.redhat.com/commit_sha: '{{revision}}' - build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}' - build.appstudio.redhat.com/target_branch: '{{target_branch}}' - pipelinesascode.tekton.dev/max-keep-runs: "3" - pipelinesascode.tekton.dev/on-cel-expression: event == "pull_request" && target_branch - == "main" && - ("***".pathChanged() || - ".konflux/dockerfiles/console-plugin.Dockerfile".pathChanged() || - ".tekton/console-plugin-next-console-plugin-pull-request.yaml".pathChanged()) - creationTimestamp: null - labels: - appstudio.openshift.io/application: openshift-pipelines-core-next - appstudio.openshift.io/component: console-plugin-next-console-plugin - pipelines.appstudio.openshift.io/type: build - name: console-plugin-next-console-plugin-on-pull-request - namespace: tekton-ecosystem-tenant -spec: - params: - - name: git-url - value: '{{source_url}}' - - name: revision - value: '{{revision}}' - - name: output-image - value: quay.io/redhat-user-workloads/tekton-ecosystem-tenant/next/console-plugin-rhel9:on-pr-{{revision}} - - name: image-expires-after - value: 5d - - name: dockerfile - value: .konflux/dockerfiles/console-plugin.Dockerfile - - name: build-platforms - value: - - linux/x86_64 - - name: prefetch-input - value: | - {"type": "rpm", "path": ".konflux/rpms"} - pipelineRef: - name: docker-build-ta - taskRunTemplate: - serviceAccountName: build-pipeline-console-plugin-next-console-plugin - workspaces: - - name: git-auth - secret: - secretName: '{{ git_auth_secret }}' -status: {} diff --git a/upstream/.tekton/console-plugin-next-console-plugin-push.yaml b/upstream/.tekton/console-plugin-next-console-plugin-push.yaml deleted file mode 100644 index 4e5bd1e1..00000000 --- a/upstream/.tekton/console-plugin-next-console-plugin-push.yaml +++ /dev/null @@ -1,45 +0,0 @@ -# Generated for Konflux Application openshift-pipelines-core-next by openshift-pipelines/hack. DO NOT EDIT -apiVersion: tekton.dev/v1 -kind: PipelineRun -metadata: - annotations: - pipelinesascode.tekton.dev/cancel-in-progress: "true" # Cancel in-progress pipelines - pipelinesascode.tekton.dev/pipeline: "https://raw.githubusercontent.com/openshift-pipelines/operator/refs/heads/main/.tekton/docker-build-ta.yaml" - build.appstudio.openshift.io/repo: https://github.com/openshift-pipelines/console-plugin.git?rev={{revision}} - build.appstudio.redhat.com/commit_sha: '{{revision}}' - build.appstudio.redhat.com/target_branch: '{{target_branch}}' - pipelinesascode.tekton.dev/max-keep-runs: "3" - pipelinesascode.tekton.dev/on-cel-expression: event == "push" && target_branch - == "main" && - ("***".pathChanged() || - ".konflux/dockerfiles/console-plugin.Dockerfile".pathChanged() || - ".tekton/console-plugin-next-console-plugin-push.yaml".pathChanged()) - creationTimestamp: null - labels: - appstudio.openshift.io/application: openshift-pipelines-core-next - appstudio.openshift.io/component: console-plugin-next-console-plugin - pipelines.appstudio.openshift.io/type: build - name: console-plugin-next-console-plugin-on-push - namespace: tekton-ecosystem-tenant -spec: - params: - - name: git-url - value: '{{source_url}}' - - name: revision - value: '{{revision}}' - - name: output-image - value: quay.io/redhat-user-workloads/tekton-ecosystem-tenant/next/console-plugin-rhel9:{{revision}} - - name: dockerfile - value: .konflux/dockerfiles/console-plugin.Dockerfile - - name: prefetch-input - value: | - {"type": "rpm", "path": ".konflux/rpms"} - pipelineRef: - name: docker-build-ta - taskRunTemplate: - serviceAccountName: build-pipeline-console-plugin-next-console-plugin - workspaces: - - name: git-auth - secret: - secretName: '{{ git_auth_secret }}' -status: {} diff --git a/upstream/.yarnrc b/upstream/.yarnrc deleted file mode 100644 index 041f3b29..00000000 --- a/upstream/.yarnrc +++ /dev/null @@ -1,7 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -lastUpdateCheck 1730873401036 -yarn-offline-mirror "./npm-packages-offline-cache" -yarn-offline-mirror-pruning true diff --git a/upstream/.yarnrc.yml b/upstream/.yarnrc.yml new file mode 100644 index 00000000..1f0cf31b --- /dev/null +++ b/upstream/.yarnrc.yml @@ -0,0 +1,16 @@ +nodeLinker: node-modules + +supportedArchitectures: + os: + - linux + cpu: + - x64 + - arm64 + - s390x + - ppc64 + +# Force packages to use the same webpack instance +packageExtensions: + "@openshift-console/dynamic-plugin-sdk-webpack@*": + peerDependencies: + webpack: "*" \ No newline at end of file diff --git a/upstream/Dockerfile b/upstream/Dockerfile index 36e4b00a..73e9318f 100644 --- a/upstream/Dockerfile +++ b/upstream/Dockerfile @@ -1,19 +1,27 @@ -FROM registry.access.redhat.com/ubi8/nodejs-18:latest AS builder-ui +ARG BUILDER=registry.access.redhat.com/ubi9/nodejs-20 +ARG RUNTIME=registry.access.redhat.com/ubi9/nginx-124 + +# Stage 1: Build UI +FROM $BUILDER AS builder-ui + USER root -RUN command -v yarn || npm i -g yarn +# Enable Corepack and prepare Yarn 4.6 +RUN npm install -g corepack && corepack enable && corepack prepare yarn@4.6.0 --activate + +# Copy source ADD . /usr/src/app WORKDIR /usr/src/app -RUN yarn install --frozen-lockfile && \ +# Install dependencies & build +RUN yarn install --immutable && \ yarn build -FROM registry.access.redhat.com/ubi8/nginx-124:latest +# Stage 2: Serve with Nginx +FROM $RUNTIME COPY --from=builder-ui /usr/src/app/dist /usr/share/nginx/html - COPY ./nginx.conf /etc/nginx/nginx.conf USER 1001 - ENTRYPOINT ["nginx", "-g", "daemon off;"] diff --git a/upstream/Dockerfile.without_builder b/upstream/Dockerfile.without_builder index 8d4a78f1..e4d9d127 100644 --- a/upstream/Dockerfile.without_builder +++ b/upstream/Dockerfile.without_builder @@ -7,7 +7,9 @@ # however in this project, the code will be executed on a browser, # hence assuming no impact on this approach -FROM registry.access.redhat.com/ubi8/nginx-124:latest +ARG RUNTIME=registry.access.redhat.com/ubi9/nginx-124 + +FROM $RUNTIME COPY ./dist /usr/share/nginx/html diff --git a/upstream/OWNERS b/upstream/OWNERS index cd2d53f7..7191f9f2 100644 --- a/upstream/OWNERS +++ b/upstream/OWNERS @@ -1,4 +1,6 @@ approvers: + - anwesha-palit-redhat + - arvindk-softwaredev - vdemeester - vikram-raj - lokanandaprabhu @@ -9,4 +11,5 @@ reviewers: - pratap0007 - lokanandaprabhu - anwesha-palit-redhat + - arvindk-softwaredev component: OpenShift Pipelines Console Plugin diff --git a/upstream/console-extensions.json b/upstream/console-extensions.json index f28581f2..bde148d8 100644 --- a/upstream/console-extensions.json +++ b/upstream/console-extensions.json @@ -1,4 +1,13 @@ [ + { + "type": "console.redux-reducer", + "properties": { + "scope": "pipelinesOverviewFilters", + "reducer": { + "$codeRef": "pipelinesOverviewFiltersReducer.pipelinesOverviewFiltersReducer" + } + } + }, { "type": "console.flag/model", "properties": { @@ -148,12 +157,12 @@ "model": { "group": "tekton.dev", "version": "v1beta1", - "kind": "Pipeline" + "kind": "PipelineRun" }, "color": "#38812f", - "label": "%plugin__pipelines-console-plugin~Pipeline%", - "labelPlural": "%plugin__pipelines-console-plugin~Pipelines%", - "abbr": "PL" + "label": "%plugin__pipelines-console-plugin~PipelineRun%", + "labelPlural": "%plugin__pipelines-console-plugin~PipelineRuns%", + "abbr": "PLR" } }, { @@ -162,26 +171,26 @@ "model": { "group": "tekton.dev", "version": "v1", - "kind": "Pipeline" + "kind": "PipelineRun" }, "color": "#38812f", - "label": "%plugin__pipelines-console-plugin~Pipeline%", - "labelPlural": "%plugin__pipelines-console-plugin~Pipelines%", - "abbr": "PL" + "label": "%plugin__pipelines-console-plugin~PipelineRun%", + "labelPlural": "%plugin__pipelines-console-plugin~PipelineRuns%", + "abbr": "PLR" } }, - { + { "type": "console.model-metadata", "properties": { "model": { "group": "tekton.dev", "version": "v1beta1", - "kind": "PipelineRun" + "kind": "Task" }, "color": "#38812f", - "label": "%plugin__pipelines-console-plugin~PipelineRun%", - "labelPlural": "%plugin__pipelines-console-plugin~PipelineRuns%", - "abbr": "PLR" + "label": "%plugin__pipelines-console-plugin~Task%", + "labelPlural": "%plugin__pipelines-console-plugin~Tasks%", + "abbr": "T" } }, { @@ -190,14 +199,145 @@ "model": { "group": "tekton.dev", "version": "v1", - "kind": "PipelineRun" + "kind": "Task" }, "color": "#38812f", - "label": "%plugin__pipelines-console-plugin~PipelineRun%", - "labelPlural": "%plugin__pipelines-console-plugin~PipelineRuns%", - "abbr": "PLR" + "label": "%plugin__pipelines-console-plugin~Task%", + "labelPlural": "%plugin__pipelines-console-plugin~Tasks%", + "abbr": "T" + } + }, + { + "type": "console.model-metadata", + "properties": { + "model": { + "group": "tekton.dev", + "version": "v1beta1", + "kind": "TaskRun" + }, + "color": "#38812f", + "label": "%plugin__pipelines-console-plugin~TaskRun%", + "labelPlural": "%plugin__pipelines-console-plugin~TaskRuns%", + "abbr": "TR" + } + }, + { + "type": "console.model-metadata", + "properties": { + "model": { + "group": "tekton.dev", + "version": "v1", + "kind": "TaskRun" + }, + "color": "#38812f", + "label": "%plugin__pipelines-console-plugin~TaskRun%", + "labelPlural": "%plugin__pipelines-console-plugin~TaskRuns%", + "abbr": "TR" + } + }, + { + "type": "console.model-metadata", + "properties": { + "model": { + "group": "triggers.tekton.dev", + "version": "v1beta1", + "kind": "TriggerBinding" + }, + "color": "#38812f", + "label": "%plugin__pipelines-console-plugin~TriggerBinding%", + "labelPlural": "%plugin__pipelines-console-plugin~TriggerBindings%", + "abbr": "TB", + "badge": "tech" + } + }, + { + "type": "console.model-metadata", + "properties": { + "model": { + "group": "triggers.tekton.dev", + "version": "v1beta1", + "kind": "ClusterTriggerBinding" + }, + "color": "#38812f", + "label": "%plugin__pipelines-console-plugin~ClusterTriggerBinding%", + "labelPlural": "%plugin__pipelines-console-plugin~ClusterTriggerBindings%", + "abbr": "CTB", + "badge": "tech" + } + }, + { + "type": "console.model-metadata", + "properties": { + "model": { + "group": "triggers.tekton.dev", + "version": "v1beta1", + "kind": "TriggerTemplate" + }, + "color": "#38812f", + "label": "%plugin__pipelines-console-plugin~TriggerTemplate%", + "labelPlural": "%plugin__pipelines-console-plugin~TriggerTemplates%", + "abbr": "TT", + "badge": "tech" + } + }, + { + "type": "console.model-metadata", + "properties": { + "model": { + "group": "triggers.tekton.dev", + "version": "v1beta1", + "kind": "EventListener" + }, + "color": "#38812f", + "label": "%plugin__pipelines-console-plugin~EventListener%", + "labelPlural": "%plugin__pipelines-console-plugin~EventListeners%", + "abbr": "EL", + "badge": "tech" + } + }, + { + "type": "console.model-metadata", + "properties": { + "model": { + "group": "pipelinesascode.tekton.dev", + "version": "v1alpha1", + "kind": "Repository" + }, + "color": "#38812f", + "label": "%plugin__pipelines-console-plugin~Repository%", + "labelPlural": "%plugin__pipelines-console-plugin~Repositories%", + "abbr": "R", + "badge": "dev" } }, + { + "type": "console.model-metadata", + "properties": { + "model": { + "group": "operator.tekton.dev", + "version": "v1alpha1", + "kind": "TektonConfig" + }, + "color": "#38812f", + "label": "%plugin__pipelines-console-plugin~TektonConfig%", + "labelPlural": "%plugin__pipelines-console-plugin~TektonConfigs%", + "abbr": "TC" + } + }, + { + "type": "console.model-metadata", + "properties": { + "model": { + "group": "operator.tekton.dev", + "version": "v1alpha1", + "kind": "TektonHub" + }, + "color": "#38812f", + "label": "%plugin__pipelines-console-plugin~TektonHub%", + "labelPlural": "%plugin__pipelines-console-plugin~TektonHubs%", + "abbr": "TH" + } + }, { "type": "console.context-provider", "properties": { @@ -920,6 +1060,23 @@ "required": ["HIDE_STATIC_PIPELINE_PLUGIN_TASKRUN_DETAILS"] } }, + { + "type": "console.navigation/section", + "properties": { + "perspective": "admin", + "id": "pipelines", + "name": "%plugin__pipelines-console-plugin~Pipelines%", + "insertAfter": "builds", + "insertBefore": "servicecatalog", + "dataAttributes": { + "data-quickstart-id": "qs-nav-pipelines", + "data-test": "nav-pipelines" + } + }, + "flags": { + "required": ["OPENSHIFT_PIPELINE"] + } + }, { "type": "console.navigation/href", "properties": { diff --git a/upstream/integration-tests/cypress/features/pipelines/create-from-add-options.feature b/upstream/integration-tests/cypress/features/pipelines/create-from-add-options.feature index e5f82e44..0f1e7ccb 100644 --- a/upstream/integration-tests/cypress/features/pipelines/create-from-add-options.feature +++ b/upstream/integration-tests/cypress/features/pipelines/create-from-add-options.feature @@ -7,7 +7,7 @@ Feature: Create Pipeline from Add Options And user is at Add page - @smoke + @smoke @broken-test Scenario Outline: Create a pipeline from git workload with resource type "": P-01-TC02 Given user is at Import from Git form When user enters Git Repo URL as "" @@ -24,7 +24,7 @@ Feature: Create Pipeline from Add Options | https://github.com/sclorg/nodejs-ex.git | nodejs-fc | Deployment Config | - @regression @knative + @regression @knative @broken-test Scenario Outline: Create a pipeline from git workload with knative resource type: P-01-TC03 Given user has installed OpenShift Serverless Operator And user is at developer perspective @@ -45,7 +45,7 @@ Feature: Create Pipeline from Add Options # https://bugzilla.redhat.com/show_bug.cgi?id=2061302 - @smoke @manual + @smoke @manual @broken-test Scenario Outline: Pipeline details display in topology page: P-01-TC04 Given user created workload "" from add page with pipeline And user is at the Topology page @@ -73,7 +73,7 @@ Feature: Create Pipeline from Add Options | nodejs-g | - @regression + @regression @broken-test Scenario Outline: Create a workload with pipeline from Docker file: P-01-TC06 Given user is on Import from Git form When user enters Git Repo URL as "" @@ -91,7 +91,7 @@ Feature: Create Pipeline from Add Options | https://github.com/openshift/pipelines-vote-api | docker-pipeline | Dockerfile | - @regression + @regression @broken-test Scenario Outline: Create a pipeline with s2i builder images: P-01-TC07 Given user is at Developer Catalog form with builder images When user searches builder image "node" in developer catalog @@ -155,7 +155,7 @@ Feature: Create Pipeline from Add Options | https://github.com/sclorg/nginx-ex.git | Nginx | There are no pipeline templates available for Nginx and Deployment combination. | - @regression + @regression @broken-test Scenario Outline: Pipeline dropdown in add from git : P-01-TC11 Given user is at Import from Git form When user enters Git Repo url in builder image as "" @@ -173,7 +173,7 @@ Feature: Create Pipeline from Add Options | s2i-python | https://github.com/sclorg/django-ex.git | django-ex-1 | Deployment Config | - @regression @manual + @regression @manual @broken-test Scenario Outline: Pick a pipeline from git : P-01-TC12 Given user has created a custom pipeline from yaml "" in namespace "openshift" And user is at Import from Git form diff --git a/upstream/integration-tests/cypress/features/pipelines/create-from-builder-page.feature b/upstream/integration-tests/cypress/features/pipelines/create-from-builder-page.feature index dc3113de..a53fc756 100644 --- a/upstream/integration-tests/cypress/features/pipelines/create-from-builder-page.feature +++ b/upstream/integration-tests/cypress/features/pipelines/create-from-builder-page.feature @@ -24,7 +24,7 @@ Feature: Create the pipeline from builder page And Create button is in disabled state - @regression + @regression @broken-test Scenario Outline: Create a pipeline with series tasks: P-02-TC03 Given user is at Pipeline Builder page When user enters pipeline name as "" @@ -40,7 +40,7 @@ Feature: Create the pipeline from builder page | pipe-one | kn | openshift-client | - @regression + @regression @broken-test Scenario Outline: Create a pipeline with parallel tasks: P-02-TC04 Given user is at Pipeline Builder page When user enters pipeline name as "" @@ -105,7 +105,7 @@ Feature: Create the pipeline from builder page Then user will be redirected to Pipeline Details page with header name "pipeline-params" - @regression + @regression @broken-test Scenario: Deleting added task with delete icon in pipeline builder page: P-02-TC08 Given user is at Pipeline Builder page When user enters pipeline name as "pipeline-delete-task" @@ -118,7 +118,7 @@ Feature: Create the pipeline from builder page Then user can see the task in series gets removed - @regression + @regression @broken-test Scenario Outline: Create a pipeline with TektonHub task not present in cluster from pipeline builder page: P-02-TC09 Given user is at Pipeline Builder page When user enters pipeline name as "" @@ -133,7 +133,7 @@ Feature: Create the pipeline from builder page | ptask-1 | kn | - @regression + @regression @broken-test Scenario: Upgrade tasks that are already installed on the cluster in pipeline builder page: P-02-TC10 Given user is at Pipeline Builder page When user enters pipeline name as "pipeline-client" @@ -154,7 +154,7 @@ Feature: Create the pipeline from builder page Then user will be redirected to Pipeline Details page with header name "new-pipeline" - @regression + @regression @broken-test Scenario: Create pipeline with Workspaces: P-02-TC12 Given user is at Pipeline Builder page When user enters pipeline name as "pipeline-workspace" @@ -173,7 +173,7 @@ Feature: Create the pipeline from builder page And user will see workspace mentioned as "git" in the Workspaces section of Pipeline Details page - @regression + @regression @broken-test Scenario: Create pipeline with optional Workspaces: P-02-TC13 Given user is at Pipeline Builder page When user enters pipeline name as "pipe-opt-workspace" @@ -209,7 +209,7 @@ Feature: Create the pipeline from builder page And user sees "Add finally task" option below "git-clone" task - @regression + @regression @broken-test Scenario: Create a pipeline with finally task node: P-02-TC15 Given user is at Pipeline Builder page When user enters pipeline name as "pipeline-finally" @@ -257,7 +257,7 @@ Feature: Create the pipeline from builder page And user will see tooltip saying "When expression" while scrolling over diamond structure before conditional task - @regression + @regression @broken-test Scenario: Code assistance for referencing params in the Pipeline Builder: P-02-TC18 Given user is at Pipeline Builder page When user clicks Add task button under Tasks section diff --git a/upstream/integration-tests/cypress/features/pipelines/data-source-filter.feature b/upstream/integration-tests/cypress/features/pipelines/data-source-filter.feature index ab101b73..ad507a06 100644 --- a/upstream/integration-tests/cypress/features/pipelines/data-source-filter.feature +++ b/upstream/integration-tests/cypress/features/pipelines/data-source-filter.feature @@ -14,7 +14,7 @@ Feature: Data source filter # value: 'ghcr.io/openshift-pipelines/console-plugin:main' Given user has created or selected namespace "aut-pipelines" - @regression + @regression @broken-test Scenario: Data source filter in PipelineRun list page: DS-01-TC01 Given user creates PipelineRun and TaskRun resources using YAML editor from 'cypress/testData/pipeline-with-pipelinerun-tasrun.yaml' When user navigates to PipelineRun list page @@ -22,7 +22,7 @@ Feature: Data source filter Then user is able to see Data Source filter group And user is able to see count in Cluster data - @regression + @regression @broken-test Scenario: Data source filter in PipelineRun list in Pipelines details page: DS-01-TC02 When user navigates to Pipelines list page And user selects pipeline "hello-goodbye" @@ -31,14 +31,14 @@ Feature: Data source filter Then user is able to see Data Source filter group And user is able to see count in Cluster data - @regression + @regression @broken-test Scenario: Data source filter in TaskRun list page: DS-01-TC03 Given user navigates to TaskRun list page When user clicks the filter dropdown Then user is able to see Data Source filter group And user is able to see count in Cluster data - @regression + @regression @broken-test Scenario: Data source filter in TaskRun list in PipelineRuns details page: DS-01-TC04 When user navigates to Pipelines list page And user selects PipelineRun "hello-goodbye-run" @@ -47,7 +47,7 @@ Feature: Data source filter Then user is able to see Data Source filter group And user is able to see count in Cluster data - @regression + @regression @broken-test Scenario: When PipelineRun is archived: DS-01-TC05 When user navigates to PipelineRun list page And user deletes a PipelineRun @@ -61,7 +61,7 @@ Feature: Data source filter And user selects Archived data in Data Source filter group Then user is able to see the list of Archived data - @regression + @regression @broken-test Scenario: Data source filter in PipelineRun list in Repository details page: DS-01-TC07 Given user created PAC repository and pipelinerun using "" And user is at repositories page diff --git a/upstream/integration-tests/cypress/features/pipelines/pipeline-metrics.feature b/upstream/integration-tests/cypress/features/pipelines/pipeline-metrics.feature index 788bbca4..412d5ccb 100644 --- a/upstream/integration-tests/cypress/features/pipelines/pipeline-metrics.feature +++ b/upstream/integration-tests/cypress/features/pipelines/pipeline-metrics.feature @@ -16,7 +16,7 @@ Feature: Pipeline metrics Then user can see "0/0" in PipelineRun status - @smoke + @smoke @broken-test Scenario: Graphs in metrics tab: P-04-TC02 Given pipeline run is displayed for "pipeline-metrics-one" with resource When user clicks on pipeline "pipeline-metrics-one" diff --git a/upstream/locales/en/plugin__pipelines-console-plugin.json b/upstream/locales/en/plugin__pipelines-console-plugin.json index 42e706d9..cfb90e11 100644 --- a/upstream/locales/en/plugin__pipelines-console-plugin.json +++ b/upstream/locales/en/plugin__pipelines-console-plugin.json @@ -92,6 +92,7 @@ "Cancelling": "Cancelling", "Cannot be longer than {{characterCount}} characters.": "Cannot be longer than {{characterCount}} characters.", "Categories": "Categories", + "Checking authorization...": "Checking authorization...", "Checks: Read & Write": "Checks: Read & Write", "Click": "Click", "Click {{submit}} to save changes or {{reset}} to cancel changes.": "Click {{submit}} to save changes or {{reset}} to cancel changes.", @@ -193,7 +194,13 @@ "Events triggering the webhook: ": "Events triggering the webhook: ", "Expand": "Expand", "Failed": "Failed", + "Failed to load average duration data": "Failed to load average duration data", + "Failed to load duration data": "Failed to load duration data", + "Failed to load pipeline run status data": "Failed to load pipeline run status data", + "Failed to load pipeline runs list": "Failed to load pipeline runs list", + "Failed to load pipeline runs number data": "Failed to load pipeline runs number data", "Failed to load Tasks. {{error}}": "Failed to load Tasks. {{error}}", + "Failed to load total runs data": "Failed to load total runs data", "Failure - check logs for details.": "Failure - check logs for details.", "Failure on task {{taskName}} - check logs for details.": "Failure on task {{taskName}} - check logs for details.", "File contains non-printable characters. Preview is not available.": "File contains non-printable characters. Preview is not available.", @@ -220,6 +227,7 @@ "GitHub application name": "GitHub application name", "Go to Admin Approvals tab": "Go to Admin Approvals tab", "Go to Approvals tab": "Go to Approvals tab", + "Group": "Group", "Hide credential options": "Hide credential options", "Hide variables": "Hide variables", "Hide VolumeClaimTemplate options": "Hide VolumeClaimTemplate options", @@ -261,7 +269,7 @@ "Last run duration": "Last run duration", "Last run status": "Last run status", "Last run time": "Last run time", - "Last weeks": "Last weeks", + "Last week": "Last week", "Last year": "Last year", "Learn more": "Learn more", "less than a sec": "less than a sec", @@ -283,6 +291,7 @@ "Missing resources": "Missing resources", "Missing workspaces": "Missing workspaces", "More info": "More info", + "Multicluster Pipeline Run": "Multicluster Pipeline Run", "Must define at least one task.": "Must define at least one task.", "Name": "Name", "Name must consist of lower-case letters, numbers and hyphens. It must start with a letter and end with a letter or number.": "Name must consist of lower-case letters, numbers and hyphens. It must start with a letter and end with a letter or number.", @@ -374,6 +383,7 @@ "PipelineRun failed to start": "PipelineRun failed to start", "PipelineRun has been {{state}}": "PipelineRun has been {{state}}", "PipelineRun has timed out": "PipelineRun has timed out", + "PipelineRun is waiting to be admitted to a worker cluster": "PipelineRun is waiting to be admitted to a worker cluster", "PipelineRun name": "PipelineRun name", "PipelineRun not started yet": "PipelineRun not started yet", "PipelineRun status": "PipelineRun status", @@ -552,6 +562,7 @@ "The base server url (e.g. https://quay.io/)": "The base server url (e.g. https://quay.io/)", "The following secrets are available for all pipelines in this namespace to authenticate to the specified Git server or Image registry:": "The following secrets are available for all pipelines in this namespace to authenticate to the specified Git server or Image registry:", "The following variables can be used in the Parameters or when created new Resources.": "The following variables can be used in the Parameters or when created new Resources.", + "The multi-cluster connection is unavailable. Logs and status may be delayed until connection is restored.": "The multi-cluster connection is unavailable. Logs and status may be delayed until connection is restored.", "The secret is required to set the Build status and to attach the webhook to the Git repository.": "The secret is required to set the Build status and to attach the webhook to the Git repository.", "There was an unknown error": "There was an unknown error", "This action will delete resource from k8s but still the resource can be fetched from Tekton Results": "This action will delete resource from k8s but still the resource can be fetched from Tekton Results", @@ -577,7 +588,13 @@ "Try it": "Try it", "Unable to detect Event listener URL": "Unable to detect Event listener URL", "Unable to find repository": "Unable to find repository", + "Unable to load average duration": "Unable to load average duration", + "Unable to load duration": "Unable to load duration", "Unable to load Pipeline": "Unable to load Pipeline", + "Unable to load pipeline runs": "Unable to load pipeline runs", + "Unable to load pipeline runs list": "Unable to load pipeline runs list", + "Unable to load PipelineRun status": "Unable to load PipelineRun status", + "Unable to load total runs": "Unable to load total runs", "Unable to locate any tasks.": "Unable to locate any tasks.", "Unique name of the new secret.": "Unique name of the new secret.", "Unknown": "Unknown", @@ -594,6 +611,7 @@ "Use your Git Personal token. Create a token with repo, public_repo & admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Use your Git Personal token. Create a token with repo, public_repo & admin:repo_hook scopes and give your token an expiration, i.e 30d.", "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.", "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.": "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.", + "User": "User", "User not an approver": "User not an approver", "Username": "Username", "Value": "Value", diff --git a/upstream/locales/es/plugin__pipelines-console-plugin.json b/upstream/locales/es/plugin__pipelines-console-plugin.json index 73fcfecd..88c24794 100644 --- a/upstream/locales/es/plugin__pipelines-console-plugin.json +++ b/upstream/locales/es/plugin__pipelines-console-plugin.json @@ -1,5 +1,5 @@ { - "{{assignees}} Assigned": "Asignado el: {{assignees}}", + "{{assignees}} Assigned": "{{assignees}} Asignado", "{{count}} annotation": "{{count}} anotación", "{{count}} annotation_plural": "{{count}} anotación", "{{count}} day": "día", @@ -25,7 +25,7 @@ "<0>{{eventCount}} times": "<0>{{eventCount}} veces", "<0>In the <1>.tekton directory, create a new file called<3>push.yaml and add the following code:": "<0>En el directorio <1>.tekton, cree un nuevo archivo llamado <3>push.yaml y agregue el siguiente código:", "<0>In your repository, create the <2>.tekton directory to store you pipeline.": "<0>En su repositorio, cree el directorio <2>.tekton para almacenar su canalización.", - "<0>Use the <2>link to install the newly created GitHub application to your repositories in your organization/account": "<0>Utilice el <2>enlace para instalar la aplicación GitHub recién creada en sus repositorios en su organización/cuenta", + "<0>Use the <2>link to install the newly created GitHub application to your repositories in your organization/account": "<0>Utilice el <2>enlace para instalar la aplicación GitHub recién creada en sus repositorios en su organización o cuenta", "A GitHub App is already set up for this cluster. To use it, install the GitHub app on your personal account or GitHub organization.": "Ya hay una aplicación GitHub configurada para este clúster. Para usarla, instálela en su cuenta personal u organización de GitHub.", "Access Denied": "Acceso denegado", "Access Mode": "Modo de acceso", @@ -74,15 +74,15 @@ "Approvers": "Aprobadores", "Archived": "Archivado", "Archived in Tekton results": "Archivado en resultados de Tekton", - "Are you sure you want to approve": "¿Seguro desea cancelar?", + "Are you sure you want to approve": "¿Estás seguro que deseas aprobar?", "Are you sure you want to remove {{taskName}}?": "¿Está seguro de que desea quitar {{taskName}}?", - "Are you sure you want to remove <1>{{selection}} from <4>{{pipelineName}}?": "¿Está seguro de que desea quitar <1>{{selection}} de <4>?", + "Are you sure you want to remove <1>{{selection}} from <4>{{pipelineName}}?": "¿Está seguro de que desea eliminar <1>{{selection}} de <4>{{pipelineName}}?", "Authentication type": "Tipo de autenticación", "Average duration": "Duración media", "Basic Authentication": "Autenticación básica", "Bitbucket username": "Nombre de usuario de Bitbucket", "Block": "Bloquear", - "Branch": "Sucursal/Etiqueta", + "Branch": "Rama", "Branch/Tag": "Sucursal/Etiqueta", "Browse for openshift pipeline tasks available in the cluster.": "Busque tareas de canalización de OpenShift disponibles en el clúster.", "Browse tekton hub tasks.": "Explorar las tareas de Tekton Hub.", @@ -92,6 +92,7 @@ "Cancelling": "Cancelando", "Cannot be longer than {{characterCount}} characters.": "No puede tener más de {{characterCount}} caracteres.", "Categories": "Categorías", + "Checking authorization...": "Comprobando autorización...", "Checks: Read & Write": "Verificaciones: lectura y escritura", "Click": "Hacer clic", "Click {{submit}} to save changes or {{reset}} to cancel changes.": "Haga clic en {{submit}} para guardar los cambios o en {{reset}} para cancelar los cambios.", @@ -140,9 +141,9 @@ "Data source": "Fuente de datos", "Decrement": "Reducción", "Default value": "Valor predeterminado", - "Delete {{resourceKind}}": "Eliminar {{resourceKind}} ", - "Delete Pipeline": "Crear canalización", - "Delete PipelineRun": "PipelineRun", + "Delete {{resourceKind}}": "Eliminar {{resourceKind}}", + "Delete Pipeline": "Eliminar canalización", + "Delete PipelineRun": "Eliminar PipelineRun", "Delete task": "Eliminar tarea", "Description": "Descripción", "Designate provider to be authenticated.": "Designe el proveedor que será autenticado.", @@ -193,7 +194,13 @@ "Events triggering the webhook: ": "Eventos que desencadenan el webhook: ", "Expand": "Ampliar", "Failed": "Fallido", + "Failed to load average duration data": "No se pudieron cargar los datos de duración promedio", + "Failed to load duration data": "No se pudieron cargar los datos de duración", + "Failed to load pipeline run status data": "No se pudieron cargar los datos del estado de ejecución de la canalización", + "Failed to load pipeline runs list": "No se pudo cargar la lista de ejecuciones de tuberías", + "Failed to load pipeline runs number data": "No se pudieron cargar los datos del número de ejecuciones de la tubería", "Failed to load Tasks. {{error}}": "No se pudieron cargar las tareas. {{error}}", + "Failed to load total runs data": "No se pudieron cargar los datos de ejecuciones totales", "Failure - check logs for details.": "Error: consulte los registros para obtener más detalles.", "Failure on task {{taskName}} - check logs for details.": "Error en la tarea {{taskName}}: consulte los registros para obtener más detalles.", "File contains non-printable characters. Preview is not available.": "El archivo contiene caracteres no imprimibles. La vista previa no está disponible.", @@ -220,6 +227,7 @@ "GitHub application name": "Nombre de la aplicación GitHub", "Go to Admin Approvals tab": "Vaya a la pestaña Aprobaciones de administrador", "Go to Approvals tab": "Vaya a la pestaña Aprobaciones", + "Group": "Grupo", "Hide credential options": "Ocultar opciones de credenciales", "Hide variables": "Ocultar variables", "Hide VolumeClaimTemplate options": "Ocultar opciones de VolumeClaimTemplate", @@ -254,14 +262,14 @@ "Items": "Elementos", "Just now": "En este momento", "Labels": "Etiquetas", - "Last day": "Último día", + "Last day": "Día último", "Last month": "Mes pasado", "Last quarter": "Último trimestre", "Last run": "Última ejecución", "Last run duration": "Duración de la última ejecución", "Last run status": "Estado de la última ejecución", "Last run time": "Hora de la última ejecución", - "Last weeks": "Última semana", + "Last week": "La semana pasada", "Last year": "El año pasado", "Learn more": "Más información", "less than a sec": "menos de un segundo", @@ -283,6 +291,7 @@ "Missing resources": "Recursos faltantes", "Missing workspaces": "Espacios de trabajo faltantes", "More info": "Más información", + "Multicluster Pipeline Run": "Ejecución de canalización multiclúster", "Must define at least one task.": "Debe definir al menos una tarea.", "Name": "Nombre", "Name must consist of lower-case letters, numbers and hyphens. It must start with a letter and end with a letter or number.": "El nombre debe constar de letras minúsculas, números y guiones. Debe comenzar con una letra y terminar con una letra o número.", @@ -293,7 +302,7 @@ "No {{resourceName}} results available due to failure": "No hay resultados de {{resourceName}} disponibles debido a un error", "No {{resourceType}} resource": "Sin recurso {{resourceType}}", "No ApprovalTasks found": "No se encontraron tareas de aprobación", - "No approvers": "Aprobadores", + "No approvers": "Sin aprobadores", "No default StorageClass": "Sin StorageClass predeterminada", "No display name": "Sin nombre para mostrar", "No events": "No hay eventos", @@ -315,7 +324,7 @@ "No secrets found": "No se encontraron secretos", "No selector": "Sin selector", "No task runs found": "No se encontraron ejecuciones de tareas", - "No TaskRuns found": "No se encontraron ejecuciones de tareas", + "No TaskRuns found": "No se encontraron TaskRuns", "No tasks": "Sin tareas", "No Tasks found": "No se encontraron tareas", "No when expressions are associated with this task.": "No hay expresiones when asociadas con esta tarea.", @@ -330,7 +339,7 @@ "Not found": "No encontrado", "Number of {{sizeUnit}}": "Número de {{sizeUnit}}", "Number of PipelineRuns": "Número de PipelineRuns", - "OK": "DE ACUERDO", + "OK": "De acuerdo", "Older events are not stored.": "Los eventos más antiguos no se almacenan.", "Only showing resources for this type ({{resourceType}}).": "Solo se muestran recursos para este tipo ({{resourceType}}).", "Only update this task's version if you'd like to replace all of its references in the namespace.": "Actualice la versión de esta tarea solo si desea reemplazar todas sus referencias en el espacio de nombres.", @@ -354,8 +363,8 @@ "Password or token for Git authentication. Required if a ca.crt or .gitconfig file is not specified.": "Contraseña o token para autenticación Git. Obligatorio si no se especifica un archivo ca.crt o .gitconfig.", "Pause event streaming": "Pausar la transmisión de eventos", "Pending": "Pendiente", - "Per Pipeline": "Canalización ", - "Per Repository": "Repositorio Git", + "Per Pipeline": "Por tubería", + "Per Repository": "Por repositorio", "Permission denied": "Permiso denegado", "Permissions to the mounted drive": "Permisos para la unidad montada", "Permissions to the mounted drive.": "Permisos para la unidad montada.", @@ -374,11 +383,12 @@ "PipelineRun failed to start": "Error al iniciar PipelineRun", "PipelineRun has been {{state}}": "PipelineRun ha sido {{state}}", "PipelineRun has timed out": "PipelineRun ha expirado", + "PipelineRun is waiting to be admitted to a worker cluster": "PipelineRun está esperando ser admitido en un clúster de trabajadores", "PipelineRun name": "Nombre de PipelineRun", "PipelineRun not started yet": "PipelineRun aún no iniciada", - "PipelineRun status": "Nombre de PipelineRun", + "PipelineRun status": "Estado de PipelineRun", "PipelineRun Status shows the % of PipelineRuns for various status like \"Succeeded\", \"Failed\", \"Running\", \"Cancelled\" and \"Others\". Here, Others includes statuses like \"Started\", \"CreateRunFailed\", \"PipelineRunTimeout\"": "El estado de PipelineRun muestra el porcentaje de PipelineRuns para varios estados, como \"Correcto\", \"Fallido\", \"En ejecución\", \"Cancelado\" y \"Otros\". Aquí, \"Otros\" incluye estados como \"Iniciado\", \"CreateRunFailed\" y \"PipelineRunTimeout\".", - "PipelineRun status shows the % of PipelineRuns for various statuses like \"Succeeded\", \"Failed\" and \"Cancelled\".": "El estado de PipelineRun muestra el porcentaje de PipelineRuns para varios estados como \"Exitoso\", \"Fallido\" y \"Cancelado\".", + "PipelineRun status shows the % of PipelineRuns for various statuses like \"Succeeded\", \"Failed\" and \"Cancelled\".": "El estado de PipelineRun muestra el porcentaje de PipelineRuns para varios estados como \"Exitoso\", \"Error\" y \"Cancelado\".", "PipelineRuns": "PipelineRuns", "Pipelines": "Canalizaciones", "Pipelines page": "Página de canalizaciones", @@ -446,7 +456,7 @@ "run{{plural}}.": "Ejecutar", "Running": "En ejecución", "Runs in pipelines": "Corre por tuberías", - "Runs in repositories": "Repositorios de Helm", + "Runs in repositories": "Se ejecuta en repositorios", "Samples": "Muestras", "Save": "Guardar", "SBOM": "SBOM", @@ -490,10 +500,10 @@ "Show variables": "Mostrar variables", "Show VolumeClaimTemplate options": "Mostrar opciones de VolumeClaimTemplate", "Show YAML": "Mostrar YAML", - "Showing {{count}} event": "Mostrando {{count}} evento", - "Showing {{count}} event_plural": "Mostrando {{count}} evento", - "Showing most recent {{count}} event": "Mostrando {{count}} evento más reciente", - "Showing most recent {{count}} event_plural": "Mostrando {{count}} evento más reciente", + "Showing {{count}} event": "Demostración{{count}} evento", + "Showing {{count}} event_plural": "Demostración{{count}} evento", + "Showing most recent {{count}} event": "Mostrando lo más reciente{{count}} evento", + "Showing most recent {{count}} event_plural": "Mostrando lo más reciente{{count}} evento", "Signed": "Firmado", "Single user (RWO)": "Usuario único (RWO)", "Size": "Tamaño", @@ -529,14 +539,14 @@ "Tag": "Etiqueta", "Tags": "Etiquetas", "Task": "Tarea", - "Task approval required": "Aprobación requerida", + "Task approval required": "Se requiere aprobación de la tarea", "Task details": "Detalles de la tarea", "Task does not exist": "La tarea no existe", "Task status": "Estado de la tarea", "Task version will be updated across all instances": "La versión de la tarea se actualizará en todas las instancias.", "TaskRun": "TaskRun", "TaskRun details": "Detalles de TaskRun", - "TaskRun name": "Registro de TaskRun", + "TaskRun name": "Nombre de TaskRun", "TaskRuns": "TaskRuns", "Tasks": "Tareas", "TaskSpec or TaskRef must be provided.": "Se debe proporcionar TaskSpec o TaskRef.", @@ -552,6 +562,7 @@ "The base server url (e.g. https://quay.io/)": "La URL del servidor base (por ejemplo, https://quay.io/)", "The following secrets are available for all pipelines in this namespace to authenticate to the specified Git server or Image registry:": "Los siguientes secretos están disponibles para que todas las canalizaciones en este espacio de nombres se autentiquen en el servidor Git o registro de imágenes especificado:", "The following variables can be used in the Parameters or when created new Resources.": "Las siguientes variables se pueden utilizar en los Parámetros o cuando se crean nuevos Recursos.", + "The multi-cluster connection is unavailable. Logs and status may be delayed until connection is restored.": "La conexión multiclúster no está disponible. Los registros y el estado podrían retrasarse hasta que se restablezca la conexión.", "The secret is required to set the Build status and to attach the webhook to the Git repository.": "El secreto es necesario para establecer el estado de compilación y adjuntar el webhook al repositorio Git.", "There was an unknown error": "Se produjo un error desconocido", "This action will delete resource from k8s but still the resource can be fetched from Tekton Results": "Esta acción eliminará el recurso de k8s pero aún así se podrá recuperar el recurso de Resultados de Tekton", @@ -562,12 +573,12 @@ "This will create a PersistentVolumeClaim.": "Esto creará un PersistentVolumeClaim.", "Time Range": "Intervalo de tiempo", "Timed out": "Caducado", - "Timeout for the pipeline": "Tiempo de espera para la canalización", + "Timeout for the pipeline": "Tiempo de espera para la tubería", "Timeout must be greater than or equal to 0.": "El tiempo de espera debe ser mayor o igual a 0.", "Timeouts": "Tiempos de espera", "Total duration": "Duración total", - "Total Pipelineruns": "PipelineRuns", - "Total runs": "Riesgo total", + "Total Pipelineruns": "Ejecuciones totales de tuberías", + "Total runs": "Total de carreras", "TriggerBinding": "TriggerBinding", "TriggerBindings": "TriggerBindings", "Triggered by": "Desencadenado por", @@ -577,7 +588,13 @@ "Try it": "Inténtelo", "Unable to detect Event listener URL": "No se puede detectar la URL del agente de escucha de eventos", "Unable to find repository": "No se puede encontrar el repositorio", + "Unable to load average duration": "No se puede cargar la duración promedio", + "Unable to load duration": "No se puede cargar la duración", "Unable to load Pipeline": "No se puede cargar la canalización", + "Unable to load pipeline runs": "No se pueden cargar ejecuciones de tuberías", + "Unable to load pipeline runs list": "No se puede cargar la lista de ejecuciones de tuberías", + "Unable to load PipelineRun status": "No se puede cargar el estado de PipelineRun", + "Unable to load total runs": "No se pueden cargar las ejecuciones totales", "Unable to locate any tasks.": "No se puede localizar ninguna tarea.", "Unique name of the new secret.": "Nombre único del nuevo secreto.", "Unknown": "Desconocido", @@ -587,11 +604,12 @@ "URL": "URL", "Use <1>{appLink} link to install the GitHub Application to your repositories in your organisation/account.": "Utilice el enlace <1>{appLink} para instalar la aplicación GitHub en los repositorios de su organización o cuenta.", "Use GitHub App": "Utilizar la aplicación GitHub", - "Use this <2>link to install the GitHub Application to your repositories in your organization/account.": "Utilice este <2>enlace para instalar la aplicación GitHub en sus repositorios en su organización/cuenta.", + "Use this <2>link to install the GitHub Application to your repositories in your organization/account.": "Utilice este <2>enlace para instalar la aplicación GitHub en sus repositorios en su organización o cuenta.", "Use this format when you reference variables in this form: ": "Utilice este formato cuando haga referencia a variables en este formulario: ", "Use this format when you reference variables in this form: <2>$(": "Utilice este formato cuando haga referencia a variables en este formulario: <2>$(", - "Use your Bitbucket App password. Use this <2>link to create a token with <5>Read and Write scopes in <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks.": "Utilice la contraseña de su aplicación Bitbucket. Utilice este <2>enlace para crear un token con los alcances <5>Lectura y escritura en <8>Cuenta, membresía del espacio de trabajo, proyectos, problemas, solicitudes de extracción y webhooks.", - "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.": "Utilice su token de acceso personal de Gitlab. Utilice este <2>enlace para crear un token con el alcance <5>API. Seleccione el rol como <8>Mantenedor/Propietario. Dele a su token una fecha de vencimiento, es decir, 30 días.", + "Use your Bitbucket App password. Use this <2>link to create a token with <5>Read and Write scopes in <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks.": "Utilice la contraseña de su aplicación Bitbucket. Utilice este <2>enlace para crear un token con los alcances <5>Lectura y escritura en <8>Cuenta, membresía del espacio de trabajo, proyectos, problemas, solicitudes de extracción y webhooks.", + "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.": "Utilice su token de acceso personal de Gitlab. Utilice este <2>enlace para crear un token con el alcance <5>api. Seleccione el rol como <8>Mantenedor/Propietario.Asigne un vencimiento a su token, es decir, 30 días.", + "User": "Usuario", "User not an approver": "El usuario no es un aprobador", "Username": "Nombre de usuario", "Value": "Valor", @@ -635,5 +653,5 @@ "Zoom in": "Acercar", "Zoom out": "Alejar", "Use your Git Personal token. Create a token with repo, public_repo & admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Usa tu token personal de Git. Crea un token con repo, public_repo y admin:repo.", - "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Utilice su token personal de GitHub. Utilice este <2>enlace para crear un token <5>clásico con los alcances <7>repo y <10> admin:repo_hook y dele a su token un vencimiento, es decir, 30 días." -} + "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Usa tu token personal de GitHub. Usa esto<2> enlace Para crear un<5> clásico token con<7> repositorio &<10> administrador:repositorio" +} \ No newline at end of file diff --git a/upstream/locales/fr/plugin__pipelines-console-plugin.json b/upstream/locales/fr/plugin__pipelines-console-plugin.json index 11aef9e6..a9c945d7 100644 --- a/upstream/locales/fr/plugin__pipelines-console-plugin.json +++ b/upstream/locales/fr/plugin__pipelines-console-plugin.json @@ -1,5 +1,5 @@ { - "{{assignees}} Assigned": "Affecté le : {{assignees}}", + "{{assignees}} Assigned": "{{assignees}} Attribué", "{{count}} annotation": "{{count}} annotation", "{{count}} annotation_plural": "{{count}} annotation", "{{count}} day": "derniers jours", @@ -18,14 +18,14 @@ "{{min}}m": "{{min}} m", "{{resourceName}} results": "{{resourceName}} résultats", "{{sec}}s": "{{sec}} s", - "{{taskLabel}} details": "Détails de {{taskLabel}}", - "{{taskRunLabel}} details": "Détails de {{taskRunLabel}}", + "{{taskLabel}} details": "{{taskLabel}} détails", + "{{taskRunLabel}} details": "{{taskRunLabel}} détails", "{{version}} (latest)": "{{version}} (la plus récente)", "<0>{{eventCount}} times in the last <3>": "<0>{{eventCount}} fois dans la dernière <3>", "<0>{{eventCount}} times": "<0>{{eventCount}} fois", "<0>In the <1>.tekton directory, create a new file called<3>push.yaml and add the following code:": "<0>Dans le répertoire <1>.tekton, créez un fichier appelé <3>push.yaml et ajoutez le code suivant : ", "<0>In your repository, create the <2>.tekton directory to store you pipeline.": "<0>Dans votre dépôt, créez le répertoire <2>.tekton dans lequel stocker votre pipeline.", - "<0>Use the <2>link to install the newly created GitHub application to your repositories in your organization/account": "<0>Cliquez sur le <2>lien pour installer l’application GitHub nouvellement créée sur les dépôts de votre organisation/compte", + "<0>Use the <2>link to install the newly created GitHub application to your repositories in your organization/account": "<0>Utilisez le<2> lien pour installer l'application GitHub nouvellement créée dans vos référentiels dans votre organisation/compte", "A GitHub App is already set up for this cluster. To use it, install the GitHub app on your personal account or GitHub organization.": "Une application GitHub est déjà configurée pour ce cluster. Pour l’utiliser, installez l’application GitHub sur votre compte personnel ou organisation GitHub.", "Access Denied": "Accès refusé", "Access Mode": "Mode d’accès", @@ -56,7 +56,7 @@ "Adding this task may take a few moments.": "L’ajout de cette tâche peut prendre quelques instants.", "Advanced options": "Options avancées", "All": "Tous", - "An average of the time taken to run PipelineRuns. The trending shown is based on the time range selected. This metric does not show runs that are running or pending.": "Moyenne du temps d'exécution des PipelineRuns. La tendance affichée est basée sur la période sélectionnée. Cette mesure n'affiche pas les exécutions en cours ou en attente.", + "An average of the time taken to run PipelineRuns. The trending shown is based on the time range selected. This metric does not show runs that are running or pending.": "Durée moyenne d'exécution des pipelines. La tendance affichée est basée sur la plage horaire sélectionnée. Cette métrique n'affiche pas les exécutions en cours ou en attente.", "An error occurred": "Une erreur s’est produite", "An error occurred during event retrieval. Attempting to reconnect...": "Une erreur s’est produite lors de la récupération de l’événement. Tentative de reconnexion...", "An error occurred while retrieving the requested logs.": "Une erreur s’est produite lors de la récupération des journaux demandés.", @@ -74,15 +74,15 @@ "Approvers": "Approbateurs", "Archived": "Archivé", "Archived in Tekton results": "Archivé dans les résultats Tekton", - "Are you sure you want to approve": "Êtes-vous sûr de vouloir annuler ?", + "Are you sure you want to approve": "Êtes-vous sûr de vouloir approuver", "Are you sure you want to remove {{taskName}}?": "Voulez-vous vraiment supprimer {{taskName}} ?", - "Are you sure you want to remove <1>{{selection}} from <4>{{pipelineName}}?": "Voulez-vous vraiment supprimer <1>{{selection}} de <4> ?", + "Are you sure you want to remove <1>{{selection}} from <4>{{pipelineName}}?": "Voulez-vous vraiment supprimer <1>{{selection}} de <4>{{pipelineName}} ?", "Authentication type": "Type d’authentification", "Average duration": "Durée moyenne", "Basic Authentication": "Authentification de base", "Bitbucket username": "Nom d’utilisateur Bitbucket", "Block": "Bloc", - "Branch": "Branche/Balise", + "Branch": "Bifurquer", "Branch/Tag": "Branche/Balise", "Browse for openshift pipeline tasks available in the cluster.": "Recherchez les tâches de pipeline OpenShift disponibles dans le cluster.", "Browse tekton hub tasks.": "Parcourez les tâches du hub tekton.", @@ -92,6 +92,7 @@ "Cancelling": "Annulation", "Cannot be longer than {{characterCount}} characters.": "Ne peut pas contenir plus de {{characterCount}} caractères.", "Categories": "Catégories", + "Checking authorization...": "Vérification de l'autorisation...", "Checks: Read & Write": "Contrôles : lecture et écriture", "Click": "Cliquer", "Click {{submit}} to save changes or {{reset}} to cancel changes.": "Cliquez sur {{submit}} pour enregistrer les modifications ou sur {{reset}} pour les annuler.", @@ -137,12 +138,12 @@ "CustomRun": "Exécution personnalisée", "CustomRuns": "Exécutions personnalisées", "Data is incomplete. To see the full view, please enable ": "Les données sont incomplètes. Pour afficher la vue complète, veuillez activer ", - "Data source": "Source des données", + "Data source": "Source de données", "Decrement": "Décrémenter", "Default value": "Valeur par défaut", - "Delete {{resourceKind}}": "Supprimer {{resourceKind}} ", - "Delete Pipeline": "Créer un pipeline", - "Delete PipelineRun": "Exécution de pipeline", + "Delete {{resourceKind}}": "Supprimer {{resourceKind}}", + "Delete Pipeline": "Supprimer le pipeline", + "Delete PipelineRun": "Supprimer PipelineRun", "Delete task": "Supprimer la tâche", "Description": "Description", "Designate provider to be authenticated.": "Désignez le fournisseur à authentifier.", @@ -176,10 +177,10 @@ "Enter name of application": "Entrer le nom de l’application", "Error": "Erreur", "Error connecting to event stream": "Erreur de connexion au flux d’événements", - "Error connecting to event stream: { error }": "Erreur de connexion au flux d’événements : { error }", + "Error connecting to event stream: { error }": "Erreur de connexion au flux d’événements", "Error downloading logs.": "Erreur lors du téléchargement des journaux.", "Error loading - {{placeholder}}": "Erreur de chargement - {{placeholder}}", - "Error loading {{desc}}": "Erreur de chargement de {{desc}}", + "Error loading {{desc}}": "Erreur lors du chargement {{desc}}", "Error Loading {{label}}": "Erreur de chargement de {{label}}", "Error Loading {{label}}: {{message}}": "Erreur de chargement de {{label}} : {{message}}", "Error loading events": "Erreur lors du chargement des événements", @@ -193,7 +194,13 @@ "Events triggering the webhook: ": "Événements déclenchant le webhook : ", "Expand": "Développer", "Failed": "Ayant échoué", + "Failed to load average duration data": "Échec du chargement des données de durée moyenne", + "Failed to load duration data": "Échec du chargement des données de durée", + "Failed to load pipeline run status data": "Échec du chargement des données d'état d'exécution du pipeline", + "Failed to load pipeline runs list": "Échec du chargement de la liste des exécutions du pipeline", + "Failed to load pipeline runs number data": "Échec du chargement des données du nombre d'exécutions du pipeline", "Failed to load Tasks. {{error}}": "Échec du chargement des tâches. {{error}}", + "Failed to load total runs data": "Échec du chargement des données totales d'exécution", "Failure - check logs for details.": "Échec. Pour plus d’informations, consultez les journaux.", "Failure on task {{taskName}} - check logs for details.": "Échec lors de la tâche {{taskName}}. Pour plus d’informations, consultez les journaux.", "File contains non-printable characters. Preview is not available.": "Le fichier contient des caractères non imprimables. L’aperçu n’est pas disponible.", @@ -220,6 +227,7 @@ "GitHub application name": "Nom de l’application GitHub", "Go to Admin Approvals tab": "Accédez à l'onglet Approbations de l'administrateur", "Go to Approvals tab": "Accédez à l'onglet Approbations", + "Group": "Groupe", "Hide credential options": "Masquer les options des informations d’identification", "Hide variables": "Masquer les variables", "Hide VolumeClaimTemplate options": "Masquer les options du modèle de revendication du volume", @@ -254,14 +262,14 @@ "Items": "Éléments", "Just now": "À l’instant", "Labels": "Étiquettes", - "Last day": " dernier jour", + "Last day": "Dernier jour", "Last month": "Mois dernier", - "Last quarter": "Dernier trimestre", + "Last quarter": "dernier trimestre", "Last run": "Dernière exécution", "Last run duration": "Durée de la dernière exécution", "Last run status": "Statut de la dernière exécution", "Last run time": "Heure de la dernière exécution", - "Last weeks": " dernière semaine", + "Last week": "La semaine dernière", "Last year": "L'année dernière", "Learn more": "En savoir plus", "less than a sec": "moins d’une seconde", @@ -283,6 +291,7 @@ "Missing resources": "Ressources manquantes", "Missing workspaces": "Espaces de travail manquants", "More info": "Plus d’informations", + "Multicluster Pipeline Run": "Exécution du pipeline multicluster", "Must define at least one task.": "Doit définir au moins une tâche.", "Name": "Nom", "Name must consist of lower-case letters, numbers and hyphens. It must start with a letter and end with a letter or number.": "Le nom doit être composé de lettres minuscules, de chiffres et de tirets. Il doit commencer par une lettre et se terminer par une lettre ou un chiffre.", @@ -293,7 +302,7 @@ "No {{resourceName}} results available due to failure": "Aucun résultat {{resourceName}} disponible suite à un échec", "No {{resourceType}} resource": "Aucune ressource {{resourceType}}", "No ApprovalTasks found": "Aucune tâche d'approbation trouvée", - "No approvers": "Approbateurs", + "No approvers": "Aucun approbateur", "No default StorageClass": "Aucun objet StorageClass par défaut", "No display name": "Aucun nom complet", "No events": "Aucun événement", @@ -305,7 +314,7 @@ "No owner": "Aucun propriétaire", "No parameters are associated with this Pipeline.": "Aucun paramètre n’est associé à ce pipeline.", "No parameters are associated with this PipelineRun.": "Aucun paramètre n’est associé à cette exécution de pipeline.", - "No PipelineRuns found": "Aucun PipelineRuns trouvé", + "No PipelineRuns found": "Aucun PipelineRun trouvé", "No Pipelines found": "Aucun pipeline trouvé", "No Projects found": "Aucun projet trouvé", "No Properties found": "Aucune propriété trouvée", @@ -315,7 +324,7 @@ "No secrets found": "Aucun secret trouvé", "No selector": "Aucun sélecteur", "No task runs found": "Aucune exécution de tâche trouvée", - "No TaskRuns found": "Aucune exécution de tâche trouvée", + "No TaskRuns found": "Aucune TaskRun trouvée", "No tasks": "Aucune tâche", "No Tasks found": "Aucune tâche trouvée", "No when expressions are associated with this task.": "Aucune expression when n’est associée à cette tâche.", @@ -354,9 +363,9 @@ "Password or token for Git authentication. Required if a ca.crt or .gitconfig file is not specified.": "Mot de passe ou jeton pour l’authentification Git. Obligatoire si aucun fichier ca.crt ou .gitconfig n’est spécifié.", "Pause event streaming": "Mettre en pause le streaming d’événements", "Pending": "En attente", - "Per Pipeline": "Pipeline ", - "Per Repository": "Dépôt Git", - "Permission denied": "Permission refusée", + "Per Pipeline": "Par pipeline", + "Per Repository": "Par dépôt", + "Permission denied": "Autorisation refusée", "Permissions to the mounted drive": "Autorisations d’accès au lecteur monté", "Permissions to the mounted drive.": "Autorisations d’accès au lecteur monté.", "PersistentVolumeClaim": "PersistentVolumeClaim", @@ -374,18 +383,19 @@ "PipelineRun failed to start": "L’exécution de pipeline n’a pas pu démarrer", "PipelineRun has been {{state}}": "PipelineRun a été {{state}}", "PipelineRun has timed out": "PipelineRun a expiré", + "PipelineRun is waiting to be admitted to a worker cluster": "PipelineRun attend d'être admis dans un cluster de nœuds de calcul.", "PipelineRun name": "Nom de l’exécution du pipeline", "PipelineRun not started yet": "L’exécution de pipeline n’a pas encore démarré", - "PipelineRun status": "Nom de l’exécution du pipeline", - "PipelineRun Status shows the % of PipelineRuns for various status like \"Succeeded\", \"Failed\", \"Running\", \"Cancelled\" and \"Others\". Here, Others includes statuses like \"Started\", \"CreateRunFailed\", \"PipelineRunTimeout\"": "L'état d'exécution du pipeline affiche le pourcentage d'exécutions du pipeline pour différents statuts, tels que « Réussi », « Échec », « En cours d'exécution », « Annulé » et « Autres ». Ici, « Autres » inclut des statuts tels que « Démarré », « Échec de la création » et « Délai d'exécution du pipeline expiré ».", - "PipelineRun status shows the % of PipelineRuns for various statuses like \"Succeeded\", \"Failed\" and \"Cancelled\".": "L'état de PipelineRun affiche le % de PipelineRuns pour différents états tels que « Réussi », « Échec » et « Annulé ».", + "PipelineRun status": "État d'exécution du pipeline", + "PipelineRun Status shows the % of PipelineRuns for various status like \"Succeeded\", \"Failed\", \"Running\", \"Cancelled\" and \"Others\". Here, Others includes statuses like \"Started\", \"CreateRunFailed\", \"PipelineRunTimeout\"": "L'état d'exécution du pipeline affiche le pourcentage d'exécutions pour différents statuts tels que « Réussi », « Échec », « En cours », « Annulé » et « Autres ». La catégorie « Autres » inclut des statuts comme « Démarré », « Échec de la création d'exécution » et « Délai d'exécution du pipeline dépassé ».", + "PipelineRun status shows the % of PipelineRuns for various statuses like \"Succeeded\", \"Failed\" and \"Cancelled\".": "L'état PipelineRun affiche le pourcentage d'exécutions de pipelines pour différents statuts tels que « Réussi », « Échec » et « Annulé ».", "PipelineRuns": "Exécutions de pipeline", "Pipelines": "Pipelines", "Pipelines page": "Page Pipelines", "Plan: Readonly": "Plan : lecture seule", "Please <2>try again.": "Veuillez <2>réessayer.", "Please follow the instructions below to attach the webhook manually.": "Veuillez suivre les instructions ci-dessous pour attacher le webhook manuellement.", - "Please provide a reason for not approving": "Veuillez fournir une raison pour laquelle vous n'approuvez pas", + "Please provide a reason for not approving": "Veuillez indiquer la raison du refus.", "Pod": "Pod", "Pod selector": "Sélecteur de pod", "Pods": "Pods", @@ -438,21 +448,21 @@ "Reset": "Réinitialiser", "Reset view": "Réinitialiser la vue", "Resource is being fetched from Tekton Results.": "La ressource est extraite de Tekton Results.", - "Resource is deleted.": "La ressource est supprimée.", + "Resource is deleted.": "Ressource supprimée.", "Right click": "Cliquer avec le bouton droit", "Route": "Itinéraire", "Routes": "Itinéraires", "run{{plural}} in other namespaces.": "courir{{plural}} dans d'autres espaces de noms.", "run{{plural}}.": "Exécuter", "Running": "En cours d’exécution", - "Runs in pipelines": "Fonctionne dans les pipelines", - "Runs in repositories": "Dépôts de graphiques", + "Runs in pipelines": "S'exécute dans les pipelines", + "Runs in repositories": "S'exécute dans les dépôts", "Samples": "Exemples", "Save": "Enregistrer", "SBOM": "Nomenclature logicielle", "Schema": "Schéma", "Search by pipeline name": "Recherche par nom de pipeline", - "Search by repository name": "Rechercher par nom de référentiel", + "Search by repository name": "Recherche par nom de dépôt", "Sec": "Secondes", "Secret": "Secret", "Secret name": "Nom du secret", @@ -490,10 +500,10 @@ "Show variables": "Afficher les variables", "Show VolumeClaimTemplate options": "Afficher les options du modèle de revendication du volume", "Show YAML": "Afficher le code YAML", - "Showing {{count}} event": "Affichage de {{count}} événement", - "Showing {{count}} event_plural": "Affichage de {{count}} événement", - "Showing most recent {{count}} event": "Afficher {{count}} événement le plus récent", - "Showing most recent {{count}} event_plural": "Afficher {{count}} événement le plus récent", + "Showing {{count}} event": "Affichage{{count}} événement", + "Showing {{count}} event_plural": "Affichage{{count}} événement", + "Showing most recent {{count}} event": "Affichage des résultats les plus récents{{count}} événement", + "Showing most recent {{count}} event_plural": "Affichage des résultats les plus récents{{count}} événement", "Signed": "Signé", "Single user (RWO)": "Utilisateur unique (RWO)", "Size": "Taille", @@ -522,21 +532,21 @@ "Subscribe to events:": "S’abonner aux événements :", "Succeeded": "Réussi", "Success rate": "Taux de réussite", - "Success rate measure the % of successfully completed pipeline runs in relation to the total number of pipeline runs": "Le taux de réussite mesure le pourcentage d'exécutions de pipeline terminées avec succès par rapport au nombre total d'exécutions de pipeline", + "Success rate measure the % of successfully completed pipeline runs in relation to the total number of pipeline runs": "Le taux de réussite mesure le pourcentage d'exécutions de pipeline menées à bien par rapport au nombre total d'exécutions de pipeline.", "Successfully updated the pipeline {{formName}}.": "Mise à jour réussie du pipeline {{formName}}.", "Switch and delete": "Changer et supprimer", "Switching to form view will delete any invalid YAML.": "Le passage à la vue Formulaire supprimera tout code YAML non valide.", "Tag": "Mot-clé", "Tags": "Balises", "Task": "Tâche", - "Task approval required": "Approbation exigée", + "Task approval required": "Approbation de la tâche requise", "Task details": "Détails de la tâche", "Task does not exist": "La tâche n’existe pas", "Task status": "Statut de la tâche", "Task version will be updated across all instances": "La version de la tâche sera mise à jour dans toutes les instances.", "TaskRun": "Exécution de tâche", "TaskRun details": "Détails de TaskRun", - "TaskRun name": "Journal d’exécution des tâches", + "TaskRun name": "Nom de l'exécution de la tâche", "TaskRuns": "Exécutions de tâche", "Tasks": "Tâches", "TaskSpec or TaskRef must be provided.": "TaskSpec ou TaskRef doit être fourni.", @@ -552,6 +562,7 @@ "The base server url (e.g. https://quay.io/)": "URL du serveur de base (par exemple https://quay.io/)", "The following secrets are available for all pipelines in this namespace to authenticate to the specified Git server or Image registry:": "Les secrets suivants sont disponibles pour tous les pipelines de cet espace de noms dans le cadre de l’authentification auprès du serveur Git ou du registre d’images spécifié :", "The following variables can be used in the Parameters or when created new Resources.": "Les variables suivantes peuvent être utilisées dans les paramètres ou lors de la création de ressources.", + "The multi-cluster connection is unavailable. Logs and status may be delayed until connection is restored.": "La connexion multi-cluster est indisponible. Les journaux et l'état peuvent être retardés jusqu'au rétablissement de la connexion.", "The secret is required to set the Build status and to attach the webhook to the Git repository.": "Le secret est requis pour définir le statut de génération et pour attacher le webhook au dépôt Git.", "There was an unknown error": "Une erreur inconnue s’est produite", "This action will delete resource from k8s but still the resource can be fetched from Tekton Results": "Cette action supprimera la ressource de k8s, mais la ressource pourra toujours être récupérée à partir de Tekton Results.", @@ -562,12 +573,12 @@ "This will create a PersistentVolumeClaim.": "Cette opération va créer une revendication de volume persistant.", "Time Range": "Intervalle de temps", "Timed out": "Délai expiré", - "Timeout for the pipeline": "Délai d'expiration du pipeline", + "Timeout for the pipeline": "Délai d'attente dépassé pour le pipeline", "Timeout must be greater than or equal to 0.": "Le délai d’attente doit être supérieur ou égal à 0.", "Timeouts": "Délais d'attente", "Total duration": "Durée totale", - "Total Pipelineruns": "Exécutions de pipeline", - "Total runs": "Risque total", + "Total Pipelineruns": "Total Pipelineruns", + "Total runs": "Nombre total de courses", "TriggerBinding": "Liaison de déclencheur", "TriggerBindings": "Liaisons de déclencheur", "Triggered by": "Auteur du déclenchement", @@ -577,7 +588,13 @@ "Try it": "Essayer", "Unable to detect Event listener URL": "Impossible de détecter l’URL de l’écouteur d’événements", "Unable to find repository": "Impossible de trouver le dépôt", + "Unable to load average duration": "Impossible de charger la durée moyenne", + "Unable to load duration": "Impossible de charger la durée", "Unable to load Pipeline": "Impossible de charger le pipeline", + "Unable to load pipeline runs": "Impossible de charger les exécutions du pipeline", + "Unable to load pipeline runs list": "Impossible de charger la liste des exécutions du pipeline", + "Unable to load PipelineRun status": "Impossible de charger l'état de PipelineRun", + "Unable to load total runs": "Impossible de charger le nombre total d'exécutions", "Unable to locate any tasks.": "Impossible de localiser des tâches.", "Unique name of the new secret.": "Nom unique du nouveau secret.", "Unknown": "Inconnu", @@ -587,11 +604,12 @@ "URL": "URL", "Use <1>{appLink} link to install the GitHub Application to your repositories in your organisation/account.": "Utiliser<1>{appLink} lien pour installer l'application GitHub dans vos référentiels dans votre organisation/compte.", "Use GitHub App": "Utiliser l’application GitHub", - "Use this <2>link to install the GitHub Application to your repositories in your organization/account.": "Cliquez sur ce <2>lien pour installer l’application GitHub sur les dépôts de votre organisation/compte.", + "Use this <2>link to install the GitHub Application to your repositories in your organization/account.": "Utilisez ceci<2> lien pour installer l'application GitHub dans vos référentiels dans votre organisation/compte.", "Use this format when you reference variables in this form: ": "Utilisez ce format lorsque vous référencez des variables dans ce formulaire : ", "Use this format when you reference variables in this form: <2>$(": "Utilisez ce format lorsque vous référencez des variables dans ce formulaire : <2>$(", - "Use your Bitbucket App password. Use this <2>link to create a token with <5>Read and Write scopes in <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks.": "Utilisez le mot de passe de votre application Bitbucket. Cliquez sur ce <2>lien pour créer un jeton avec les portées <5>Lire et écrire dans <8>Compte, Adhésion à l’espace de travail, Projets, Problèmes, Demandes d’extraction et Webhooks.", - "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.": "Utilisez votre jeton d’accès Gitlab Personal. Cliquez sur ce <2>lien pour créer un jeton avec la portée <5>API. Sélectionnez le rôle <8>Responsable/Propriétaire. Donnez à votre jeton un délai d’expiration, par exemple 30 jours.", + "Use your Bitbucket App password. Use this <2>link to create a token with <5>Read and Write scopes in <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks.": "Utilisez le mot de passe de votre application Bitbucket. Cliquez sur ce <2>lien pour créer un jeton avec les scopes <5>Read and Write dans <8>Compte, Adhésion à l’espace de travail, Projets, Problèmes, Demandes d’extraction et Webhooks.", + "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.": "Utilisez votre jeton d’accès Gitlab Personal. Cliquez sur ce <2>lien pour créer un jeton avec le scope <5>API. Sélectionnez le rôle <8>Maintainer/Owner. Donnez à votre jeton un délai d’expiration, par exemple 30 jours.", + "User": "Utilisateur", "User not an approver": "L'utilisateur n'est pas un approbateur", "Username": "Nom d’utilisateur", "Value": "Valeur", @@ -634,6 +652,6 @@ "Your Git repository is now configured to run <2>push.yaml on every Git push event.": "Votre dépôt Git est maintenant configuré pour exécuter <2>push.yaml lors de chaque événement push Git.", "Zoom in": "Zoomer", "Zoom out": "Dézoomer", - "Use your Git Personal token. Create a token with repo, public_repo & admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Utilisez votre jeton personnel Git. Créez un jeton avec repo, public_repo et admin:repo.", - "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Utilisez votre jeton personnel GitHub. Cliquez sur ce <2>lien pour créer un jeton <5>classique avec les portées <7>repo et <10>admin:repo_hook et donnez à votre jeton une date d’expiration, par exemple 30 jours." -} + "Use your Git Personal token. Create a token with repo, public_repo & admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Utilisez votre jeton Git personnel. Créez un jeton avec repo, public_repo et admin:repo.", + "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Utilisez votre jeton personnel GitHub. Utilisez ceci<2> lien créer un<5> classique jeton avec<7> dépôt &<10> admin:repo" +} \ No newline at end of file diff --git a/upstream/locales/ja/plugin__pipelines-console-plugin.json b/upstream/locales/ja/plugin__pipelines-console-plugin.json index 6cbd77bd..af956c29 100644 --- a/upstream/locales/ja/plugin__pipelines-console-plugin.json +++ b/upstream/locales/ja/plugin__pipelines-console-plugin.json @@ -1,5 +1,5 @@ { - "{{assignees}} Assigned": "割り当て日: {{assignees}}", + "{{assignees}} Assigned": "{{assignees}} 割り当て済み", "{{count}} annotation_0": "{{count}} 件のアノテーション", "{{count}} annotation_1": "{{count}} 件のアノテーション", "{{count}} day_0": "{{count}} 日", @@ -26,7 +26,7 @@ "<0>In the <1>.tekton directory, create a new file called<3>push.yaml and add the following code:": "<0><1>.tekton ディレクトリーで、<3>push.yaml という名前の新規ファイルを作成し、以下のコードを追加します:", "<0>In your repository, create the <2>.tekton directory to store you pipeline.": "<0>リポジトリーで、<2>.tekton ディレクトリーを作成し、Pipeline を保存します。", "<0>Use the <2>link to install the newly created GitHub application to your repositories in your organization/account": "<0><2>link を使用して、新たに作成された GitHub アプリケーションを組織/アカウントのリポジトリーにインストールします", - "A GitHub App is already set up for this cluster. To use it, install the GitHub app on your personal account or GitHub organization.": "GitHub アプリケーショはすでにこのクラスター用に設定されています。これを使用するには、GitHub アプリケーションを個人アカウントまたは GitHub 組織にインストールします。", + "A GitHub App is already set up for this cluster. To use it, install the GitHub app on your personal account or GitHub organization.": "このクラスターには GitHub アプリケーションがすでに設定されています。これを使用するには、個人アカウントまたは GitHub 組織に GitHub アプリケーションをインストールしてください。", "Access Denied": "アクセスが拒否されました", "Access Mode": "アクセスモード", "Access mode is set by storage class and cannot be changed": "アクセスモードはストレージクラスで設定され、変更できません", @@ -74,7 +74,7 @@ "Approvers": "承認者", "Archived": "アーカイブ済み", "Archived in Tekton results": "Tekton Results にアーカイブ済み", - "Are you sure you want to approve": "キャンセルしてもよろしいですか?", + "Are you sure you want to approve": "本当に承認しますか?", "Are you sure you want to remove {{taskName}}?": "{{taskName}} を削除してもよいですか?", "Are you sure you want to remove <1>{{selection}} from <4>{{pipelineName}}?": "<1>{{selection}} を <4>{{pipelineName}} から削除してもよいですか?", "Authentication type": "認証タイプ", @@ -92,6 +92,7 @@ "Cancelling": "取り消し", "Cannot be longer than {{characterCount}} characters.": "{{characterCount}} 文字を超えることはできません。", "Categories": "カテゴリー", + "Checking authorization...": "認可を確認しています...", "Checks: Read & Write": "チェック: 読み書き", "Click": "クリック", "Click {{submit}} to save changes or {{reset}} to cancel changes.": "{{submit}} をクリックして変更を保存するか、または {{reset}} をクリックして変更をキャンセルします。", @@ -137,12 +138,12 @@ "CustomRun": "CustomRun", "CustomRuns": "CustomRuns", "Data is incomplete. To see the full view, please enable ": "データが不完全です。全体を表示するには、 ", - "Data source": "Kafka ソース", + "Data source": "データソース", "Decrement": "デクリメント", "Default value": "デフォルト値", - "Delete {{resourceKind}}": "{{resourceKind}} の削除", - "Delete Pipeline": "Pipeline を削除します。", - "Delete PipelineRun": "PipelineRun を削除します。", + "Delete {{resourceKind}}": "{{resourceKind}} の削除", + "Delete Pipeline": "パイプラインを削除", + "Delete PipelineRun": "PipelineRun を削除", "Delete task": "Task の削除", "Description": "説明", "Designate provider to be authenticated.": "認証するプロバイダーを指定します。", @@ -179,7 +180,7 @@ "Error connecting to event stream: { error }": "イベントストリームへの接続エラー: { error }", "Error downloading logs.": "ログのダウンロードエラー。", "Error loading - {{placeholder}}": "読み込みエラー - {{placeholder}}", - "Error loading {{desc}}": "{{desc}} の読み込みエラー", + "Error loading {{desc}}": "読み込みエラー {{desc}}", "Error Loading {{label}}": "{{label}} の読み込みエラー", "Error Loading {{label}}: {{message}}": "{{label}} の読み込みエラー: {{message}}", "Error loading events": "イベントの読み込みエラー", @@ -193,7 +194,13 @@ "Events triggering the webhook: ": "Webhook をトリガーするイベント: ", "Expand": "拡張", "Failed": "失敗", + "Failed to load average duration data": "平均期間データの読み込みに失敗しました", + "Failed to load duration data": "期間データの読み込みに失敗しました", + "Failed to load pipeline run status data": "パイプライン実行ステータスデータの読み込みに失敗しました", + "Failed to load pipeline runs list": "パイプライン実行リストの読み込みに失敗しました", + "Failed to load pipeline runs number data": "パイプライン実行数データの読み込みに失敗しました", "Failed to load Tasks. {{error}}": "Task のロードに失敗しました。{{error}}", + "Failed to load total runs data": "合計実行データの読み込みに失敗しました", "Failure - check logs for details.": "失敗しました。ログで詳細を確認してください。", "Failure on task {{taskName}} - check logs for details.": "Task {{taskName}} で失敗しました。ログで詳細を確認してください。", "File contains non-printable characters. Preview is not available.": "ファイルには出力できない文字が含まれています。プレビューは利用できません。", @@ -220,6 +227,7 @@ "GitHub application name": "GitHub アプリケーション名", "Go to Admin Approvals tab": "管理者承認タブへ移動", "Go to Approvals tab": "承認タブに移動", + "Group": "グループ", "Hide credential options": "認証情報オプションの非表示", "Hide variables": "変数の非表示", "Hide VolumeClaimTemplate options": "VolumeClaimTemplate オプションの非表示", @@ -239,7 +247,7 @@ "Install and add": "インストールおよび追加", "Install Cosign": "Cosign のインストール", "Installed": "インストール済み", - "Installing": "インストール", + "Installing": "インストール中", "Insufficient permissions": "不十分なパーミッション", "Interrupt any executing non finally tasks, then execute finally tasks": "Finally 以外の Task の実行を中断してから、Finally Task を実行します", "Invalid Git URL.": "無効な Git URL。", @@ -261,7 +269,7 @@ "Last run duration": "最終実行期間", "Last run status": "最終実行のステータス", "Last run time": "最終実行時刻", - "Last weeks": "最後の 週間", + "Last week": "最後の 週間", "Last year": "去年", "Learn more": "詳細", "less than a sec": "1 秒未満", @@ -283,17 +291,18 @@ "Missing resources": "リソースがありません", "Missing workspaces": "ワークスペースがありません", "More info": "詳細情報", + "Multicluster Pipeline Run": "マルチクラスターパイプライン実行", "Must define at least one task.": "1 つ以上の Task を定義する必要があります。", "Name": "名前", "Name must consist of lower-case letters, numbers and hyphens. It must start with a letter and end with a letter or number.": "名前は、小文字、数字、およびハイフンで構成される必要があります。これは文字で始まり、文字または数字で終了する必要があります。", "Name must consist of lower-case letters, numbers, underscores and hyphens. It must start with a letter and end with a letter or number.": "名前は、小文字、数字、アンダースコア、およびハイフンで構成される必要があります。これは文字で始まり、文字または数字で終了する必要があります。", "Namespace": "Namespace", - "Namespaces": "namespaces", + "Namespaces": "Namespaces", "Navigate back to the": "以下に戻ります", "No {{resourceName}} results available due to failure": "障害が発生したために {{resourceName}} 件の結果は利用できません", "No {{resourceType}} resource": "{{resourceType}} リソースがありません", "No ApprovalTasks found": "承認タスクが見つかりません", - "No approvers": "承認者", + "No approvers": "承認者なし", "No default StorageClass": "デフォルトの StorageClass はありません", "No display name": "表示名がありません", "No events": "イベントがありません", @@ -302,7 +311,7 @@ "No matching events": "一致するイベントがありません", "No options matching your criteria": "基準に一致するオプションはありません", "No Output found": "出力が見つかりません", - "No owner": "オーナーがありません", + "No owner": "所有者なし", "No parameters are associated with this Pipeline.": "この Pipeline に関連付けられているパラメーターはありません。", "No parameters are associated with this PipelineRun.": "この PipelineRun に関連付けられているパラメーターはありません。", "No PipelineRuns found": "PipelineRuns が見つかりません", @@ -315,7 +324,7 @@ "No secrets found": "シークレットが見つかりません", "No selector": "セレクターがありません", "No task runs found": "Task 実行が見つかりません", - "No TaskRuns found": "Task 実行が見つかりません", + "No TaskRuns found": "タスクランが見つかりません", "No tasks": "Task なし", "No Tasks found": "タスクが見つかりません", "No when expressions are associated with this task.": "この Task に関連付けられている when 式はありません。", @@ -354,8 +363,8 @@ "Password or token for Git authentication. Required if a ca.crt or .gitconfig file is not specified.": "Git 認証のパスワードまたはトークン。ca.crt または .gitconfig ファイルが指定されていない場合に必要です。", "Pause event streaming": "イベントストリーミングの一時停止", "Pending": "保留中", - "Per Pipeline": "Pipeline ", - "Per Repository": "Git リポジトリー", + "Per Pipeline": "パイプラインごと", + "Per Repository": "リポジトリーごと", "Permission denied": "パーミッションが拒否されました", "Permissions to the mounted drive": "マウントされたドライブへのパーミッション", "Permissions to the mounted drive.": "マウントされたドライブへのパーミッション。", @@ -374,15 +383,16 @@ "PipelineRun failed to start": "PipelineRun が開始しません", "PipelineRun has been {{state}}": "PipelineRun は {{state}}", "PipelineRun has timed out": "PipelineRun がタイムアウトしました", + "PipelineRun is waiting to be admitted to a worker cluster": "PipelineRun はワーカークラスターへの参加を待機しています", "PipelineRun name": "PipelineRun 名", "PipelineRun not started yet": "PipelineRun がまだ開始されていません", - "PipelineRun status": "PipelineRun 名", + "PipelineRun status": "PipelineRun ステータス", "PipelineRun Status shows the % of PipelineRuns for various status like \"Succeeded\", \"Failed\", \"Running\", \"Cancelled\" and \"Others\". Here, Others includes statuses like \"Started\", \"CreateRunFailed\", \"PipelineRunTimeout\"": "PipelineRun ステータスは、成功、失敗、実行中、キャンセル、その他といった様々なステータスにおける PipelineRun の割合を表示します。ここでその他には、開始済み、CreateRunFailed、PipelineRunTimeout といったステータスが含まれます。", "PipelineRun status shows the % of PipelineRuns for various statuses like \"Succeeded\", \"Failed\" and \"Cancelled\".": "PipelineRun ステータスには、成功、失敗、キャンセルなどのさまざまなステータスの PipelineRun の割合が表示されます。", "PipelineRuns": "PipelineRuns", "Pipelines": "Pipelines", "Pipelines page": "Pipelines ページ", - "Plan: Readonly": "平文: 読み取り専用", + "Plan: Readonly": "プラン: 読み取り専用", "Please <2>try again.": "<2>再試行 してください。", "Please follow the instructions below to attach the webhook manually.": "以下の手順に従って、Webhook を手動で添付してください。", "Please provide a reason for not approving": "承認しない理由を入力してください", @@ -442,25 +452,25 @@ "Right click": "右クリック", "Route": "Route", "Routes": "Routes", - "run{{plural}} in other namespaces.": "走る{{plural}}他の名前空間では。", + "run{{plural}} in other namespaces.": "他の名前空間で run{{plural}} を実行します。", "run{{plural}}.": "実行", "Running": "実行中", "Runs in pipelines": "パイプラインで実行", - "Runs in repositories": "Helm リポジトリー", + "Runs in repositories": "リポジトリーで実行", "Samples": "サンプル", "Save": "保存", "SBOM": "SBOM", "Schema": "スキーマ", "Search by pipeline name": "パイプライン名で検索", - "Search by repository name": "チャートリポジトリー名", + "Search by repository name": "リポジトリー名で検索", "Sec": "秒", "Secret": "シークレット", "Secret name": "シークレット名", "Secret with the Git access token for pulling pipeline and tasks from your Git repository.": "Git リポジトリーから Pipeline および Task をプルするための Git アクセストークンを持つシークレット。", "Secrets": "シークレット", "See BitBucket events": "BitBucket イベントを参照してください", - "See Git events": "Git イベントを参照してください", - "See GitHub events": "GitHub イベントを参照してください", + "See Git events": "Git イベントの表示", + "See GitHub events": "GitHub イベントの表示", "See GitHub permissions": "GitHub パーミッションを参照してください", "See Gitlab events": "Gitlab イベントを参照してください", "Select {{label}}": "{{label}} の選択", @@ -482,7 +492,7 @@ "ServiceAccount": "ServiceAccount", "ServiceAccounts": "ServiceAccounts", "Services": "Services", - "Setup": "セットアップ", + "Setup": "設定", "Setup a webhook": "Webhook のセットアップ", "Setup GitHub App": "GitHub アプリケーションのセットアップ", "Shared access (RWX)": "共有アクセス (RWX)", @@ -492,8 +502,8 @@ "Show YAML": "YAML の表示", "Showing {{count}} event_0": "{{count}} 件のイベントの表示", "Showing {{count}} event_1": "{{count}} 件のイベントの表示", - "Showing most recent {{count}} event_0": "最新の {{count}} 件のイベントの表示", - "Showing most recent {{count}} event_1": "最新の {{count}} 件のイベントの表示", + "Showing most recent {{count}} event_0": "最新の{{count}}イベントを表示しています", + "Showing most recent {{count}} event_1": "最新の{{count}}イベントを表示しています", "Signed": "署名済み", "Single user (RWO)": "単一ユーザー (RWO)", "Size": "サイズ", @@ -510,9 +520,9 @@ "Start time": "開始時刻", "Started": "開始済み", "Status": "ステータス", - "Step 1": "ステップ 1", - "Step 2": "ステップ 2", - "Step 3": "ステップ 3", + "Step 1": "ステップ 4", + "Step 2": "ステップ 4", + "Step 3": "ステップ 4", "Step 4": "ステップ 4", "Stop": "停止", "StorageClass": "StorageClass", @@ -529,14 +539,14 @@ "Tag": "タグ", "Tags": "タグ", "Task": "Task", - "Task approval required": "承認が必要です", + "Task approval required": "タスクの承認が必要です", "Task details": "タスクの詳細", "Task does not exist": "Task は存在しません", "Task status": "Task のステータス", "Task version will be updated across all instances": "Task のバージョンはすべてのインスタンスで更新されます", "TaskRun": "TaskRun", - "TaskRun details": "taskrun delete", - "TaskRun name": "TaskRun ログ", + "TaskRun details": "タスクランの詳細", + "TaskRun name": "タスク実行名", "TaskRuns": "TaskRuns", "Tasks": "Tasks", "TaskSpec or TaskRef must be provided.": "TaskSpec または TaskRef を指定する必要があります。", @@ -552,6 +562,7 @@ "The base server url (e.g. https://quay.io/)": "ベースサーバーの URL (例: https://quay.io/)", "The following secrets are available for all pipelines in this namespace to authenticate to the specified Git server or Image registry:": "以下のシークレットは、この namespace のすべての Pipeline で、指定の Git サーバーまたはイメージレジストリーに対する認証に利用できます:", "The following variables can be used in the Parameters or when created new Resources.": "以下の変数は、パラメーターで、または新規リソースの作成時に使用できます。", + "The multi-cluster connection is unavailable. Logs and status may be delayed until connection is restored.": "マルチクラスター接続が利用できません。接続が回復するまで、ログとステータスの表示が遅れる場合があります。", "The secret is required to set the Build status and to attach the webhook to the Git repository.": "Build ステータスを設定し、Webhook を Git リポジトリーに添付するには、シークレットが必要です。", "There was an unknown error": "不明なエラーがありました", "This action will delete resource from k8s but still the resource can be fetched from Tekton Results": "このアクションにより k8s からリソースが削除されますが、そのリソースは引き続き Tekton Results から取得できます", @@ -566,8 +577,8 @@ "Timeout must be greater than or equal to 0.": "タイムアウトは 1 以上の値である必要があります。", "Timeouts": "タイムアウト", "Total duration": "合計所要時間", - "Total Pipelineruns": "PipelineRun を一覧表示します。", - "Total runs": "全体リスク", + "Total Pipelineruns": "パイプライン実行合計", + "Total runs": "合計ラン", "TriggerBinding": "TriggerBinding", "TriggerBindings": "TriggerBindings", "Triggered by": "トリガー:", @@ -577,7 +588,13 @@ "Try it": "試行する", "Unable to detect Event listener URL": "Event リスナー URL を検出できない", "Unable to find repository": "リポジトリーが見つかりません", + "Unable to load average duration": "平均期間を読み込めません", + "Unable to load duration": "期間を読み込めません", "Unable to load Pipeline": "Pipeline をロードできません", + "Unable to load pipeline runs": "パイプライン実行を読み込めません", + "Unable to load pipeline runs list": "パイプライン実行リストを読み込めません", + "Unable to load PipelineRun status": "PipelineRun ステータスを読み込めません", + "Unable to load total runs": "合計実行数を読み込めません", "Unable to locate any tasks.": "Task を特定できません。", "Unique name of the new secret.": "新規シークレットの一意の名前。", "Unknown": "不明", @@ -587,16 +604,17 @@ "URL": "URL", "Use <1>{appLink} link to install the GitHub Application to your repositories in your organisation/account.": "<1>{appLink} のリンクを使用して、GitHub アプリケーションを組織/アカウントのリポジトリーにインストールします。", "Use GitHub App": "GitHub アプリケーションの使用", - "Use this <2>link to install the GitHub Application to your repositories in your organization/account.": "<2>リンク を使用して、GitHub アプリケーションを組織/アカウントのリポジトリーにインストールします。", + "Use this <2>link to install the GitHub Application to your repositories in your organization/account.": "この <2>link を使用して、GitHub アプリケーションを組織/アカウントのリポジトリーにインストールします。", "Use this format when you reference variables in this form: ": "このフォームで変数を参照する際は、この形式を使用します: ", "Use this format when you reference variables in this form: <2>$(": "このフォームで変数を参照する際は、この形式を使用します: <2>$(", - "Use your Bitbucket App password. Use this <2>link to create a token with <5>Read and Write scopes in <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks.": "Bitbucket App パスワードを使用します。この <2>リンク を使用して、<8>アカウント、ワークスペースのメンバーシップ、プロジェクト、問題、プルリクエスト、および Webhook に <5>Read および Write スコープを持つトークンを作成します。", - "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.": "Gitlab のパーソナルアクセストークンを使用します。この <2>リンク を使用して、<5>api スコープでトークンを作成します。ロールを <8>Maintainer/Owner として選択します。トークンの有効期限 (30d) を指定します。", + "Use your Bitbucket App password. Use this <2>link to create a token with <5>Read and Write scopes in <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks.": "Bitbucket App のパスワードを使用します。この <2>リンク を使用して、<8>アカウント、ワークスペースのメンバーシップ、プロジェクト、課題、プルリクエスト、および Webhook の <5>Read および Write スコープを持つトークンを作成します。", + "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.": "Gitlab のパーソナルアクセストークンを使用します。この <2>リンク を使用して、<5>api スコープを持つトークンを作成します。ロールを <8>Maintainer/Owner として選択します。トークンに有効期限 (例: 30d) を指定します。", + "User": "User", "User not an approver": "承認者ではないユーザー", "Username": "ユーザー名", "Value": "値", "Values": "値", - "View all {{pipelineRunsLength}}": "すべての {{pipelineRunsLength}} を表示", + "View all {{pipelineRunsLength}}": "すべてを表示 ({{pipelineRunsLength}})", "View all steps in documentation": "ドキュメントのすべての手順の表示", "View all tekton tasks ({{itemCount, number}})": "すべての Tekton Task ({{itemCount, number}}) の表示", "View details": "詳細の表示", @@ -630,10 +648,10 @@ "You don't have access to this section due to cluster policy": "クラスターポリシーにより、このセクションにアクセスできません", "You have successfully setup the GitHub App": "GitHub アプリケーションが正常に設定されました", "You made changes to this page.": "このページに変更を加えました。", - "Your approval has been requested on {{plrs}} pipeline": "承認のリクエストは{{plrs}}パイプライン", + "Your approval has been requested on {{plrs}} pipeline": "{{plrs}}パイプラインで承認がリクエストされました", "Your Git repository is now configured to run <2>push.yaml on every Git push event.": "これで、Git リポジトリーは、Git プッシュイベントのたびに <2>push.yaml を実行するように設定されました。", "Zoom in": "拡大", "Zoom out": "縮小", "Use your Git Personal token. Create a token with repo, public_repo & admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Git 個人トークンを使用してください。repo、public_repo、admin:repo でトークンを作成してください。", - "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "GitHub パーソナルトークンを使用します。この <2>リンク から、<7>repo & <10>admin:repo_hook スコープを持つ <5>classic トークンを作成し、トークンに有効期限 (30d) を指定します。" + "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "GitHub の個人トークンを使用してください。この<2>リンクを使用して、<7>repoと<10>admin:repo で<5>クラシックトークンを作成してください。" } diff --git a/upstream/locales/ko/plugin__pipelines-console-plugin.json b/upstream/locales/ko/plugin__pipelines-console-plugin.json index 27413e5e..a3aa868d 100644 --- a/upstream/locales/ko/plugin__pipelines-console-plugin.json +++ b/upstream/locales/ko/plugin__pipelines-console-plugin.json @@ -1,5 +1,5 @@ { - "{{assignees}} Assigned": "할당된 대상: {{assignees}}", + "{{assignees}} Assigned": "{{assignees}} 할당된", "{{count}} annotation_0": "{{count}} 주석", "{{count}} annotation_1": "{{count}} 주석", "{{count}} day_0": "{{count}} 일", @@ -31,7 +31,7 @@ "Access Mode": "액세스 모드", "Access mode is set by storage class and cannot be changed": "액세스 모드는 스토리지 클래스에서 설정되며 변경할 수 없습니다.", "Access to": "액세스", - "Actions": "동작", + "Actions": "작업", "Activate auto complete": "자동 완성 기능 활성화", "Add": "추가", "Add a parallel task": "병렬 작업 추가", @@ -55,7 +55,7 @@ "Add workspace": "작업 공간 추가", "Adding this task may take a few moments.": "이 작업을 추가하는 데 몇 분 정도 걸릴 수 있습니다.", "Advanced options": "고급 옵션", - "All": "모두", + "All": "전체", "An average of the time taken to run PipelineRuns. The trending shown is based on the time range selected. This metric does not show runs that are running or pending.": "PipelineRun을 실행하는 데 걸린 평균 시간입니다. 표시된 추세는 선택한 시간 범위를 기반으로 합니다. 이 메트릭에는 실행 중이거나 보류 중인 실행이 표시되지 않습니다.", "An error occurred": "오류가 발생했습니다", "An error occurred during event retrieval. Attempting to reconnect...": "이벤트 검색 중에 오류가 발생했습니다. 다시 연결하는 중 ...", @@ -74,7 +74,7 @@ "Approvers": "승인자", "Archived": "보관됨", "Archived in Tekton results": "Tekton 결과에 아카이브됨", - "Are you sure you want to approve": "정말로 취소하시겠습니까?", + "Are you sure you want to approve": "승인하시겠습니까", "Are you sure you want to remove {{taskName}}?": "{{taskName}}을/를 삭제하시겠습니까?", "Are you sure you want to remove <1>{{selection}} from <4>{{pipelineName}}?": "<1>{{selection}}을/를 <4>{{pipelineName}}에서 삭제하시겠습니까?", "Authentication type": "인증 유형", @@ -92,6 +92,7 @@ "Cancelling": "취소 중", "Cannot be longer than {{characterCount}} characters.": "{{characterCount}}자를 초과할 수 없습니다.", "Categories": "카테고리", + "Checking authorization...": "권한 확인 중...", "Checks: Read & Write": "검사: 읽기 및 쓰기", "Click": "클릭", "Click {{submit}} to save changes or {{reset}} to cancel changes.": "{{submit}}을 클릭하여 변경 사항을 저장하거나{{reset}}을 클릭하여 변경 사항을 취소합니다.", @@ -137,12 +138,12 @@ "CustomRun": "CustomRun", "CustomRuns": "CustomRuns", "Data is incomplete. To see the full view, please enable ": "데이터가 불완전합니다. 전체 보기를 보려면 활성화하십시오. ", - "Data source": "Kafka 소스", + "Data source": "데이터 소스", "Decrement": "감소", "Default value": "기본값", - "Delete {{resourceKind}}": "{{resourceKind}} 삭제", - "Delete Pipeline": "파이프 라인 만들기", - "Delete PipelineRun": "PipelineRun을 삭제합니다.", + "Delete {{resourceKind}}": "{{resourceKind}} 삭제", + "Delete Pipeline": "Pipeline 삭제", + "Delete PipelineRun": "PipelineRun 삭제", "Delete task": "작업 삭제", "Description": "설명", "Designate provider to be authenticated.": "인증 공급자를 지정합니다.", @@ -179,7 +180,7 @@ "Error connecting to event stream: { error }": "이벤트 스트림에 연결 오류: { error }", "Error downloading logs.": "로그를 다운로드하는 중에 오류가 발생했습니다.", "Error loading - {{placeholder}}": "로드 오류- {{placeholder}}", - "Error loading {{desc}}": "로드 오류 {{desc}}", + "Error loading {{desc}}": "{{desc}} 로딩 중 오류 발생", "Error Loading {{label}}": "로드 오류 {{label}}", "Error Loading {{label}}: {{message}}": "로드 오류 {{label}}: {{message}}", "Error loading events": "이벤트 로드 오류", @@ -193,7 +194,13 @@ "Events triggering the webhook: ": "Webhook를 트리거하는 이벤트: ", "Expand": "확장", "Failed": "실패", + "Failed to load average duration data": "평균 기간 데이터를 로드하지 못했습니다", + "Failed to load duration data": "기간 데이터를 로드하지 못했습니다", + "Failed to load pipeline run status data": "파이프라인 실행 상태 데이터를 로드하지 못했습니다", + "Failed to load pipeline runs list": "파이프라인 실행 목록을 로드하지 못했습니다", + "Failed to load pipeline runs number data": "파이프라인을 로드하지 못했습니다. 번호 데이터를 실행합니다.", "Failed to load Tasks. {{error}}": "작업을 로드하지 못했습니다. {{error}}", + "Failed to load total runs data": "총 실행 데이터를 로드하지 못했습니다", "Failure - check logs for details.": "작업 실패 - 자세한 내용은 로그를 확인하십시오.", "Failure on task {{taskName}} - check logs for details.": "작업 {{taskName}} 실패 -자세한 내용은 로그를 확인하십시오.", "File contains non-printable characters. Preview is not available.": "파일에 인쇄할 수 없는 문자가 있습니다. 미리보기를 사용할 수 없습니다.", @@ -220,6 +227,7 @@ "GitHub application name": "GitHub 애플리케이션 이름", "Go to Admin Approvals tab": "관리자 승인 탭으로 이동합니다.", "Go to Approvals tab": "승인 탭으로 이동", + "Group": "그룹", "Hide credential options": "인증 정보 옵션 숨기기", "Hide variables": "변수 숨기기", "Hide VolumeClaimTemplate options": "VolumeClaimTemplate 옵션 숨기기", @@ -239,7 +247,7 @@ "Install and add": "설치 및 추가", "Install Cosign": "Cosign 설치", "Installed": "설치됨", - "Installing": "설치", + "Installing": "설치 중", "Insufficient permissions": "권한 부족", "Interrupt any executing non finally tasks, then execute finally tasks": "실행 중인 최종 작업이 아닌 작업을 중단한 다음 최종 작업을 실행합니다.", "Invalid Git URL.": "잘못된 Git URL입니다.", @@ -261,7 +269,7 @@ "Last run duration": "마지막 실행 기간", "Last run status": "마지막 실행 상태", "Last run time": "마지막 실행 시간", - "Last weeks": "마지막 주", + "Last week": "마지막 주", "Last year": "작년에", "Learn more": "더 알아보기", "less than a sec": "1초 미만", @@ -283,6 +291,7 @@ "Missing resources": "누락된 리소스", "Missing workspaces": "누락된 작업 공간", "More info": "더 많은 정보", + "Multicluster Pipeline Run": "다중 클러스터 파이프라인 실행", "Must define at least one task.": "하나 이상의 작업을 정의해야 합니다.", "Name": "이름", "Name must consist of lower-case letters, numbers and hyphens. It must start with a letter and end with a letter or number.": "이름은 소문자, 숫자 및 하이픈으로 구성되어야 하며 문자로 시작하고 문자 또는 숫자로 종료해야 합니다.", @@ -293,7 +302,7 @@ "No {{resourceName}} results available due to failure": "작업 실패로 인해 사용 가능한 {{resourceName}} 결과가 없습니다.", "No {{resourceType}} resource": "{{resourceType}} 리소스 없음", "No ApprovalTasks found": "ApprovalTasks를 찾을 수 없음", - "No approvers": "승인자", + "No approvers": "승인자 없음", "No default StorageClass": "기본 스토리지 클래스", "No display name": "표시 이름 없음", "No events": "이벤트 없음", @@ -307,7 +316,7 @@ "No parameters are associated with this PipelineRun.": "이 PipelineRun과 연결된 매개 변수가 없습니다.", "No PipelineRuns found": "PipelineRun을 찾을 수 없음", "No Pipelines found": "Pipeline을 찾을 수 없음", - "No Projects found": "프로젝트를 찾을 수 없습니다.", + "No Projects found": "프로젝트를 찾을 수 없음", "No Properties found": "속성을 찾을 수 없음", "No Repositories found": "리포지토리를 찾을 수 없음", "No requester": "요청자 없음", @@ -315,7 +324,7 @@ "No secrets found": "시크릿을 찾을 수 없습니다", "No selector": "선택기 없음", "No task runs found": "작업 실행을 찾을 수 없습니다", - "No TaskRuns found": "작업 실행을 찾을 수 없습니다", + "No TaskRuns found": "TaskRuns를 찾을 수 없음", "No tasks": "작업 없음", "No Tasks found": "작업을 찾을 수 없음", "No when expressions are associated with this task.": "이 태스크와 연관된 when 표현식 없음", @@ -353,16 +362,16 @@ "Password or token": "암호 또는 토큰", "Password or token for Git authentication. Required if a ca.crt or .gitconfig file is not specified.": "Git 인증을 위한 암호 또는 토큰입니다. ca.crt 또는 .gitconfig 파일이 지정되지 않은 경우 필요합니다.", "Pause event streaming": "이벤트 스트리밍 일시 중지", - "Pending": "보류", - "Per Pipeline": "파이프라인 ", - "Per Repository": "Git 리포지터리", + "Pending": "대기 중", + "Per Pipeline": "Pipeline당", + "Per Repository": "리포지토리당", "Permission denied": "permission denied", "Permissions to the mounted drive": "마운트된 드라이브에 대한 사용 권한", "Permissions to the mounted drive.": "마운트된 드라이브에 대한 사용 권한입니다.", "PersistentVolumeClaim": "PersistentVolumeClaim", - "PersistentVolumeClaims": "영구 볼륨 클레임", + "PersistentVolumeClaims": "PersistentVolumeClaims", "Pipeline": "파이프라인", - "Pipeline {{status}}": "파이프 라인 {{status}}", + "Pipeline {{status}}": "파이프라인 {{status}}", "Pipeline builder": "파이프라인 빌더", "Pipeline could not be started automatically": "파이프 라인을 자동으로 시작할 수 없습니다.", "Pipeline details": "파이프 라인 세부 정보", @@ -374,9 +383,10 @@ "PipelineRun failed to start": "PipelineRun을 시작하지 못했습니다.", "PipelineRun has been {{state}}": "pipelinerun이 되었습니다 {{state}}", "PipelineRun has timed out": "PipelineRun 사용 시간 초과", + "PipelineRun is waiting to be admitted to a worker cluster": "PipelineRun이 작업자 클러스터에 승인 대기 중", "PipelineRun name": "PipelineRun 이름", "PipelineRun not started yet": "PipelineRun이 아직 시작되지 않음", - "PipelineRun status": "PipelineRun 이름", + "PipelineRun status": "pipelinerun 상태", "PipelineRun Status shows the % of PipelineRuns for various status like \"Succeeded\", \"Failed\", \"Running\", \"Cancelled\" and \"Others\". Here, Others includes statuses like \"Started\", \"CreateRunFailed\", \"PipelineRunTimeout\"": "PipelineRun Status에는 \"Succeeded\", \"Failed\", \"Running\", \"Cancelled\" 및 \"Others\"와 같은 다양한 상태에 대한 PipelineRuns의 %가 표시됩니다. 여기, 기타에는 \"Started\", \"CreateRunFailed\", \"PipelineRunTimeout\"과 같은 상태가 포함됩니다.", "PipelineRun status shows the % of PipelineRuns for various statuses like \"Succeeded\", \"Failed\" and \"Cancelled\".": "PipelineRun 상태는 \"Succeeded\", \"Failed\" 및 \"Cancelled\"와 같은 다양한 상태에 대한 PipelineRun의 %를 표시합니다.", "PipelineRuns": "PipelineRuns", @@ -445,14 +455,14 @@ "run{{plural}} in other namespaces.": "다른 네임스페이스에서{{plural}} 를 실행합니다.", "run{{plural}}.": "실행", "Running": "실행 중", - "Runs in pipelines": "Pipeline 1.5의 프로필", - "Runs in repositories": "Helm 리포지토리", + "Runs in pipelines": "파이프라인에서 실행", + "Runs in repositories": "리포지토리에서 실행", "Samples": "샘플", "Save": "저장", "SBOM": "SBOM", "Schema": "스키마", "Search by pipeline name": "파이프라인 이름으로 검색", - "Search by repository name": "차트 저장소 이름", + "Search by repository name": "리포지터리 이름으로 검색", "Sec": "초", "Secret": "시크릿", "Secret name": "시크릿 이름", @@ -463,7 +473,7 @@ "See GitHub events": "GitHub 이벤트 참조", "See GitHub permissions": "GitHub 권한 보기", "See Gitlab events": "Gitlab 이벤트 참조", - "Select {{label}}": "{{label}} 선택", + "Select {{label}}": "선택 사항 {{label}}", "Select {{resourceType}} resource...": "{{resourceType}} 리소스 선택...", "Select a {{label}}": "{{label}} 선택", "Select a key": "키 선택", @@ -529,14 +539,14 @@ "Tag": "태그", "Tags": "태그", "Task": "작업", - "Task approval required": "승인 필요", + "Task approval required": "작업 승인 필요", "Task details": "작업 세부 정보", "Task does not exist": "작업이 없습니다.", "Task status": "작업 상태", "Task version will be updated across all instances": "모든 인스턴스에서 작업 버전이 업데이트됩니다.", "TaskRun": "TaskRun", - "TaskRun details": "taskrun delete", - "TaskRun name": "TaskRun 로그", + "TaskRun details": "taskrun 세부 정보", + "TaskRun name": "taskrun 이름", "TaskRuns": "TaskRuns", "Tasks": "작업", "TaskSpec or TaskRef must be provided.": "TaskSpec 또는 TaskRef를 제공해야합니다.", @@ -552,6 +562,7 @@ "The base server url (e.g. https://quay.io/)": "기본 서버 URL (예: https://quay.io/)", "The following secrets are available for all pipelines in this namespace to authenticate to the specified Git server or Image registry:": "이 네임 스페이스의 모든 파이프 라인에서 다음 시크릿을 사용하여 지정된 Git 서버 또는 이미지 레지스트리에 인증할 수 있습니다.", "The following variables can be used in the Parameters or when created new Resources.": "다음 변수는 매개 변수에서 또는 새 리소스를 만들 때 사용할 수 있습니다.", + "The multi-cluster connection is unavailable. Logs and status may be delayed until connection is restored.": "다중 클러스터 연결을 사용할 수 없습니다. 연결이 복원될 때까지 로그 및 상태가 지연될 수 있습니다.", "The secret is required to set the Build status and to attach the webhook to the Git repository.": "빌드 상태를 설정하고 Webhook를 Git 리포지토리에 연결하려면 시크릿이 필요합니다.", "There was an unknown error": "알 수 없는 오류가 발생했습니다.", "This action will delete resource from k8s but still the resource can be fetched from Tekton Results": "이 작업은 k8s에서 리소스를 삭제하지만 Tekton 결과에서 리소스를 가져올 수 있습니다.", @@ -566,8 +577,8 @@ "Timeout must be greater than or equal to 0.": "제한 시간 값은 1 이상이어야 합니다.", "Timeouts": "시간 초과", "Total duration": "총 기간", - "Total Pipelineruns": "PipelineRun을 나열합니다.", - "Total runs": "총 위험 수", + "Total Pipelineruns": "총 Pipelineruns", + "Total runs": "총 실행", "TriggerBinding": "TriggerBinding", "TriggerBindings": "TriggerBindings", "Triggered by": "트리거", @@ -577,7 +588,13 @@ "Try it": "실행 시도", "Unable to detect Event listener URL": "이벤트 리스너 URL을 감지할 수 없음", "Unable to find repository": "저장소를 찾을 수 없습니다.", + "Unable to load average duration": "평균 기간을 로드할 수 없음", + "Unable to load duration": "기간을 로드할 수 없음", "Unable to load Pipeline": "파이프 라인을 로드할 수 없습니다.", + "Unable to load pipeline runs": "파이프라인 실행을 로드할 수 없음", + "Unable to load pipeline runs list": "파이프라인 실행 목록을 로드할 수 없음", + "Unable to load PipelineRun status": "PipelineRun 상태를 로드할 수 없음", + "Unable to load total runs": "총 실행을 로드할 수 없음", "Unable to locate any tasks.": "작업을 찾을 수 없습니다.", "Unique name of the new secret.": "새 시크릿의 고유한 이름입니다.", "Unknown": "알 수 없음", @@ -590,8 +607,9 @@ "Use this <2>link to install the GitHub Application to your repositories in your organization/account.": "<2>링크를 사용하여 조직/계정의 리포지토리에 GitHub 애플리케이션을 설치합니다.", "Use this format when you reference variables in this form: ": "이 형식의 변수를 참조할 때 다음 형식을 사용하십시오:", "Use this format when you reference variables in this form: <2>$(": "이 형식의 변수를 참조할 때 다음 형식을 사용하십시오: <2>$(", - "Use your Bitbucket App password. Use this <2>link to create a token with <5>Read and Write scopes in <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks.": "Bitbucket 앱 암호를 사용합니다. 이 <2>link를 사용하여 <8>계정, Workspace 멤버십, 프로젝트, 발급, Pull 요청 및 Webhooks에서 <5>읽기 및 쓰기 범위로 토큰을 생성합니다.", - "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.": "Gitlab 개인 액세스 토큰을 사용합니다. 이 <2>link를 사용하여 <5>api 범위로 토큰을 생성합니다. <8>Maintainer/Owner로 역할을 선택합니다. 토큰 만료 기간을 30d로 지정합니다.", + "Use your Bitbucket App password. Use this <2>link to create a token with <5>Read and Write scopes in <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks.": "Bitbucket 앱 암호를 사용합니다. 이 <2>link를 사용하여 <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks에서 <5>Read and Write 범위로 토큰을 생성합니다.", + "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.": "Gitlab 개인 액세스 토큰을 사용합니다. 이 <2>link를 사용하여 <5>api 범위로 토큰을 생성합니다. <8>Maintainer/Owner로 역할을 선택합니다. 토큰 만료 기간을 (예: 30d) 지정합니다.", + "User": "사용자", "User not an approver": "승인자가 아닌 사용자", "Username": "사용자 이름", "Value": "값", @@ -635,5 +653,5 @@ "Zoom in": "확대", "Zoom out": "축소", "Use your Git Personal token. Create a token with repo, public_repo & admin:repo_hook scopes and give your token an expiration, i.e 30d.": "Git 개인 토큰을 사용합니다. repo, public_repo & admin:repo로 토큰을 생성", - "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "GitHub 개인 토큰을 사용합니다. 이 <2>link를 사용하여 <7>repo & <10>admin:repo_hook 범위의 <5>classic 토큰을 생성하고 토큰 만료 기간을 (예: 30d)로 지정합니다." + "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "GitHub 개인 토큰을 사용합니다. 이 <2>링크 를 사용하여 <7>repo & <10>admin:repo를 사용하여 <5>클래식 토큰을 생성합니다." } diff --git a/upstream/locales/zh/plugin__pipelines-console-plugin.json b/upstream/locales/zh/plugin__pipelines-console-plugin.json index fe7e5e7f..93a39178 100644 --- a/upstream/locales/zh/plugin__pipelines-console-plugin.json +++ b/upstream/locales/zh/plugin__pipelines-console-plugin.json @@ -1,5 +1,5 @@ { - "{{assignees}} Assigned": "分配于:{{assignees}}", + "{{assignees}} Assigned": "{{assignees}} 已分配", "{{count}} annotation": "{{count}} 注解", "{{count}} annotation_plural": "{{count}} 注解", "{{count}} day": "{{count}} 天", @@ -74,7 +74,7 @@ "Approvers": "批准者", "Archived": "archiveed", "Archived in Tekton results": "Tekton Results 中的归档", - "Are you sure you want to approve": "您确定要取消吗?", + "Are you sure you want to approve": "您确定要批准", "Are you sure you want to remove {{taskName}}?": "您确定要删除 {{taskName}}?", "Are you sure you want to remove <1>{{selection}} from <4>{{pipelineName}}?": "您确定要从 <4>{{pipelineName}} 中删除 <1>{{selection}} 吗?", "Authentication type": "身份验证类型", @@ -92,6 +92,7 @@ "Cancelling": "取消", "Cannot be longer than {{characterCount}} characters.": "不能超过 {{characterCount}} 个字符。", "Categories": "类别", + "Checking authorization...": "检查授权...", "Checks: Read & Write": "检查:读和写", "Click": "点击", "Click {{submit}} to save changes or {{reset}} to cancel changes.": "请点{{submit}}保存更改或{{reset}}取消更改。", @@ -137,12 +138,12 @@ "CustomRun": "CustomRun", "CustomRuns": "CustomRuns", "Data is incomplete. To see the full view, please enable ": "数据不完整。要查看完整视图,请启用 ", - "Data source": "Kafka 源", + "Data source": "数据源", "Decrement": "减量", "Default value": "默认值", - "Delete {{resourceKind}}": "删除 {{resourceKind}} ", - "Delete Pipeline": "删除 Pipeline", - "Delete PipelineRun": "删除 PipelineRun。", + "Delete {{resourceKind}}": "删除 {{resourceKind}}", + "Delete Pipeline": "删除管道", + "Delete PipelineRun": "删除 PipelineRun", "Delete task": "删除任务", "Description": "描述", "Designate provider to be authenticated.": "指定要经过身份验证的供应商。", @@ -176,7 +177,7 @@ "Enter name of application": "输入应用程序的名称", "Error": "错误", "Error connecting to event stream": "连接到事件流时出错", - "Error connecting to event stream: { error }": "连接到事件流时出错: { error }", + "Error connecting to event stream: { error }": "连接到事件流时出错:{ error }", "Error downloading logs.": "下载日志出错。", "Error loading - {{placeholder}}": "错误加载 - {{placeholder}}", "Error loading {{desc}}": "错误加载 {{desc}}", @@ -193,7 +194,13 @@ "Events triggering the webhook: ": "触发 Webhook 的事件: ", "Expand": "扩展", "Failed": "失败", + "Failed to load average duration data": "平均持续时间数据失败", + "Failed to load duration data": "加载持续时间数据失败", + "Failed to load pipeline run status data": "加载管道运行状态数据失败", + "Failed to load pipeline runs list": "加载管道运行列表失败", + "Failed to load pipeline runs number data": "加载管道运行数量数据失败", "Failed to load Tasks. {{error}}": "加载任务失败。{{error}}", + "Failed to load total runs data": "加载总运行数据失败", "Failure - check logs for details.": "失败 - 查看日志详情。", "Failure on task {{taskName}} - check logs for details.": "任务 {{taskName}} 失败 - 检查日志详情。", "File contains non-printable characters. Preview is not available.": "文件包含不可打印的字符。无法使用预览。", @@ -220,6 +227,7 @@ "GitHub application name": "GitHub 应用程序名称", "Go to Admin Approvals tab": "进入 Admin Approvals 选项卡", "Go to Approvals tab": "进入 Approvals 选项卡", + "Group": "组", "Hide credential options": "隐藏凭证选项", "Hide variables": "隐藏变量", "Hide VolumeClaimTemplate options": "隐藏卷声明模板选项", @@ -261,7 +269,7 @@ "Last run duration": "最新运行的持续时间", "Last run status": "最后运行状态", "Last run time": "最后运行时间", - "Last weeks": "最后 周", + "Last week": "最后 周", "Last year": "上年", "Learn more": "了解更多", "less than a sec": "小于一秒", @@ -283,6 +291,7 @@ "Missing resources": "缺少资源", "Missing workspaces": "缺少工作区", "More info": "更多信息", + "Multicluster Pipeline Run": "多集群管道运行", "Must define at least one task.": "必须至少定义一个任务。", "Name": "名称", "Name must consist of lower-case letters, numbers and hyphens. It must start with a letter and end with a letter or number.": "名称必须由小写字母、数字和连字符组成。且需要以字母或数字开头。", @@ -293,7 +302,7 @@ "No {{resourceName}} results available due to failure": "由于失败,没有 {{resourceName}} 结果可用", "No {{resourceType}} resource": "没有 {{resourceType}} 资源", "No ApprovalTasks found": "未找到 ApprovalTasks", - "No approvers": "批准者", + "No approvers": "没有批准者", "No default StorageClass": "没有默认的存储类", "No display name": "没有显示名称", "No events": "没有事件", @@ -315,7 +324,7 @@ "No secrets found": "未找到 secret", "No selector": "没有选择器", "No task runs found": "未找到任务运行", - "No TaskRuns found": "未找到任务运行", + "No TaskRuns found": "未找到 TaskRuns", "No tasks": "没有任务", "No Tasks found": "没有找到任务", "No when expressions are associated with this task.": "没有与这个任务关联的 when 表达式。", @@ -330,7 +339,7 @@ "Not found": "没有找到", "Number of {{sizeUnit}}": "{{sizeUnit}} 数", "Number of PipelineRuns": "管道运行数量", - "OK": "OK", + "OK": "确定", "Older events are not stored.": "旧事件不会存储。", "Only showing resources for this type ({{resourceType}}).": "只显示此类型({{resourceType}})的资源。", "Only update this task's version if you'd like to replace all of its references in the namespace.": "如果您想替换命名空间中的所有引用,则只更新此任务的版本。", @@ -354,8 +363,8 @@ "Password or token for Git authentication. Required if a ca.crt or .gitconfig file is not specified.": "Git 身份验证的密码或令牌。在没有指定 ca.crt 或 .gitconfig 文件时需要。", "Pause event streaming": "暂停事件流", "Pending": "待处理", - "Per Pipeline": "管道", - "Per Repository": "Git 仓库", + "Per Pipeline": "每个 Pipeline", + "Per Repository": "每个软件仓库", "Permission denied": "权限已拒绝", "Permissions to the mounted drive": "挂载驱动器的权限", "Permissions to the mounted drive.": "挂载驱动器的权限。", @@ -374,9 +383,10 @@ "PipelineRun failed to start": "管道运行启动失败", "PipelineRun has been {{state}}": "pipelinerun has been {{state}}", "PipelineRun has timed out": "PipelineRun 已超时", + "PipelineRun is waiting to be admitted to a worker cluster": "PipelineRun 等待接受到 worker 集群", "PipelineRun name": "管道运行名称", "PipelineRun not started yet": "管道运行尚未启动", - "PipelineRun status": "管道运行名称", + "PipelineRun status": "PipelineRun 状态", "PipelineRun Status shows the % of PipelineRuns for various status like \"Succeeded\", \"Failed\", \"Running\", \"Cancelled\" and \"Others\". Here, Others includes statuses like \"Started\", \"CreateRunFailed\", \"PipelineRunTimeout\"": "PipelineRun Status 显示 PipelineRuns 的%,表示各种状态,如 \"Succeeded\", \"Failed\", \"Running\", \"Cancelled\" 和 \"Others\"。Here 包括状态,如 \"Started\", \"CreateRunFailed\", \"PipelineRunTimeout\"", "PipelineRun status shows the % of PipelineRuns for various statuses like \"Succeeded\", \"Failed\" and \"Cancelled\".": "PipelineRun 状态显示 PipelineRuns 的%,表示各种状态,如 \"Succeeded\", \"Failed\" 和 \"Cancelled\"。", "PipelineRuns": "管道运行", @@ -445,14 +455,14 @@ "run{{plural}} in other namespaces.": "在其他命名空间中运行{{plural}}。", "run{{plural}}.": "运行", "Running": "运行", - "Runs in pipelines": "Pipelines 1.5 中的配置集", - "Runs in repositories": "Helm 仓库", + "Runs in pipelines": "在管道中运行", + "Runs in repositories": "在存储库中运行", "Samples": "样本", "Save": "保存", "SBOM": "SBOM", "Schema": "模式", "Search by pipeline name": "按管道名称搜索", - "Search by repository name": "Chart 仓库名称", + "Search by repository name": "根据仓库名称搜索", "Sec": "秒", "Secret": "Secret", "Secret name": "Secret 名", @@ -492,8 +502,8 @@ "Show YAML": "显示 YAML", "Showing {{count}} event": "显示 {{count}} 个事件", "Showing {{count}} event_plural": "显示 {{count}} 个事件", - "Showing most recent {{count}} event": "显示最新的 {{count}} 个 event_one", - "Showing most recent {{count}} event_plural": "显示最新的 {{count}} 个 event_one", + "Showing most recent {{count}} event": "显示最新的 {{count}} 事件", + "Showing most recent {{count}} event_plural": "显示最新的 {{count}} 事件", "Signed": "已签名", "Single user (RWO)": "单一用户(RWO)", "Size": "大小", @@ -529,14 +539,14 @@ "Tag": "标签", "Tags": "标签", "Task": "任务", - "Task approval required": "需要批准", + "Task approval required": "需要任务批准", "Task details": "任务详情", "Task does not exist": "任务不存在", "Task status": "任务状态", "Task version will be updated across all instances": "任务版本将在所有实例中更新", "TaskRun": "任务运行", - "TaskRun details": "taskrun delete", - "TaskRun name": "任务运行日志", + "TaskRun details": "TaskRun 详情", + "TaskRun name": "TaskRun 名称", "TaskRuns": "任务运行", "Tasks": "任务", "TaskSpec or TaskRef must be provided.": "必须提供 TaskSpec 或 TaskRef。", @@ -552,6 +562,7 @@ "The base server url (e.g. https://quay.io/)": "基本服务器 url(如 https://quay.io/)", "The following secrets are available for all pipelines in this namespace to authenticate to the specified Git server or Image registry:": "以下 secret 可用于此命名空间中的所有管道,以便与指定的 Git 服务器或镜像 registry 进行身份验证:", "The following variables can be used in the Parameters or when created new Resources.": "以下变量可用于参数,也可以在创建新资源时使用。", + "The multi-cluster connection is unavailable. Logs and status may be delayed until connection is restored.": "多集群连接不可用。日志和状态可能会在连接恢复前延迟。", "The secret is required to set the Build status and to attach the webhook to the Git repository.": "需要该 secret 来设置 Build 状态,并将 webhook 附加到 Git 仓库。", "There was an unknown error": "有一个未知错误", "This action will delete resource from k8s but still the resource can be fetched from Tekton Results": "此操作将从 k8s 中删除资源,但仍然可以从 Tekton Results 中获取资源", @@ -566,8 +577,8 @@ "Timeout must be greater than or equal to 0.": "超时值必须大于或等于 1。", "Timeouts": "超时", "Total duration": "总持续时间", - "Total Pipelineruns": "列出 PipelineRuns。", - "Total runs": "风险总数", + "Total Pipelineruns": "Pipelineruns 总数", + "Total runs": "总计运行", "TriggerBinding": "触发绑定", "TriggerBindings": "列出触发绑定", "Triggered by": "触发者", @@ -577,7 +588,13 @@ "Try it": "试用", "Unable to detect Event listener URL": "无法检测事件监听器 URL", "Unable to find repository": "无法找到仓库", + "Unable to load average duration": "无法平均负载持续时间", + "Unable to load duration": "无法加载持续时间", "Unable to load Pipeline": "无法加载管道", + "Unable to load pipeline runs": "无法加载管道运行", + "Unable to load pipeline runs list": "无法加载管道运行列表", + "Unable to load PipelineRun status": "无法加载 PipelineRun 状态", + "Unable to load total runs": "无法加载总运行", "Unable to locate any tasks.": "无法找到任何任务。", "Unique name of the new secret.": "新 secret 的唯一名称。", "Unknown": "未知", @@ -592,6 +609,7 @@ "Use this format when you reference variables in this form: <2>$(": "在引用变量时使用此格式:<2>$(", "Use your Bitbucket App password. Use this <2>link to create a token with <5>Read and Write scopes in <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks.": "使用您的 Bitbucket App 密码。使用此<2>链接 在 <8>Account, Workspace membership, Projects, Issues, Pull requests and Webhooks 中创建一个带有 <5>Read and Write 范围的令牌。", "Use your Gitlab Personal access token. Use this <2>link to create a token with <5>api scope. Select the role as <8>Maintainer/Owner. Give your token an expiration i.e 30d.": "使用 Gitlab 个人访问令牌。使用此<2>链接创建具有 <5>api 范围的令牌。将角色选择为 <8>Maintainer/Owner。为您的令牌指定一个过期时间,例如 30d。", + "User": "用户", "User not an approver": "用户没有批准者", "Username": "用户名", "Value": "值", @@ -635,5 +653,5 @@ "Zoom in": "放大", "Zoom out": "缩小", "Use your Git Personal token. Create a token with repo, public_repo & admin:repo_hook scopes and give your token an expiration, i.e 30d.": "使用您的 Git 个人令牌。使用 repo、public_repo 和 admin:repo 创建一个令牌", - "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "使用您的 GitHub 个人访问令牌。使用这个<2>链接 创建一个带有 <7>repo 和 <10>admin:repo_hook 范围的 <5>classic 令牌,并为您的令牌指定一个过期时间,如 30d。" -} + "Use your GitHub Personal token. Use this <2>link to create a <5>classic token with <7>repo & <10>admin:repo_hook scopes and give your token an expiration, i.e 30d.": "使用您的 GitHub 个人令牌。使用这个 <2>link 创建一个 <5>classic 令牌,带有 <7>repo & <10>admin:repo" +} \ No newline at end of file diff --git a/upstream/package.json b/upstream/package.json index 27a51b42..f7df7beb 100644 --- a/upstream/package.json +++ b/upstream/package.json @@ -4,23 +4,28 @@ "private": true, "repository": "git@github.com:openshift-pipelines/console-plugin.git", "license": "Apache-2.0", + "packageManager": "yarn@4.6.0", + "workspaces": [ + "integration-tests" + ], "scripts": { "clean": "rm -rf dist", - "build": "yarn clean && NODE_ENV=production NODE_OPTIONS=--max-old-space-size=4096 yarn ts-node node_modules/.bin/webpack", - "build-dev": "yarn clean && NODE_OPTIONS=--max-old-space-size=4096 yarn ts-node node_modules/.bin/webpack", - "start": "yarn ts-node node_modules/.bin/webpack serve", + "webpack": "yarn exec webpack", + "build": "yarn clean && NODE_ENV=production NODE_OPTIONS=--max-old-space-size=4096 yarn webpack", + "build-dev": "yarn clean && NODE_OPTIONS=--max-old-space-size=4096 yarn webpack", + "start": "yarn webpack serve", "start-console": "./start-console.sh", "i18n": "./i18n-scripts/build-i18n.sh && node ./i18n-scripts/set-english-defaults.js", "ts-node": "ts-node -O '{\"module\":\"commonjs\"}'", "lint": "eslint ./src ./integration-tests --fix && stylelint \"src/**/*.css\" --allow-empty-input --fix", - "gherkin-lint": "./node_modules/.bin/gherkin-lint -c ./integration-tests/.gherkin-lintrc ./integration-tests/features", - "test-cypress": "cd integration-tests && cypress open --env openshift=true", - "test-cypress-headless": "cd integration-tests && node --max-old-space-size=4096 ../node_modules/.bin/cypress run --env openshift=true --browser ${BRIDGE_E2E_BROWSER_NAME:=electron} --headless cypress:cli,cypress:server:specs --spec \"cypress/features/pipelines/create-from-add-options.feature\" \"cypress/features/pipelines/pipeline-overview.feature\" \"cypress/features/pipelines/create-from-builder-page.feature\" \"cypress/features/pipelines/data-source-filter.feature\" \"cypress/features/pipelines/pipeline-metrics.feature\" ", + "gherkin-lint": "yarn gherkin-lint -c ./integration-tests/.gherkin-lintrc ./integration-tests/features", + "test-cypress": "yarn exec cypress open --env openshift=true --project integration-tests", + "test-cypress-headless": "NODE_OPTIONS=--max-old-space-size=4096 yarn exec cypress run --env openshift=true --browser ${BRIDGE_E2E_BROWSER_NAME:-electron} --headless --project integration-tests --spec \"integration-tests/cypress/features/pipelines/create-from-add-options.feature\" \"integration-tests/cypress/features/pipelines/pipeline-overview.feature\" \"integration-tests/cypress/features/pipelines/create-from-builder-page.feature\" \"integration-tests/cypress/features/pipelines/data-source-filter.feature\" \"integration-tests/cypress/features/pipelines/pipeline-metrics.feature\"", "cypress-merge": "mochawesome-merge ./integration-tests/screenshots/cypress_report*.json > ./integration-tests/screenshots/cypress.json", "cypress-generate": "marge -o ./integration-tests/screenshots/ -f cypress-report -t 'OpenShift Console Plugin Template Cypress Test Results' -p 'OpenShift Cypress Plugin Template Test Results' --showPassed false --assetsDir ./integration-tests/screenshots/cypress/assets ./integration-tests/screenshots/cypress.json", "cypress-postreport": "yarn cypress-merge && yarn cypress-generate", "generate-types": "openapi-typescript openapi/spec.yml --output src/types/api.ts", - "dev": "NODE_ENV=development NODE_OPTIONS=--max-old-space-size=8192 rm -rf dist && yarn ts-node ./node_modules/.bin/webpack serve --progress", + "dev": "NODE_ENV=development rm -rf dist && NODE_OPTIONS=--max-old-space-size=8192 yarn webpack serve --progress", "test": "jest", "memsource-upload": "./i18n-scripts/memsource-upload.sh", "memsource-download": "./i18n-scripts/memsource-download.sh", @@ -69,7 +74,7 @@ "cache-loader": "^4.1.0", "copy-webpack-plugin": "^13.0.0", "css-loader": "^6.7.1", - "cypress": "^13.10.0", + "cypress": "^13.17.0", "cypress-axe": "^0.12.0", "cypress-file-upload": "^5.0.8", "cypress-multi-reporters": "^1.6.2", @@ -124,8 +129,9 @@ "ts-loader": "^9.3.1", "ts-node": "^10.9.1", "typescript": "^4.7.4", + "webpack": "5.94.0", "webpack-cli": "^5.1.4", - "webpack-dev-server": "^5.2.0", + "webpack-dev-server": "^5.2.3", "yup": "1.6.1" }, "consolePlugin": { @@ -158,7 +164,8 @@ "taskDetails": "./components/tasks", "pacComponent": "./components/pac/", "yamlTemplates": "./components/templates", - "topology": "./components/topology" + "topology": "./components/topology", + "pipelinesOverviewFiltersReducer": "./redux/reducers/pipelines-overview-filters" }, "dependencies": { "@console/pluginAPI": ">=4.15" @@ -171,13 +178,17 @@ "classnames": "^2.3.2", "gherkin-lint": "^4.1.3", "i18next-conv": "^15.1.1", - "lodash-es": "^4.17.21", + "lodash-es": "^4.17.23", "micromatch": "4.0.8", "path-browserify": "^1.0.1", "stream-browserify": "^3.0.0", "url": "^0.11.4" }, "resolutions": { - "webpack": "5.94.0" + "webpack": "5.94.0", + "@types/d3-dispatch": "3.0.6", + "@types/d3-selection": "3.0.10", + "lodash": "4.17.23", + "lodash-es": "4.17.23" } } diff --git a/upstream/scripts/build_container.sh b/upstream/scripts/build_container.sh index 595787e0..c2dd4c61 100755 --- a/upstream/scripts/build_container.sh +++ b/upstream/scripts/build_container.sh @@ -20,7 +20,8 @@ if [ "$SUPPORT_MULTI_ARCH" = "true" ]; then # WARNING: with this approach, if we use platform naive package may lead to a malfunction # however in this project, the code will be executed on a browser, # hence assuming no impact on this approach - yarn install --frozen-lockfile + corepack enable && corepack prepare yarn@4.6.0 --activate + yarn install --immutable yarn build docker buildx build --push \ diff --git a/upstream/src/components/Loading.tsx b/upstream/src/components/Loading.tsx index 1e51251a..18afce8b 100644 --- a/upstream/src/components/Loading.tsx +++ b/upstream/src/components/Loading.tsx @@ -1,23 +1,28 @@ import * as React from 'react'; -import classNames from 'classnames'; +import { Bullseye, Spinner, SpinnerProps } from '@patternfly/react-core'; type LoadingProps = { className?: string; + isInline?: boolean; + size?: SpinnerProps["size"]; + ariaLabel?: string; }; -export const Loading: React.FC = ({ className }) => ( -
= ({ className, isInline, size, ariaLabel }) => ( + -
-
-
-
+ + ); Loading.displayName = 'Loading'; export const LoadingInline: React.FC = () => ( - + ); LoadingInline.displayName = 'LoadingInline'; diff --git a/upstream/src/components/approval-tasks/ApprovalRow.tsx b/upstream/src/components/approval-tasks/ApprovalRow.tsx index c51fe716..dfef1836 100644 --- a/upstream/src/components/approval-tasks/ApprovalRow.tsx +++ b/upstream/src/components/approval-tasks/ApprovalRow.tsx @@ -38,7 +38,7 @@ const ApprovalRow: React.FC< const { metadata: { name, namespace, creationTimestamp }, spec: { description, numberOfApprovalsRequired }, - status: { approvers, approversResponse }, + status: { approvers, approvalsReceived }, } = obj; const translatedApproversCount = t('{{assignees}} Assigned', { @@ -104,7 +104,7 @@ const ApprovalRow: React.FC< {getApprovalStatusInfo(approvalTaskStatus).message}{' '} {`(${ - approversResponse?.length || 0 + approvalsReceived || 0 }/${numberOfApprovalsRequired || 0})`} diff --git a/upstream/src/components/approval-tasks/ApprovalTaskActionDropdown.tsx b/upstream/src/components/approval-tasks/ApprovalTaskActionDropdown.tsx index 99f18c78..dacba495 100644 --- a/upstream/src/components/approval-tasks/ApprovalTaskActionDropdown.tsx +++ b/upstream/src/components/approval-tasks/ApprovalTaskActionDropdown.tsx @@ -7,6 +7,7 @@ import { DropdownList, MenuToggle, MenuToggleElement, + Spinner, Tooltip, } from '@patternfly/react-core'; import { KEBAB_BUTTON_ID } from '../../consts'; @@ -18,7 +19,8 @@ import { import { ApprovalTaskModel } from '../../models'; import { approvalModal } from './modal'; import { ApproverStatusResponse } from '../../types'; -import { useGetActiveUser } from '../hooks/hooks'; +import { useActiveUserWithUpdate } from '../hooks/hooks'; +import { isUserAuthorizedForApproval } from '../utils/approval-group-utils'; type ApprovalTaskActionDropdownProps = { approvalTask: ApprovalTaskKind; @@ -29,14 +31,16 @@ const ApprovalTaskActionDropdown: React.FC = ({ approvalTask, pipelineRun, }) => { - const currentUser = useGetActiveUser(); + const { currentUser, updateUserInfo } = useActiveUserWithUpdate(); const launchModal = useModal(); const { t } = useTranslation('plugin__pipelines-console-plugin'); const { metadata: { name, namespace }, - status: { approvers, state }, + status: { state }, + spec: { approvers }, } = approvalTask; const [isOpen, setIsOpen] = React.useState(false); + const [isAuthorized, setIsAuthorized] = React.useState(null); const onToggle = () => { setIsOpen(!isOpen); }; @@ -47,7 +51,8 @@ const ApprovalTaskActionDropdown: React.FC = ({ launchModal(approvalModal, { resource: approvalTask, pipelineRunName: pipelineRun?.metadata?.name, - userName: currentUser, + userName: currentUser?.username, + currentUser: currentUser, type: 'approve', }); }; @@ -56,7 +61,8 @@ const ApprovalTaskActionDropdown: React.FC = ({ launchModal(approvalModal, { resource: approvalTask, pipelineRunName: pipelineRun?.metadata?.name, - userName: currentUser, + userName: currentUser?.username, + currentUser: currentUser, type: 'reject', }); }; @@ -69,10 +75,36 @@ const ApprovalTaskActionDropdown: React.FC = ({ namespace, }); + // Check group-based authorization + React.useEffect(() => { + const checkAuthorization = async () => { + if (currentUser && approvers) { + try { + if (currentUser?.username) { + const authorized = await isUserAuthorizedForApproval( + currentUser.username, + approvers, + currentUser, + updateUserInfo, + ); + setIsAuthorized(authorized); + } + } catch (error) { + console.error('Error checking group authorization:', error); + setIsAuthorized(false); + } + } else { + setIsAuthorized(false); + } + }; + checkAuthorization(); + }, [currentUser, approvers]); + const isDropdownDisabled = !canApproveAndRejectResource || state !== ApproverStatusResponse.Pending || - !approvers?.find((approver) => approver === currentUser); + isAuthorized === null || // Still loading + !isAuthorized; // Not authorized (includes both direct user and group checks) const tooltipContent = () => { if (!canApproveAndRejectResource) { @@ -84,7 +116,18 @@ const ApprovalTaskActionDropdown: React.FC = ({ if (state !== ApproverStatusResponse.Pending) { return t(`PipelineRun has been {{state}}`, { state }); } - if (!approvers?.find((approver) => approver === currentUser)) { + if (isAuthorized === null) { + return ( + ( + + ) + t('Checking authorization...') + ); + } + if (!isAuthorized) { return t('User not an approver'); } return t('Permission denied'); diff --git a/upstream/src/components/approval-tasks/ApprovalTasksList.tsx b/upstream/src/components/approval-tasks/ApprovalTasksList.tsx index 95a707d2..60e316ed 100644 --- a/upstream/src/components/approval-tasks/ApprovalTasksList.tsx +++ b/upstream/src/components/approval-tasks/ApprovalTasksList.tsx @@ -34,7 +34,7 @@ const pipelineApprovalFilterReducer = (obj: ApprovalTaskKind, pipelineRuns) => { ) { return ApprovalStatus.RequestSent; } - return status || ApprovalStatus.Unknown; + return status || ApprovalStatus.Unknown; }; const ApprovalTasksList: React.FC = ({ diff --git a/upstream/src/components/approval-tasks/__tests__/approval-group-utils.spec.ts b/upstream/src/components/approval-tasks/__tests__/approval-group-utils.spec.ts new file mode 100644 index 00000000..5f7dbf6a --- /dev/null +++ b/upstream/src/components/approval-tasks/__tests__/approval-group-utils.spec.ts @@ -0,0 +1,279 @@ +import { k8sGet } from '@openshift-console/dynamic-plugin-sdk'; +import { + GroupKind, + isUserAuthorizedForApproval, +} from '../../utils/approval-group-utils'; + +// Mock the k8sGet function +jest.mock('@openshift-console/dynamic-plugin-sdk', () => ({ + k8sGet: jest.fn(), +})); + +const mockK8sGet = k8sGet as jest.MockedFunction; + +// Mock Group data reflecting real API structure +const createMockGroup = (name: string, users: string[]): GroupKind => ({ + metadata: { + name, + }, + users, +}); + +describe('approval-group-utils', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + describe('isUserAuthorizedForApproval', () => { + it('should authorize user with direct assignment', async () => { + const mockCallback = jest.fn(); + const approvers = [ + { + input: 'pending' as any, + name: 'approver-user-1', + type: 'User' as const, + }, + { + input: 'pending' as any, + name: 'approver-user-4', + type: 'User' as const, + }, + { + input: 'pending' as any, + name: 'test-apalit-group-1', + type: 'Group' as const, + }, + ]; + const result = await isUserAuthorizedForApproval( + 'approver-user-1', + approvers, + { username: 'approver-user-1', groups: [] } as any, + mockCallback, + ); + expect(result).toBe(true); + // Should not call k8sGet for direct user assignment + expect(mockK8sGet).not.toHaveBeenCalled(); + // Should not call callback for direct user assignment + expect(mockCallback).not.toHaveBeenCalled(); + }); + + it('should authorize user through group membership via k8s API', async () => { + const mockCallback = jest.fn(); + const userInfo = { username: 'tester3', groups: [] } as any; + mockK8sGet.mockResolvedValue( + createMockGroup('test-apalit-group-2', [ + 'approver-user-3', + 'tester3', + 'tester4', + ]), + ); + + const approvers = [ + { + input: 'pending' as any, + name: 'test-apalit-group-2', + type: 'Group' as const, + }, + ]; + const result = await isUserAuthorizedForApproval( + 'tester3', + approvers, + userInfo, + mockCallback, + ); + + expect(result).toBe(true); + expect(mockK8sGet).toHaveBeenCalledWith({ + model: expect.objectContaining({ + kind: 'Group', + plural: 'groups', + }), + name: 'test-apalit-group-2', + }); + // Should call callback to update user groups + expect(mockCallback).toHaveBeenCalledWith({ + username: 'tester3', + groups: ['test-apalit-group-2'], + }); + }); + + it('should authorize user through group membership via UserInfo.groups', async () => { + const mockCallback = jest.fn(); + const approvers = [ + { + input: 'pending' as any, + name: 'test-apalit-group-1', + type: 'Group' as const, + }, + ]; + const result = await isUserAuthorizedForApproval( + 'approver-user-1', + approvers, + { + username: 'approver-user-1', + groups: ['test-apalit-group-1', 'test-apalit-group-3'], + } as any, + mockCallback, + ); + + expect(result).toBe(true); + // Should not call k8sGet when group is in UserInfo.groups + expect(mockK8sGet).not.toHaveBeenCalled(); + // Should not call callback when group already in UserInfo.groups + expect(mockCallback).not.toHaveBeenCalled(); + }); + + it('should deny user not in group', async () => { + const mockCallback = jest.fn(); + mockK8sGet.mockResolvedValue( + createMockGroup('test-apalit-group-2', [ + 'approver-user-3', + 'tester3', + 'tester4', + ]), + ); + + const approvers = [ + { + input: 'pending' as any, + name: 'test-apalit-group-2', + type: 'Group' as const, + }, + ]; + const result = await isUserAuthorizedForApproval( + 'unauthorized-user', + approvers, + { username: 'unauthorized-user', groups: [] } as any, + mockCallback, + ); + + expect(result).toBe(false); + // Should not call callback when user is not in group + expect(mockCallback).not.toHaveBeenCalled(); + }); + + it('should handle group fetch errors gracefully', async () => { + const mockCallback = jest.fn(); + mockK8sGet.mockRejectedValue(new Error('Group not found')); + + const approvers = [ + { + input: 'pending' as any, + name: 'non-existent-group', + type: 'Group' as const, + }, + ]; + const result = await isUserAuthorizedForApproval( + 'approver-user-1', + approvers, + { username: 'approver-user-1', groups: [] } as any, + mockCallback, + ); + + expect(result).toBe(false); + // Should not call callback when group fetch fails + expect(mockCallback).not.toHaveBeenCalled(); + }); + + it('should work with mixed User and Group approvers from real ApprovalTask', async () => { + const mockCallback = jest.fn(); + const userInfo = { username: 'tester3', groups: [] } as any; + // Simulate multiple groups with different users + mockK8sGet + .mockResolvedValueOnce( + createMockGroup('test-apalit-group-1', ['user1', 'user2']), + ) + .mockResolvedValueOnce( + createMockGroup('test-apalit-group-2', [ + 'approver-user-3', + 'tester3', + 'tester4', + ]), + ); + + const approvers = [ + { + input: 'pending' as any, + name: 'test-apalit-group-1', + type: 'Group' as const, + }, + { + input: 'pending' as any, + name: 'test-apalit-group-2', + type: 'Group' as const, + }, + { + input: 'pending' as any, + name: 'approver-user-1', + type: 'User' as const, + }, + { + input: 'reject' as any, + name: 'approver-user-4', + type: 'User' as const, + message: 'this is a reject', + }, + ]; + + const result = await isUserAuthorizedForApproval( + 'tester3', + approvers, + userInfo, + mockCallback, + ); + + expect(result).toBe(true); + // Should check groups in order until finding a match + expect(mockK8sGet).toHaveBeenCalledTimes(2); + // Should call callback with updated groups when user found in second group + expect(mockCallback).toHaveBeenCalledWith({ + username: 'tester3', + groups: ['test-apalit-group-2'], + }); + }); + + it('should handle empty approvers list', async () => { + const mockCallback = jest.fn(); + const result = await isUserAuthorizedForApproval( + 'approver-user-1', + [], + { + username: 'approver-user-1', + groups: [], + } as any, + mockCallback, + ); + expect(result).toBe(false); + // Should not call callback when approvers list is empty + expect(mockCallback).not.toHaveBeenCalled(); + }); + + it('should handle missing current user', async () => { + const mockCallback = jest.fn(); + const approvers = [ + { + input: 'pending' as any, + name: 'approver-user-1', + type: 'User' as const, + }, + { + input: 'pending' as any, + name: 'test-apalit-group-1', + type: 'Group' as const, + }, + ]; + const result = await isUserAuthorizedForApproval( + '', + approvers, + { + username: '', + groups: [], + } as any, + mockCallback, + ); + expect(result).toBe(false); + // Should not call callback when user is missing + expect(mockCallback).not.toHaveBeenCalled(); + }); + }); +}); diff --git a/upstream/src/components/approval-tasks/approval-details/ApproverList.tsx b/upstream/src/components/approval-tasks/approval-details/ApproverList.tsx index 91b9d40e..a5cb62e1 100644 --- a/upstream/src/components/approval-tasks/approval-details/ApproverList.tsx +++ b/upstream/src/components/approval-tasks/approval-details/ApproverList.tsx @@ -4,34 +4,35 @@ import { useTranslation } from 'react-i18next'; import { Label, LabelGroup } from '@patternfly/react-core'; import { ApprovalTaskKind, - ApproverResponse, - ApproverStatusResponse, + ApproverInput, + ApprovalStatus, } from '../../../types'; import { ApprovalStatusIcon } from '../../pipeline-topology/StatusIcons'; import './ApproverList.scss'; +import { Approver } from '../../../types/approver'; export interface ApproverListProps { obj: ApprovalTaskKind; } export interface ApproverBadgeProps { - approver: string; - status: ApproverResponse; + approver: Approver; + status: ApproverInput; } const ApproverBadge: React.FC = ({ approver, status }) => { + const { t } = useTranslation('plugin__pipelines-console-plugin'); const badgeClass = cx({ - 'pipelines-approval-approver__wait': - status === ApproverStatusResponse.Pending, + 'pipelines-approval-approver__wait': status === ApprovalStatus.RequestSent, 'pipelines-approval-approver__approved': - status !== ApproverStatusResponse.Pending, + status !== ApprovalStatus.RequestSent, }); const color = - status === ApproverStatusResponse.Pending + status === ApprovalStatus.RequestSent ? 'orange' - : status === ApproverStatusResponse.Accepted + : status === ApprovalStatus.Accepted ? 'green' : 'red'; @@ -47,7 +48,9 @@ const ApproverBadge: React.FC = ({ approver, status }) => {
} > - {approver} + {approver.type === 'Group' + ? t('Group') + ': ' + approver.name.replace('group:', '') + : t('User') + ': ' + approver.name} ); }; @@ -55,22 +58,12 @@ const ApproverBadge: React.FC = ({ approver, status }) => { const ApproverListSection: React.FC = ({ obj }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); const { - status: { approvers, approversResponse }, + spec: { approvers }, } = obj; if (!approvers || approvers?.length === 0) { return

{t('No approvers')}

; } - const getApprovalStatusforApprovers = ( - approver: string, - ): ApproverResponse => { - return ( - approversResponse?.find( - (approvalStatus) => approvalStatus.name === approver, - )?.response ?? ApproverStatusResponse.Pending - ); - }; - return ( = ({ obj }) => { {approvers?.map((approver, idx) => ( ))} diff --git a/upstream/src/components/approval-tasks/approval-notification/pipeline-approval-context.tsx b/upstream/src/components/approval-tasks/approval-notification/pipeline-approval-context.tsx index 129c25ca..28b336c2 100644 --- a/upstream/src/components/approval-tasks/approval-notification/pipeline-approval-context.tsx +++ b/upstream/src/components/approval-tasks/approval-notification/pipeline-approval-context.tsx @@ -10,11 +10,16 @@ import { useK8sWatchResource, } from '@openshift-console/dynamic-plugin-sdk'; import ApprovalToastContent from './ApprovalToastContent'; -import { ApprovalStatus, ApprovalTaskKind } from '../../../types'; +import { + ApprovalStatus, + ApprovalTaskKind, + ApproverStatusResponse, +} from '../../../types'; import { ApprovalTaskModel } from '../../../models'; import { ApprovalLabels, ApprovalFields } from '../../../consts'; import { useToast } from '../../toast/useToast'; -import { useGetActiveUser } from '../../hooks/hooks'; +import { useActiveUserWithUpdate } from '../../hooks/hooks'; +import { isUserAuthorizedForApproval } from '../../utils/approval-group-utils'; const getPipelineRunsofApprovals = ( approvalTasks: ApprovalTaskKind[], @@ -30,14 +35,6 @@ const getPipelineRunsofApprovals = ( return pipelineRuns; }; -const checkUserIsApprover = ( - approvalTask: ApprovalTaskKind, - username: string, -): boolean => { - const approverList = approvalTask?.status?.approvers ?? []; - return approverList?.includes(username); -}; - export const PipelineApprovalContext = React.createContext({}); export const PipelineApprovalContextProvider = PipelineApprovalContext.Provider; @@ -46,7 +43,7 @@ export const usePipelineApprovalToast = () => { const { t } = useTranslation('plugin__pipelines-console-plugin'); const { addToast, removeToast } = useToast(); const [namespace] = useActiveNamespace(); - const currentUser = useGetActiveUser(); + const { currentUser, updateUserInfo } = useActiveUserWithUpdate(); const [currentToasts, setCurrentToasts] = React.useState<{ [key: string]: { toastId: string }; }>({}); @@ -59,7 +56,6 @@ export const usePipelineApprovalToast = () => { }; const [approvalTasks] = useK8sWatchResource(approvalsResource); - React.useEffect(() => { if (currentToasts?.current?.toastId) { removeToast(currentToasts.current.toastId); @@ -69,79 +65,128 @@ export const usePipelineApprovalToast = () => { removeToast(currentToasts.other.toastId); setCurrentToasts((toasts) => ({ ...toasts, other: { toastId: '' } })); } - }, [approvalTasks, currentUser, t, addToast, removeToast]); + }, [approvalTasks, currentUser.username, t, addToast, removeToast]); React.useEffect(() => { - let toastID = ''; - const userApprovalTasksInWait = approvalTasks.filter( - (approvalTask) => - checkUserIsApprover(approvalTask, currentUser) && - approvalTask?.status?.state === ApprovalStatus.RequestSent, - ); + const processApprovalTasks = async () => { + let toastID = ''; - const [currentNsApprovalTasks, otherNsApprovalTasks]: [ - ApprovalTaskKind[], - ApprovalTaskKind[], - ] = userApprovalTasksInWait.reduce( - (acc, approvalTask) => { - approvalTask?.metadata?.namespace === namespace - ? acc[0].push(approvalTask) - : acc[1].push(approvalTask); - return acc; - }, - [[], []], - ); + // Filter approval tasks for current user with async group checking + const userApprovalTasksInWait = []; + for (const approvalTask of approvalTasks) { + if (approvalTask?.status?.state === ApprovalStatus.RequestSent) { + try { + const isApprover = await isUserAuthorizedForApproval( + currentUser.username, + approvalTask?.spec?.approvers, + currentUser, + updateUserInfo, + ); - if (currentNsApprovalTasks.length > 0) { - const uniquePipelineRuns = new Set( - getPipelineRunsofApprovals(currentNsApprovalTasks), - ).size; + // Check if user has already responded + const hasUserResponded = + approvalTask?.status?.approversResponse?.some((response) => { + // Check if user responded directly + if ( + response.type === 'User' && + response.name === currentUser.username + ) { + return true; + } + // Check if user responded as part of a group + if (response.type === 'Group' && response.groupMembers) { + return response.groupMembers.some( + (member) => + member.name === currentUser.username && + member.response !== ApproverStatusResponse.Pending, + ); + } + return false; + }); - if (uniquePipelineRuns > 0) { - toastID = addToast({ - variant: AlertVariant.custom, - title: t('Task approval required'), - content: ( - - ), - timeout: 25000, - dismissible: true, - }) as any; + if (isApprover && !hasUserResponded) { + userApprovalTasksInWait.push(approvalTask); + } + } catch (error) { + console.warn('Error checking user approval authorization:', error); + } + } } - setCurrentToasts((toasts) => ({ - ...toasts, - current: { toastId: toastID }, - })); - } - if (otherNsApprovalTasks.length > 0) { - const uniquePipelineRuns = new Set( - getPipelineRunsofApprovals(otherNsApprovalTasks), - ).size; + const [currentNsApprovalTasks, otherNsApprovalTasks]: [ + ApprovalTaskKind[], + ApprovalTaskKind[], + ] = userApprovalTasksInWait.reduce( + (acc, approvalTask) => { + approvalTask?.metadata?.namespace === namespace + ? acc[0].push(approvalTask) + : acc[1].push(approvalTask); + return acc; + }, + [[], []], + ); + + if (currentNsApprovalTasks.length > 0) { + const uniquePipelineRuns = new Set( + getPipelineRunsofApprovals(currentNsApprovalTasks), + ).size; - if (uniquePipelineRuns > 0) { - toastID = addToast({ - variant: AlertVariant.custom, - title: t('Task approval required'), - content: ( - - ), - timeout: 25000, - dismissible: true, - }); + if (uniquePipelineRuns > 0) { + toastID = addToast({ + variant: AlertVariant.custom, + title: t('Task approval required'), + content: ( + + ), + timeout: 25000, + dismissible: true, + }) as any; + } + setCurrentToasts((toasts) => ({ + ...toasts, + current: { toastId: toastID }, + })); } - setCurrentToasts((toasts) => ({ - ...toasts, - other: { toastId: toastID }, - })); - } - }, [approvalTasks, currentUser, t, addToast, removeToast]); + + if (otherNsApprovalTasks.length > 0) { + const uniquePipelineRuns = new Set( + getPipelineRunsofApprovals(otherNsApprovalTasks), + ).size; + + if (uniquePipelineRuns > 0) { + toastID = addToast({ + variant: AlertVariant.custom, + title: t('Task approval required'), + content: ( + + ), + timeout: 25000, + dismissible: true, + }); + } + setCurrentToasts((toasts) => ({ + ...toasts, + other: { toastId: toastID }, + })); + } + }; + + processApprovalTasks(); + }, [ + approvalTasks, + currentUser.username, + namespace, + t, + addToast, + devconsolePath, + adminconsolePath, + ]); }; diff --git a/upstream/src/components/approval-tasks/modal/Approval.tsx b/upstream/src/components/approval-tasks/modal/Approval.tsx index e03f9542..0e6cc51d 100644 --- a/upstream/src/components/approval-tasks/modal/Approval.tsx +++ b/upstream/src/components/approval-tasks/modal/Approval.tsx @@ -2,7 +2,11 @@ import * as React from 'react'; import { useTranslation } from 'react-i18next'; import { Formik, FormikValues, FormikHelpers } from 'formik'; import { Link } from 'react-router-dom-v5-compat'; -import { ResourceIcon, k8sPatch } from '@openshift-console/dynamic-plugin-sdk'; +import { + ResourceIcon, + UserInfo, + k8sPatch, +} from '@openshift-console/dynamic-plugin-sdk'; import { ApprovalTaskModel, PipelineRunModel } from '../../../models'; import { getReferenceForModel } from '../../pipelines-overview/utils'; import { ApprovalStatus, ApprovalTaskKind } from '../../../types'; @@ -11,11 +15,13 @@ import { ModalWrapper } from '../../modals/modal'; import ApprovalModal from './ApprovalModal'; import './ApprovalModal.scss'; +import { Approver, UserApprover } from 'src/types/approver'; type ApprovalProps = { resource: ApprovalTaskKind; pipelineRunName?: string; userName?: string; + currentUser: UserInfo; type: string; }; @@ -24,6 +30,7 @@ const Approval: ModalComponent = ({ resource, pipelineRunName, userName, + currentUser, type, }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); @@ -36,12 +43,19 @@ const Approval: ModalComponent = ({ reason: '', }; + const individualUser = (approverDetails: Approver[], userName: string) => { + return approverDetails.some( + (approver) => approver.name === userName && approver.type === 'User', + ); + }; + const handleSubmit = ( values: FormikValues, action: FormikHelpers, ) => { const updatedApprovers = approvers.map((approver) => { - if (approver.name === userName) { + // Update approver for User type + if (approver.name === userName && approver.type === 'User') { return { ...approver, input: @@ -50,6 +64,62 @@ const Approval: ModalComponent = ({ : ApprovalStatus.Rejected, ...(values.reason && { message: values.reason }), }; + } else if ( + // Update approver for Group type + approver.type === 'Group' && + !individualUser(approvers, userName) + ) { + // Check if the current user belongs to this specific group + const userBelongsToThisGroup = currentUser.groups?.includes( + approver.name, + ); + + if (userBelongsToThisGroup) { + const newUser: UserApprover = { + name: userName, + input: + type === 'approve' + ? ApprovalStatus.Accepted + : ApprovalStatus.Rejected, + ...(values.reason && { message: values.reason }), + }; + + // check if current user already exists in this group's users array + const userExists = approver.users?.some( + (user) => user.name === userName, + ); + + let updatedUsers = approver.users || []; + + if (userExists) { + // Update existing user's input + updatedUsers = + approver.users?.map((item) => { + if (item.name === userName) { + return { + ...item, + input: newUser.input, + ...(newUser.message && { message: newUser.message }), + }; + } + return item; + }) || []; + } else { + // Add new user to the group + updatedUsers = [...updatedUsers, newUser]; + } + + // Only update this specific group approver + return { + ...approver, + users: updatedUsers, + input: + type === 'approve' + ? ApprovalStatus.Accepted + : ApprovalStatus.Rejected, + ...(values.reason && { message: values.reason }), + }; + } } return approver; }); diff --git a/upstream/src/components/approval-tasks/modal/__tests__/Approval.spec.tsx b/upstream/src/components/approval-tasks/modal/__tests__/Approval.spec.tsx new file mode 100644 index 00000000..7cb45ccc --- /dev/null +++ b/upstream/src/components/approval-tasks/modal/__tests__/Approval.spec.tsx @@ -0,0 +1,696 @@ +import React from 'react'; +import { render, fireEvent, waitFor } from '@testing-library/react'; +import { k8sPatch } from '@openshift-console/dynamic-plugin-sdk'; +import Approval from '../Approval'; +import { ApprovalStatus, ApprovalTaskKind } from '../../../../types'; +import { UserApprover } from '../../../../types/approver'; + +// Mock the k8sPatch function +jest.mock('@openshift-console/dynamic-plugin-sdk', () => ({ + k8sPatch: jest.fn(), + ResourceIcon: ({ kind }: { kind: string }) => ( + {kind} + ), +})); + +// Mock react-i18next +jest.mock('react-i18next', () => ({ + useTranslation: () => ({ + t: (key: string, options?: any) => { + if (options) { + return key.replace( + /\{\{(\w+)\}\}/g, + (match, p1) => options[p1] || match, + ); + } + return key; + }, + }), +})); + +// Mock react-router-dom-v5-compat +jest.mock('react-router-dom-v5-compat', () => ({ + Link: ({ children, to }: { children: React.ReactNode; to: string }) => ( + {children} + ), +})); + +// Mock the models +jest.mock('../../../../models', () => ({ + ApprovalTaskModel: { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + plural: 'approvaltasks', + }, + PipelineRunModel: { + apiVersion: 'tekton.dev/v1beta1', + kind: 'PipelineRun', + plural: 'pipelineruns', + }, +})); + +// Mock the utils +jest.mock('../../../pipelines-overview/utils', () => ({ + getReferenceForModel: (model: any) => `${model.apiVersion}~${model.kind}`, +})); + +// Mock the modal components +jest.mock('../../../modals/modal', () => ({ + ModalWrapper: ({ + children, + onClose, + }: { + children: React.ReactNode; + onClose: () => void; + }) => ( +
+ {children} +
+ ), +})); + +jest.mock('../ApprovalModal', () => { + // eslint-disable-next-line @typescript-eslint/no-var-requires + const React = require('react'); + return { + __esModule: true, + default: ({ + handleSubmit, + values, + setFieldValue, + labelTitle, + type, + cancel, + }: any) => { + // Set the reason value before submitting (only if not already set) + React.useEffect(() => { + if (!values.reason) { + setFieldValue('reason', 'test reason'); + } + }, [setFieldValue, values.reason]); + + return ( +
+

{labelTitle}

+
+ +
+ + {type} +
+ ); + }, + }; +}); + +const mockK8sPatch = k8sPatch as jest.MockedFunction; + +describe('Approval Component - handleSubmit function', () => { + const mockCloseModal = jest.fn(); + + const baseApprovalTask: ApprovalTaskKind = { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + metadata: { + name: 'example-approval-pr-mh34l5-wait', + namespace: 'shverma', + uid: 'e88950b9-a999-4f9b-a401-fbc6beb378bd', + }, + spec: { + approvers: [ + { + input: ApprovalStatus.RequestSent, + name: 'approver-user-1', + type: 'User', + }, + { + input: ApprovalStatus.RequestSent, + name: 'tester1', + type: 'User', + }, + { + input: ApprovalStatus.RequestSent, + name: 'test-apalit-group-1', + type: 'Group', + users: [ + { + input: ApprovalStatus.RequestSent, + name: 'tester2', + }, + ], + }, + ], + description: 'Simple PR using ApprovalTask with 2 users and 1 group', + numberOfApprovalsRequired: 2, + }, + status: { + state: ApprovalStatus.RequestSent, + approvers: [], + }, + }; + + const mockCurrentUser = { + username: 'tester2', + groups: ['test-apalit-group-1', 'system:authenticated'], + }; + + beforeEach(() => { + jest.clearAllMocks(); + mockK8sPatch.mockResolvedValue({}); + (global as any).lastSetStatusCall = null; + }); + + describe('User Approval Path', () => { + it('should approve as direct user successfully', async () => { + const userApprovalTask: ApprovalTaskKind = { + ...baseApprovalTask, + spec: { + ...baseApprovalTask.spec, + approvers: [ + { + input: ApprovalStatus.RequestSent, + name: 'tester2', + type: 'User' as const, + }, + ], + }, + }; + + const { getByTestId } = render( + , + ); + + const submitBtn = getByTestId('submit-btn'); + fireEvent.click(submitBtn); + + await waitFor(() => { + expect(mockK8sPatch).toHaveBeenCalledWith({ + model: { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + plural: 'approvaltasks', + }, + resource: userApprovalTask, + data: [ + { + path: '/spec/approvers', + op: 'replace', + value: [ + { + input: ApprovalStatus.Accepted, + name: 'tester2', + type: 'User', + message: 'test reason', + }, + ], + }, + ], + }); + }); + + expect(mockCloseModal).toHaveBeenCalled(); + }); + + it('should reject as direct user successfully', async () => { + const userApprovalTask: ApprovalTaskKind = { + ...baseApprovalTask, + spec: { + ...baseApprovalTask.spec, + approvers: [ + { + input: ApprovalStatus.RequestSent, + name: 'tester2', + type: 'User' as const, + }, + ], + }, + }; + + const { getByTestId } = render( + , + ); + + const submitBtn = getByTestId('submit-btn'); + fireEvent.click(submitBtn); + + await waitFor(() => { + expect(mockK8sPatch).toHaveBeenCalledWith({ + model: { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + plural: 'approvaltasks', + }, + resource: userApprovalTask, + data: [ + { + path: '/spec/approvers', + op: 'replace', + value: [ + { + input: ApprovalStatus.Rejected, + name: 'tester2', + type: 'User', + message: 'test reason', + }, + ], + }, + ], + }); + }); + + expect(mockCloseModal).toHaveBeenCalled(); + }); + }); + + describe('Group Approval Path', () => { + it('should approve as group member when user belongs to the group', async () => { + const { getByTestId } = render( + , + ); + + const submitBtn = getByTestId('submit-btn'); + fireEvent.click(submitBtn); + + await waitFor(() => { + expect(mockK8sPatch).toHaveBeenCalledWith({ + model: { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + plural: 'approvaltasks', + }, + resource: baseApprovalTask, + data: [ + { + path: '/spec/approvers', + op: 'replace', + value: [ + { + input: ApprovalStatus.RequestSent, + name: 'approver-user-1', + type: 'User', + }, + { + input: ApprovalStatus.RequestSent, + name: 'tester1', + type: 'User', + }, + { + input: ApprovalStatus.Accepted, + name: 'test-apalit-group-1', + type: 'Group', + users: [ + { + input: ApprovalStatus.Accepted, + name: 'tester2', + message: 'test reason', + }, + ], + message: 'test reason', + }, + ], + }, + ], + }); + }); + + expect(mockCloseModal).toHaveBeenCalled(); + }); + + it('should reject as group member when user belongs to the group', async () => { + const { getByTestId } = render( + , + ); + + const submitBtn = getByTestId('submit-btn'); + fireEvent.click(submitBtn); + + await waitFor(() => { + expect(mockK8sPatch).toHaveBeenCalledWith({ + model: { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + plural: 'approvaltasks', + }, + resource: baseApprovalTask, + data: [ + { + path: '/spec/approvers', + op: 'replace', + value: [ + { + input: ApprovalStatus.RequestSent, + name: 'approver-user-1', + type: 'User', + }, + { + input: ApprovalStatus.RequestSent, + name: 'tester1', + type: 'User', + }, + { + input: ApprovalStatus.Rejected, + name: 'test-apalit-group-1', + type: 'Group', + users: [ + { + input: ApprovalStatus.Rejected, + name: 'tester2', + message: 'test reason', + }, + ], + message: 'test reason', + }, + ], + }, + ], + }); + }); + + expect(mockCloseModal).toHaveBeenCalled(); + }); + + it('should add new user to group when user does not exist in group users array', async () => { + const taskWithEmptyGroup: ApprovalTaskKind = { + ...baseApprovalTask, + spec: { + ...baseApprovalTask.spec, + approvers: [ + { + input: ApprovalStatus.RequestSent, + name: 'test-apalit-group-1', + type: 'Group' as const, + users: [] as UserApprover[], // Empty users array + }, + ], + }, + }; + + const { getByTestId } = render( + , + ); + + const submitBtn = getByTestId('submit-btn'); + fireEvent.click(submitBtn); + + await waitFor(() => { + expect(mockK8sPatch).toHaveBeenCalledWith({ + model: { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + plural: 'approvaltasks', + }, + resource: taskWithEmptyGroup, + data: [ + { + path: '/spec/approvers', + op: 'replace', + value: [ + { + input: ApprovalStatus.Accepted, + name: 'test-apalit-group-1', + type: 'Group', + users: [ + { + input: ApprovalStatus.Accepted, + name: 'tester2', + message: 'test reason', + }, + ], + message: 'test reason', + }, + ], + }, + ], + }); + }); + + expect(mockCloseModal).toHaveBeenCalled(); + }); + + it('should update existing user in group when user already exists', async () => { + const taskWithExistingUser: ApprovalTaskKind = { + ...baseApprovalTask, + spec: { + ...baseApprovalTask.spec, + approvers: [ + { + input: ApprovalStatus.RequestSent, + name: 'test-apalit-group-1', + type: 'Group' as const, + users: [ + { + input: ApprovalStatus.RequestSent, + name: 'tester2', + }, + { + input: 'approve' as const, + name: 'other-user', + }, + ], + }, + ], + }, + }; + + const { getByTestId } = render( + , + ); + + const submitBtn = getByTestId('submit-btn'); + fireEvent.click(submitBtn); + + await waitFor(() => { + expect(mockK8sPatch).toHaveBeenCalledWith({ + model: { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + plural: 'approvaltasks', + }, + resource: taskWithExistingUser, + data: [ + { + path: '/spec/approvers', + op: 'replace', + value: [ + { + input: ApprovalStatus.Accepted, + name: 'test-apalit-group-1', + type: 'Group', + users: [ + { + input: ApprovalStatus.Accepted, + name: 'tester2', + message: 'test reason', + }, + { + input: ApprovalStatus.Accepted, + name: 'other-user', + }, + ], + message: 'test reason', + }, + ], + }, + ], + }); + }); + + expect(mockCloseModal).toHaveBeenCalled(); + }); + + it('should not update group when user does not belong to the group', async () => { + const userNotInGroup = { + username: 'tester3', + groups: ['different-group'], + }; + + const { getByTestId } = render( + , + ); + + const submitBtn = getByTestId('submit-btn'); + fireEvent.click(submitBtn); + + await waitFor(() => { + expect(mockK8sPatch).toHaveBeenCalledWith({ + model: { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + plural: 'approvaltasks', + }, + resource: baseApprovalTask, + data: [ + { + path: '/spec/approvers', + op: 'replace', + value: baseApprovalTask.spec.approvers, // Should remain unchanged + }, + ], + }); + }); + + expect(mockCloseModal).toHaveBeenCalled(); + }); + + it('should handle group with undefined users array', async () => { + const taskWithUndefinedUsers: ApprovalTaskKind = { + ...baseApprovalTask, + spec: { + ...baseApprovalTask.spec, + approvers: [ + { + input: ApprovalStatus.RequestSent, + name: 'test-apalit-group-1', + type: 'Group' as const, + // users property is undefined + }, + ], + }, + }; + + const { getByTestId } = render( + , + ); + + const submitBtn = getByTestId('submit-btn'); + fireEvent.click(submitBtn); + + await waitFor(() => { + expect(mockK8sPatch).toHaveBeenCalledWith({ + model: { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + plural: 'approvaltasks', + }, + resource: taskWithUndefinedUsers, + data: [ + { + path: '/spec/approvers', + op: 'replace', + value: [ + { + input: ApprovalStatus.Accepted, + name: 'test-apalit-group-1', + type: 'Group', + users: [ + { + input: ApprovalStatus.Accepted, + name: 'tester2', + message: 'test reason', + }, + ], + message: 'test reason', + }, + ], + }, + ], + }); + }); + + expect(mockCloseModal).toHaveBeenCalled(); + }); + }); + + describe('Edge Cases and Error Handling', () => { + it('should handle user with undefined groups', async () => { + const userWithoutGroups = { + username: 'tester2', + // groups property is undefined + }; + + const { getByTestId } = render( + , + ); + + const submitBtn = getByTestId('submit-btn'); + fireEvent.click(submitBtn); + + await waitFor(() => { + expect(mockK8sPatch).toHaveBeenCalledWith({ + model: { + apiVersion: 'openshift-pipelines.org/v1alpha1', + kind: 'ApprovalTask', + plural: 'approvaltasks', + }, + resource: baseApprovalTask, + data: [ + { + path: '/spec/approvers', + op: 'replace', + value: baseApprovalTask.spec.approvers, // Should remain unchanged + }, + ], + }); + }); + + expect(mockCloseModal).toHaveBeenCalled(); + }); + }); +}); diff --git a/upstream/src/components/catalog/apis/artifactHub.ts b/upstream/src/components/catalog/apis/artifactHub.ts index 3ba9d047..c78f3085 100644 --- a/upstream/src/components/catalog/apis/artifactHub.ts +++ b/upstream/src/components/catalog/apis/artifactHub.ts @@ -102,6 +102,7 @@ export const createArtifactHubTask = ( namespace: string, version: string, isDevConsoleProxyAvailable?: boolean, + customName?: string, ) => { const fetchTask = async (): Promise => { if (isDevConsoleProxyAvailable) { @@ -122,6 +123,9 @@ export const createArtifactHubTask = ( return fetchTask() .then((task: K8sResourceKind) => { task.metadata.namespace = namespace; + if (customName) { + task.metadata.name = customName; + } task.metadata.annotations = { ...task.metadata.annotations, [TektonTaskAnnotation.installedFrom]: ARTIFACTHUB, @@ -185,6 +189,7 @@ export const updateArtifactHubTask = async ( export const fetchArtifactHubTasks = async ( query: string, + // eslint-disable-next-line @typescript-eslint/no-inferrable-types limit: number = 20, ): Promise => { try { diff --git a/upstream/src/components/hooks/hooks.ts b/upstream/src/components/hooks/hooks.ts index 651e611b..62b96bc6 100644 --- a/upstream/src/components/hooks/hooks.ts +++ b/upstream/src/components/hooks/hooks.ts @@ -6,9 +6,10 @@ import { } from '@openshift-console/dynamic-plugin-sdk'; import { SDKStoreState } from '@openshift-console/dynamic-plugin-sdk/lib/app/redux-types'; import { merge } from 'lodash-es'; +import { useCallback } from 'react'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore: FIXME missing exports due to out-of-sync @types/react-redux version -import { useSelector } from 'react-redux'; +import { useDispatch, useSelector } from 'react-redux'; import { StartedByAnnotation, TektonResourceLabel } from '../../consts'; import { PersistentVolumeClaimModel, PipelineRunModel } from '../../models'; import { PersistentVolumeClaimKind, PipelineRunKind } from '../../types'; @@ -87,3 +88,23 @@ export const useGetActiveUser = (): string => { ); return currentUser?.username; }; +/* This is required as a workaround for https://issues.redhat.com/browse/OCPBUGS-62145 */ +export const useActiveUserWithUpdate = (): { + currentUser: UserInfo; + updateUserInfo: (updates: Partial) => void; +} => { + const dispatch = useDispatch(); + const currentUser = useSelector((state: SDKStoreState) => state.sdkCore.user); + + const updateUserInfo = useCallback( + (updates: Partial) => { + dispatch({ + type: 'sdkCore/updateUser', + payload: updates, + }); + }, + [dispatch], + ); + + return { currentUser, updateUserInfo }; +}; diff --git a/upstream/src/components/hooks/useMultiClusterProxyService.ts b/upstream/src/components/hooks/useMultiClusterProxyService.ts new file mode 100644 index 00000000..2a9cbc77 --- /dev/null +++ b/upstream/src/components/hooks/useMultiClusterProxyService.ts @@ -0,0 +1,28 @@ +import { TektonConfigModel } from '../../models'; +import { TektonConfig } from '../../types'; +import { useK8sGet } from './use-k8sGet-hook'; + +import { KUEUE_LABEL_PREFIX, PIPELINE_RUN_MANAGED_BY_KUEUE_LABEL } from "../../consts"; + +export type UseMultiClusterProxyOptions = { + managedBy?: string, + labels?: {[key: string]: string} +} + +/** + * Hook to detect if the current cluster is a hub cluster and if the resource had executed in a Spoke Cluster + * A hub cluster has TektonConfig.spec.scheduler.['multi-cluster-disabled'] === false and TektonConfig.spec.scheduler.['multi-cluster-role'] === 'hub'. (this config is propagating from operator/pkg/reconciler/shared/tektonconfig/scheduler/scheduler.go) + * A resource executed on Spoke cluster has managedBy === 'kueue.x-k8s.io/multikueue' (for PLRs) or lables with prefix 'kueue.x-k8s.io' (for TRs) + * + * @returns { isResourceManagedByKueue } - isResourceManagedByKueue indicates if the resource had executed on a Spoke Cluster + */ +export const useMultiClusterProxyService = (options: UseMultiClusterProxyOptions): {isResourceManagedByKueue: boolean} => { + const [tektonConfig, loaded] = useK8sGet( + TektonConfigModel, + 'config', + ); + const isHub = loaded && !tektonConfig?.spec?.scheduler?.['multi-cluster-disabled'] && tektonConfig?.spec?.scheduler?.['multi-cluster-role']?.toLowerCase() === 'hub'; + + const isResourceManagedByKueue = isHub && (options?.managedBy === PIPELINE_RUN_MANAGED_BY_KUEUE_LABEL || (options?.labels && Object.keys(options?.labels).some(key => key.startsWith(KUEUE_LABEL_PREFIX)))); + return { isResourceManagedByKueue } +}; \ No newline at end of file diff --git a/upstream/src/components/hooks/useMultiClusterTaskRuns.ts b/upstream/src/components/hooks/useMultiClusterTaskRuns.ts new file mode 100644 index 00000000..1a798a7a --- /dev/null +++ b/upstream/src/components/hooks/useMultiClusterTaskRuns.ts @@ -0,0 +1,199 @@ +import { K8sResourceCommon } from '@openshift-console/dynamic-plugin-sdk'; +import * as React from 'react'; + +import { + checkReady, + getMultiClusterTaskRuns, +} from '../utils/multi-cluster-api'; + +type MultiClusterState = { + data: Kind[]; + loaded: boolean; + error: unknown; + pendingAdmission: boolean; + proxyUnavailable: boolean; +}; + +type UseMultiClusterTaskRunsResult = [ + Kind[], // data + boolean, // loaded + unknown, // error + boolean, // pendingAdmission + boolean, // proxyUnavailable +]; + +/** + * Hook for fetching TaskRuns from multi-cluster API on hub clusters. + * Handles polling while PipelineRun is in progress and pending admission state. + * + * @param namespace - The namespace to fetch TaskRuns from + * @param pipelineRunName - The PipelineRun name to filter TaskRuns + * @param isResourceManagedByKueue - Whether this is a hub cluster + * @param pipelineRunFinished - Whether the PipelineRun has finished (stops polling) + */ +export const useMultiClusterTaskRuns = ( + namespace: string | null, + pipelineRunName: string | null, + isResourceManagedByKueue: boolean, + pipelineRunFinished?: boolean, +): UseMultiClusterTaskRunsResult => { + const [state, setState] = React.useState>({ + data: [], + loaded: false, + error: null, + pendingAdmission: false, + proxyUnavailable: false, + }); + + // Track if proxy readiness has been checked + const proxyCheckedRef = React.useRef(false); + const proxyReadyRef = React.useRef(false); + + // Track mounted state to avoid state updates after unmount + const mountedRef = React.useRef(true); + React.useEffect(() => { + mountedRef.current = true; + return () => { + mountedRef.current = false; + }; + }, []); + + // Fetch TaskRuns (called after proxy is confirmed ready) + const fetchTaskRuns = React.useCallback(async () => { + if (!namespace || !pipelineRunName) return; + + try { + const response = await getMultiClusterTaskRuns( + namespace, + pipelineRunName, + ); + if (mountedRef.current) { + setState({ + data: (response?.items || []) as unknown as Kind[], + loaded: true, + error: null, + pendingAdmission: false, + proxyUnavailable: false, + }); + } + } catch (e: unknown) { + const err = e as { status?: number; response?: { status?: number } }; + const status = err?.status || err?.response?.status; + + if (mountedRef.current) { + if (status === 409) { + setState({ + data: [], + loaded: true, + error: null, + pendingAdmission: true, + proxyUnavailable: false, + }); + } else { + setState({ + data: [], + loaded: true, + error: e, + pendingAdmission: false, + proxyUnavailable: false, + }); + } + } + } + }, [namespace, pipelineRunName]); + + // Should we fetch from multi-cluster API? + const shouldFetch = isResourceManagedByKueue && !!namespace && !!pipelineRunName; + + // Should we continue polling after initial fetch? + const shouldContinuePolling = + shouldFetch && + !state.proxyUnavailable && + (!pipelineRunFinished || state.pendingAdmission); + + /* Checks proxy readiness once, then starts polling for TaskRuns. + + Manual polling is used instead of usePoll because initialization must be sequential: + 1) Perform a one-time async proxy readiness check + 2) Start polling only after the proxy is confirmed ready + + usePoll runs immediately on mount, which could race with the async proxy check and trigger fetchTaskRuns before proxyReady is set so using manual polling instead. */ + React.useEffect(() => { + if (!shouldFetch) { + if (mountedRef.current) { + setState((prev) => ({ ...prev, loaded: true })); + } + return; + } + + let timeoutId: ReturnType | null = null; + let cancelled = false; + + const startPolling = async () => { + // Check proxy readiness only once + if (!proxyCheckedRef.current) { + proxyCheckedRef.current = true; + try { + const isReady = await checkReady(); + if (!isReady) { + proxyReadyRef.current = false; + if (mountedRef.current) { + setState({ + data: [], + loaded: true, + error: null, + pendingAdmission: false, + proxyUnavailable: true, + }); + } + return; + } + proxyReadyRef.current = true; + } catch { + proxyReadyRef.current = false; + if (mountedRef.current) { + setState({ + data: [], + loaded: true, + error: null, + pendingAdmission: false, + proxyUnavailable: true, + }); + } + return; + } + } + + // If proxy wasn't ready from a previous check, don't continue + if (!proxyReadyRef.current) return; + + // Poll for TaskRuns + const poll = async () => { + if (cancelled) return; + await fetchTaskRuns(); + if (!cancelled && shouldContinuePolling) { + timeoutId = setTimeout(poll, 3000); + } + }; + + poll(); + }; + + startPolling(); + + return () => { + cancelled = true; + if (timeoutId) { + clearTimeout(timeoutId); + } + }; + }, [shouldFetch, shouldContinuePolling, fetchTaskRuns]); + + return [ + state.data, + state.loaded, + state.error, + state.pendingAdmission, + state.proxyUnavailable, + ]; +}; diff --git a/upstream/src/components/hooks/usePersistedFiltersForPipelineOverview.ts b/upstream/src/components/hooks/usePersistedFiltersForPipelineOverview.ts new file mode 100644 index 00000000..df43ac7f --- /dev/null +++ b/upstream/src/components/hooks/usePersistedFiltersForPipelineOverview.ts @@ -0,0 +1,111 @@ +import * as React from 'react'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: FIXME missing exports due to out-of-sync @types/react-redux version +import { useDispatch, useSelector } from 'react-redux'; +import { useLocation } from 'react-router-dom-v5-compat'; +import { + setInterval as setIntervalAction, + setTimespan as setTimespanAction, +} from '../../redux/actions/pipelines-overview-filters'; +import { + getPipelinesOverviewInterval, + getPipelinesOverviewTimespan, +} from '../../redux/selectors/pipelines-overview-filters'; +import { useQueryParams } from '../pipelines-overview/utils'; + +export const usePersistedTimespanWithUrl = ( + defaultValue: number, + options: { + displayFormat: (v: number) => string; + loadFormat: (v: string) => number; + options: Record; + }, + namespace: string, +) => { + const dispatch = useDispatch(); + const reduxTimespan = useSelector(getPipelinesOverviewTimespan); + const location = useLocation(); + const prevNamespaceRef = React.useRef(namespace); + const [timespan, setTimespanValue] = React.useState(() => { + const urlParams = new URLSearchParams(location.search); + const urlValue = urlParams.has('timerange') + ? urlParams.get('timerange') + : null; + if (urlValue) { + return options.loadFormat(urlValue); + } + return reduxTimespan ?? defaultValue; + }); + + // Reset to default when namespace changes + React.useEffect(() => { + if (prevNamespaceRef.current !== namespace) { + prevNamespaceRef.current = namespace; + setTimespanValue(defaultValue); + } + }, [namespace, defaultValue]); + + // Persist to Redux whenever value changes + React.useEffect(() => { + dispatch(setTimespanAction(timespan)); + }, [timespan, dispatch]); + + useQueryParams({ + key: 'timerange', + value: timespan, + setValue: setTimespanValue, + defaultValue: timespan, + ...options, + }); + + return [timespan, setTimespanValue]; +}; + +export const usePersistedIntervalWithUrl = ( + defaultValue: number, + options: { + displayFormat: (v: number | null) => string; + loadFormat: (v: string) => number | null; + options: Record; + }, + namespace: string, +) => { + const dispatch = useDispatch(); + const reduxInterval = useSelector(getPipelinesOverviewInterval); + const location = useLocation(); + const prevNamespaceRef = React.useRef(namespace); + const [interval, setIntervalValue] = React.useState(() => { + const urlParams = new URLSearchParams(location.search); + const urlValue = urlParams.has('refreshinterval') + ? urlParams.get('refreshinterval') + : null; + if (urlValue) { + return options.loadFormat(urlValue); + } + // to handle refresh interval "off" state + return reduxInterval !== undefined ? reduxInterval : defaultValue; + }); + + // Reset to default when namespace changes + React.useEffect(() => { + if (prevNamespaceRef.current !== namespace) { + prevNamespaceRef.current = namespace; + setIntervalValue(defaultValue); + } + }, [namespace, defaultValue]); + + // Persist to Redux whenever value changes + React.useEffect(() => { + dispatch(setIntervalAction(interval)); + }, [interval, dispatch]); + + useQueryParams({ + key: 'refreshinterval', + value: interval, + setValue: setIntervalValue, + defaultValue: interval, + ...options, + }); + + return [interval, setIntervalValue]; +}; diff --git a/upstream/src/components/hooks/useTaskRuns.ts b/upstream/src/components/hooks/useTaskRuns.ts index d8fd2a71..d7e74a8f 100644 --- a/upstream/src/components/hooks/useTaskRuns.ts +++ b/upstream/src/components/hooks/useTaskRuns.ts @@ -1,10 +1,10 @@ import { K8sGroupVersionKind, - K8sResourceCommon, + K8sResourceKind, Selector, getGroupVersionKindForModel, useFlag, - useK8sWatchResource, + useK8sWatchResource } from '@openshift-console/dynamic-plugin-sdk'; import { differenceBy, uniqBy } from 'lodash-es'; import * as React from 'react'; @@ -22,6 +22,8 @@ import { import { ApprovalTaskKind, PipelineRunKind, TaskRunKind } from '../../types'; import { useDeepCompareMemoize } from '../utils/common-utils'; import { EQ } from '../utils/tekton-results'; +import { useMultiClusterProxyService } from './useMultiClusterProxyService'; +import { useMultiClusterTaskRuns } from './useMultiClusterTaskRuns'; import { GetNextPage, useTRPipelineRuns, @@ -62,13 +64,21 @@ export const useTaskRunsK8s = ( return useK8sWatchResource(taskRunResource); }; +export type UseTaskRunsOptions = { + taskName?: string; + cacheKey?: string; + pipelineRunUid?: string; + pipelineRunFinished?: boolean; + pipelineRunManagedBy?: string; +}; + export const useTaskRuns = ( namespace: string, pipelineRunName?: string, - taskName?: string, - cacheKey?: string, - pipelineRunUid?: string, -): [TaskRunKind[], boolean, unknown, GetNextPage] => { + options?: UseTaskRunsOptions, +): [TaskRunKind[], boolean, unknown, GetNextPage, boolean, boolean] => { + const { taskName, cacheKey, pipelineRunUid, pipelineRunFinished, pipelineRunManagedBy } = + options || {}; const selector: Selector = React.useMemo(() => { if (pipelineRunName && pipelineRunUid) { return { @@ -88,12 +98,21 @@ export const useTaskRuns = ( } return undefined; }, [taskName, pipelineRunName, pipelineRunUid]); - const [taskRuns, loaded, error, getNextPage] = useTaskRuns2( + const [ + taskRuns, + loaded, + error, + getNextPage, + pendingAdmission, + proxyUnavailable, + ] = useTaskRuns2( namespace, selector && { selector, }, cacheKey, + pipelineRunFinished, + pipelineRunManagedBy, ); const sortedTaskRuns = React.useMemo( @@ -114,8 +133,22 @@ export const useTaskRuns = ( [taskRuns], ); return React.useMemo( - () => [sortedTaskRuns, loaded, error, getNextPage], - [sortedTaskRuns, loaded, error, getNextPage], + () => [ + sortedTaskRuns, + loaded, + error, + getNextPage, + pendingAdmission, + proxyUnavailable, + ], + [ + sortedTaskRuns, + loaded, + error, + getNextPage, + pendingAdmission, + proxyUnavailable, + ], ); }; @@ -126,12 +159,16 @@ export const useTaskRuns2 = ( limit?: number; }, cacheKey?: string, -): [TaskRunKind[], boolean, unknown, GetNextPage] => + pipelineRunFinished?: boolean, + pipelineRunManagedBy?: string, +): [TaskRunKind[], boolean, unknown, GetNextPage, boolean, boolean] => useRuns( getGroupVersionKindForModel(TaskRunModel), namespace, options, cacheKey, + pipelineRunFinished, + pipelineRunManagedBy, ); export const useApprovalTasks = ( @@ -173,7 +210,7 @@ export const usePipelineRuns = ( limit?: number; }, cacheKey?: string, -): [PipelineRunKind[], boolean, unknown, GetNextPage] => +): [PipelineRunKind[], boolean, unknown, GetNextPage, boolean, boolean] => useRuns( getGroupVersionKindForModel(PipelineRunModel), namespace, @@ -202,7 +239,7 @@ export const usePipelineRun = ( ); }; -export const useRuns = ( +export const useRuns = ( groupVersionKind: K8sGroupVersionKind, namespace: string, options?: { @@ -211,34 +248,85 @@ export const useRuns = ( name?: string; }, cacheKey?: string, -): [Kind[], boolean, unknown, GetNextPage] => { + pipelineRunFinished?: boolean, + pipelineRunManagedBy?: string, +): [Kind[], boolean, unknown, GetNextPage, boolean, boolean] => { const etcdRunsRef = React.useRef([]); const optionsMemo = useDeepCompareMemoize(options); const isTektonResultEnabled = useFlag(FLAG_PIPELINE_TEKTON_RESULT_INSTALLED); const isList = !optionsMemo?.name; const limit = optionsMemo?.limit; + + const isPipelineRun = + groupVersionKind?.kind === + getGroupVersionKindForModel(PipelineRunModel)?.kind; + + // Hub cluster detection + const { isResourceManagedByKueue } = useMultiClusterProxyService({ managedBy: pipelineRunManagedBy }); + const isTaskRunQuery = + groupVersionKind?.kind === getGroupVersionKindForModel(TaskRunModel)?.kind; + + // Extract pipelineRunName from selector for multi-cluster API + const pipelineRunName = + optionsMemo?.selector?.matchLabels?.[TektonResourceLabel.pipelinerun]; + + // Use multi-cluster hook for hub clusters fetching TaskRuns + const shouldUseMultiCluster = isResourceManagedByKueue && isTaskRunQuery && !!pipelineRunName; + const [ + mcTaskRuns, + mcLoaded, + mcError, + mcPendingAdmission, + mcProxyUnavailable, + ] = useMultiClusterTaskRuns( + shouldUseMultiCluster ? namespace : null, + shouldUseMultiCluster ? pipelineRunName : null, + isResourceManagedByKueue, + pipelineRunFinished, + ); + // do not include the limit when querying etcd because result order is not sorted const watchOptions = React.useMemo(() => { // reset cached runs as the options have changed etcdRunsRef.current = []; - return { - groupVersionKind, - namespace: namespace && namespace !== '-' ? namespace : undefined, - isList, - selector: optionsMemo?.selector, - name: optionsMemo?.name, - }; - }, [groupVersionKind, namespace, optionsMemo, isList]); + return shouldUseMultiCluster + ? null + : { + groupVersionKind, + namespace: namespace && namespace !== '-' ? namespace : undefined, + isList, + selector: optionsMemo?.selector, + name: optionsMemo?.name, + }; + }, [groupVersionKind, namespace, optionsMemo, isList, shouldUseMultiCluster]); const [resources, loaded, error] = useK8sWatchResource(watchOptions); - // if a pipeline run was removed from etcd, we want to still include it in the return value without re-querying tekton-results + + // Use multi-cluster results for hub TaskRuns, otherwise use k8s results const etcdRuns = React.useMemo(() => { + if (shouldUseMultiCluster) { + if (!mcLoaded || mcError) return []; + return mcTaskRuns; + } + if (!loaded || error) { return []; } const resourcesArray = (isList ? resources : [resources]) as Kind[]; return resourcesArray; - }, [isList, resources, loaded, error]); + }, [ + shouldUseMultiCluster, + mcLoaded, + mcError, + mcTaskRuns, + isList, + resources, + loaded, + error, + ]); + + const effectiveLoaded = shouldUseMultiCluster ? mcLoaded : loaded; + const effectiveError = shouldUseMultiCluster ? mcError : error; const runs = React.useMemo(() => { if (!etcdRuns) { @@ -258,7 +346,7 @@ export const useRuns = ( value.sort((a, b) => b.metadata.creationTimestamp.localeCompare(a.metadata.creationTimestamp), ); - if (limit && limit < value.length) { + if (limit && limit < value?.length) { value = value.slice(0, limit); } return value; @@ -272,7 +360,8 @@ export const useRuns = ( isTektonResultEnabled && (!limit || (namespace && - ((runs && loaded && optionsMemo.limit > runs.length) || error))); + ((runs && effectiveLoaded && optionsMemo.limit > runs?.length) || + effectiveError))); const trOptions: typeof optionsMemo = React.useMemo(() => { if (optionsMemo?.name) { @@ -288,35 +377,72 @@ export const useRuns = ( // tekton-results includes items in etcd, therefore options must use the same limit // these duplicates will later be de-duped - const [trResources, trLoaded, trError, trGetNextPage] = isTektonResultEnabled - ? ((groupVersionKind?.kind === - getGroupVersionKindForModel(PipelineRunModel)?.kind - ? useTRPipelineRuns - : useTRTaskRuns)(queryTr ? namespace : null, trOptions, cacheKey) as [ - [], - boolean, - unknown, - GetNextPage, - ]) - : [[], true, undefined, undefined]; + const trNamespace = isTektonResultEnabled && queryTr ? namespace : null; + + const [trPRResources, trPRLoaded, trPRError, trPRGetNextPage] = + useTRPipelineRuns( + isPipelineRun ? trNamespace : null, + isPipelineRun ? trOptions : undefined, + isPipelineRun ? cacheKey : undefined, + ); + + const [trTRResources, trTRLoaded, trTRError, trTRGetNextPage] = useTRTaskRuns( + !isPipelineRun ? trNamespace : null, + !isPipelineRun ? trOptions : undefined, + !isPipelineRun ? cacheKey : undefined, + ); + + const trResources = (isPipelineRun + ? trPRResources + : trTRResources) as unknown as Kind[]; + const trLoaded = isPipelineRun ? trPRLoaded : trTRLoaded; + const trError = isPipelineRun ? trPRError : trTRError; + const trGetNextPage = isPipelineRun ? trPRGetNextPage : trTRGetNextPage; return React.useMemo(() => { + // dedupe PLR by name since UIDs differ between hub and spoke clusters; for other cases(TR) dedupe by UID const rResources = runs && trResources - ? uniqBy([...runs, ...trResources], (r) => r.metadata.uid) + ? !isTaskRunQuery + ? uniqBy([...runs, ...trResources], (r) => r.metadata.name) + : uniqBy([...runs, ...trResources], (r) => r.metadata.uid) : runs || trResources; + + /* Refactoring the nesting as it is causing cognitive damage */ + let resolvedError: unknown = undefined; + + if (namespace) { + if (queryTr) { + if (isList) { + resolvedError = trError && effectiveError; + } else { + // when searching by name, return an error if we have no result + if (trError && trLoaded && !trResources?.length) { + resolvedError = effectiveError; + } + } + } else { + resolvedError = effectiveError; + } + } else if (effectiveError) { + resolvedError = effectiveError; + } + + const resolvedLoaded = !!( + rResources?.[0] || + (effectiveLoaded && (trLoaded || trError)) + ); + + const pendingAdmission = shouldUseMultiCluster ? mcPendingAdmission : false; + const proxyUnavailable = shouldUseMultiCluster ? mcProxyUnavailable : false; + return [ rResources, - !!(rResources?.[0] || (loaded && (trLoaded || trError))), - namespace - ? queryTr - ? isList - ? trError && error - : // when searching by name, return an error if we have no result - trError && (trLoaded && !trResources.length ? error : undefined) - : error - : undefined, + resolvedLoaded, + resolvedError, trGetNextPage, + pendingAdmission, + proxyUnavailable, ]; }, [ runs, @@ -326,8 +452,14 @@ export const useRuns = ( queryTr, isList, trError, - error, + effectiveError, + effectiveLoaded, trGetNextPage, + shouldUseMultiCluster, + mcPendingAdmission, + mcProxyUnavailable, + isResourceManagedByKueue, + pipelineRunFinished, ]); }; diff --git a/upstream/src/components/hooks/useTektonResults.ts b/upstream/src/components/hooks/useTektonResults.ts index 3ebb9eff..586e6df8 100644 --- a/upstream/src/components/hooks/useTektonResults.ts +++ b/upstream/src/components/hooks/useTektonResults.ts @@ -57,7 +57,9 @@ const useTRRuns = ( isDevConsoleProxyAvailable, ); if (!disposed) { - const token = tkPipelineRuns[1].nextPageToken; + const token = + tkPipelineRuns[1].nextPageToken || + tkPipelineRuns[1].next_page_token; const callInflight = !!tkPipelineRuns?.[2]; const loaded = !callInflight; if (!callInflight) { diff --git a/upstream/src/components/logs/LogSnippetBlock.tsx b/upstream/src/components/logs/LogSnippetBlock.tsx index 1fc7f02f..d5e2355e 100644 --- a/upstream/src/components/logs/LogSnippetBlock.tsx +++ b/upstream/src/components/logs/LogSnippetBlock.tsx @@ -6,12 +6,16 @@ type LogSnippetBlockProps = { children: (logSnippet: string) => React.ReactNode; logDetails: CombinedErrorDetails; namespace: string; + isResourceManagedByKueue?: boolean; + pipelineRunName?: string; }; const LogSnippetBlock: React.FC = ({ children, logDetails, namespace, + isResourceManagedByKueue, + pipelineRunName, }) => { return 'podName' in logDetails ? ( = ({ podName={logDetails.podName} title={logDetails.title} staticMessage={logDetails.staticMessage} + isResourceManagedByKueue={isResourceManagedByKueue} + pipelineRunName={pipelineRunName} > {children} diff --git a/upstream/src/components/logs/LogSnippetFromPod.tsx b/upstream/src/components/logs/LogSnippetFromPod.tsx index ed864394..9c097d69 100644 --- a/upstream/src/components/logs/LogSnippetFromPod.tsx +++ b/upstream/src/components/logs/LogSnippetFromPod.tsx @@ -5,6 +5,7 @@ import { LoadingInline } from '../Loading'; import { consoleFetchText } from '@openshift-console/dynamic-plugin-sdk'; import { PodModel } from '../../models'; import { resourceURL } from '../utils/k8s-utils'; +import { fetchMultiClusterLogs } from '../utils/multi-cluster-api'; type LogSnippetFromPodProps = { children: (logSnippet: string) => React.ReactNode; @@ -13,6 +14,8 @@ type LogSnippetFromPodProps = { podName: string; title: string; staticMessage?: string; + isResourceManagedByKueue?: boolean; + pipelineRunName?: string; }; const LogSnippetFromPod: React.FC = ({ @@ -22,6 +25,8 @@ const LogSnippetFromPod: React.FC = ({ podName, title, staticMessage, + isResourceManagedByKueue, + pipelineRunName, }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); @@ -29,24 +34,41 @@ const LogSnippetFromPod: React.FC = ({ const [logError, setLogError] = React.useState(null); React.useEffect(() => { - const urlOpts = { - ns: namespace, - name: podName, - path: 'log', - queryParams: { - container: containerName, - tailLines: '5', - }, - }; - const watchURL = resourceURL(PodModel, urlOpts); - consoleFetchText(watchURL) - .then((logContent: string) => { + const fetchLogs = async () => { + try { + let logContent: string; + if (isResourceManagedByKueue && pipelineRunName) { + // Use multicluster API for hub clusters + logContent = await fetchMultiClusterLogs( + namespace, + pipelineRunName, + podName, + containerName, + ); + // Get last 5 lines to match tailLines behavior + const lines = logContent.split('\n'); + logContent = lines.slice(-6).join('\n'); // -6 to account for potential trailing newline + } else { + // Use local k8s API + const urlOpts = { + ns: namespace, + name: podName, + path: 'log', + queryParams: { + container: containerName, + tailLines: '5', + }, + }; + const watchURL = resourceURL(PodModel, urlOpts); + logContent = await consoleFetchText(watchURL); + } setLogSnippet(logContent); - }) - .catch((error) => { + } catch (error) { setLogError(error?.message || t('Unknown error retrieving logs')); - }); - }, [containerName, namespace, podName, t]); + } + }; + fetchLogs(); + }, [containerName, namespace, podName, t, isResourceManagedByKueue, pipelineRunName]); if (logError) { return ( diff --git a/upstream/src/components/logs/Logs.tsx b/upstream/src/components/logs/Logs.tsx index 300e3aa7..7f0ab14a 100644 --- a/upstream/src/components/logs/Logs.tsx +++ b/upstream/src/components/logs/Logs.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { Alert } from '@patternfly/react-core'; +import { Alert, Banner } from '@patternfly/react-core'; import { LogViewer } from '@patternfly/react-log-viewer'; import { Base64 } from 'js-base64'; import { useTranslation } from 'react-i18next'; @@ -10,13 +10,22 @@ import { ContainerSpec, ContainerStatus, PodKind } from '../../types'; import { PodModel } from '../../models'; import { resourceURL } from '../utils/k8s-utils'; import { containerToLogSourceStatus } from '../utils/pipeline-utils'; -import './MultiStreamLogs.scss'; +import { LoadingInline } from '../Loading'; +import { + getMultiClusterLogsUrl, + getMultiClusterLogsStreamPath, +} from '../utils/multi-cluster-api'; type LogsProps = { resource: PodKind; containers: ContainerSpec[]; setCurrentLogsGetter?: (getter: () => string) => void; activeStep?: string; + taskName?: string; + stillFetching?: boolean; + isResourceManagedByKueue?: boolean; + pipelineRunName?: string; + pipelineRunFinished?: boolean; }; type LogData = { @@ -51,10 +60,15 @@ const processLogData = ( }; const Logs: React.FC = ({ + stillFetching, resource, + taskName, containers, setCurrentLogsGetter, activeStep, + isResourceManagedByKueue, + pipelineRunName, + pipelineRunFinished, }) => { if (!resource) return null; const { t } = useTranslation('plugin__pipelines-console-plugin'); @@ -68,6 +82,12 @@ const Logs: React.FC = ({ new Set(), ); + // Ref to track current pipelineRunFinished value for WebSocket retry logic + const pipelineRunFinishedRef = React.useRef(pipelineRunFinished); + React.useEffect(() => { + pipelineRunFinishedRef.current = pipelineRunFinished; + }, [pipelineRunFinished]); + const findTargetRowForActiveStep = React.useMemo( () => (formattedString: string) => { if (!activeStep) return null; @@ -151,14 +171,90 @@ const Logs: React.FC = ({ return ws; }; + /* + Why are we retrying websockets in multicluster ? + Container initialization delays: On spoke clusters, containers may not start immediately after admission + Network latency: Multi-cluster proxy-aae service adds another hop + WebSocket closes early: The connection sometimes closes before the container is ready, requiring retry on onclose + */ + const retryMultiClusterWebSocket = ( + watchURL: string, + wsOpts: any, + onMessage: (message: string) => void, + onError: () => void, + retryCount = 0, + isFinishedGetter: () => boolean, + ) => { + const mcWs = new WSFactory(watchURL, wsOpts); + let receivedData = false; + let destroyed = false; + let retryScheduled = false; + + const handleRetry = () => { + if (destroyed || retryScheduled) return; + retryScheduled = true; + // Stop retrying if PipelineRun has finished + if (isFinishedGetter()) { + return; + } + if (retryCount < 10) { + // Retry up to 10 times (30 seconds total) + setTimeout(() => { + if (!destroyed && !isFinishedGetter()) { + retryMultiClusterWebSocket( + watchURL, + wsOpts, + onMessage, + onError, + retryCount + 1, + isFinishedGetter, + ); + } + }, 3000); + } else { + onError(); + } + }; + + // Multi-cluster logs are plain text, not base64 encoded + mcWs + .onopen(() => {}) + .onmessage((msg) => { + receivedData = true; + onMessage(msg); + }) + .onerror((err) => { + console.error('MC WebSocket ERROR:', err); + handleRetry(); + }) + .onclose(() => { + // Retry on close if we never received any data (container likely initializing) + if (!receivedData) { + handleRetry(); + } + }); + + // Override destroy to prevent retries after cleanup + const originalDestroy = mcWs.destroy.bind(mcWs); + mcWs.destroy = () => { + destroyed = true; + originalDestroy(); + }; + + return mcWs; + }; + React.useEffect(() => { containers.forEach((container) => { if (activeContainers.has(container.name)) return; setActiveContainers((prev) => new Set(prev).add(container.name)); let loaded = false; let ws: WSFactory; + let mcWs: WSFactory; const { name } = container; - const urlOpts = { + + // Build URL based on hub cluster vs local cluster + const k8sUrlOpts = { ns: resNamespace, name: resName, path: 'log', @@ -168,7 +264,7 @@ const Logs: React.FC = ({ timestamps: 'true', }, }; - const watchURL = resourceURL(PodModel, urlOpts); + const k8sWatchURL = resourceURL(PodModel, k8sUrlOpts); const containerStatus: ContainerStatus[] = resource?.status?.containerStatuses ?? []; @@ -179,41 +275,93 @@ const Logs: React.FC = ({ containerStatus[statusIndex], ); - if (resourceStatus === LOG_SOURCE_TERMINATED) { - consoleFetchText(watchURL) + // Use HTTP fetch for completed PipelineRuns or terminated containers + // Use WebSocket only for actively running containers + const shouldUseHttp = + resourceStatus === LOG_SOURCE_TERMINATED || + (isResourceManagedByKueue && pipelineRunFinished); + + if (shouldUseHttp) { + // Fetch complete logs via HTTP + const logsUrl = + isResourceManagedByKueue && pipelineRunName + ? getMultiClusterLogsUrl( + resNamespace, + pipelineRunName, + resName, + name, + ) + : k8sWatchURL; + + consoleFetchText(logsUrl) .then((res) => { if (loaded) return; appendMessage(name, res, resourceStatus); }) - .catch(() => { + .catch((err) => { if (loaded) return; setError(true); }); } else { - const wsOpts = { - host: 'auto', - path: watchURL, - subprotocols: ['base64.binary.k8s.io'], - }; - ws = retryWebSocket( - watchURL, - wsOpts, - (message) => { - if (loaded) return; - setError(false); - appendMessage(name, message, resourceStatus); - }, - () => { - if (loaded) return; - setError(true); - }, - ); + // Stream logs via WebSocket for running containers + if (isResourceManagedByKueue && pipelineRunName) { + // Use multi-cluster WebSocket for hub clusters + const mcWsPath = getMultiClusterLogsStreamPath( + resNamespace, + pipelineRunName, + resName, + name, + ); + const mcWsOpts = { + host: 'auto', + path: mcWsPath, + subprotocols: ['binary.k8s.io'], + }; + mcWs = retryMultiClusterWebSocket( + mcWsPath, + mcWsOpts, + (message) => { + if (loaded) return; + setError(false); + appendMessage(name, message, resourceStatus); + }, + () => { + if (loaded) return; + setError(true); + }, + 0, + () => pipelineRunFinishedRef.current, + ); + } else { + // Use k8s WebSocket for local clusters + const wsOpts = { + host: 'auto', + path: k8sWatchURL, + subprotocols: ['base64.binary.k8s.io'], + }; + ws = retryWebSocket( + k8sWatchURL, + wsOpts, + (message) => { + if (loaded) return; + setError(false); + appendMessage(name, message, resourceStatus); + }, + () => { + if (loaded) return; + setError(true); + }, + ); + } } return () => { loaded = true; if (ws) { ws.destroy(); } + if (mcWs) { + mcWs.destroy(); + } }; }); }, [ @@ -221,6 +369,9 @@ const Logs: React.FC = ({ resNamespace, resource?.status?.containerStatuses, activeContainers, + isResourceManagedByKueue, + pipelineRunName, + pipelineRunFinished, ]); React.useEffect(() => { @@ -259,7 +410,7 @@ const Logs: React.FC = ({ }, [logData, activeStep, findTargetRowForActiveStep]); return ( -
+
{error && ( = ({ /> )} + + {taskName} + + {stillFetching ? ( + + + + ) : null} + + } hasLineNumbers={false} isTextWrapped={false} - data={formattedLogString} + data={ + error + ? t('An error occurred while retrieving the requested logs.') + : formattedLogString + } theme="dark" scrollToRow={scrollToRow} height="100%" diff --git a/upstream/src/components/logs/LogsWrapperComponent.tsx b/upstream/src/components/logs/LogsWrapperComponent.tsx index ebe5d9b4..516585dd 100644 --- a/upstream/src/components/logs/LogsWrapperComponent.tsx +++ b/upstream/src/components/logs/LogsWrapperComponent.tsx @@ -1,13 +1,12 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import * as React from 'react'; import { useTranslation } from 'react-i18next'; -import { Button, Flex, FlexItem } from '@patternfly/react-core'; +import { Button } from '@patternfly/react-core'; import { CompressIcon, DownloadIcon, ExpandIcon, } from '@patternfly/react-icons/dist/js/icons'; -import classNames from 'classnames'; import { saveAs } from 'file-saver'; import { WatchK8sResource, @@ -19,13 +18,18 @@ import { TektonTaskRunLog } from './TektonTaskRunLog'; import { useFullscreen } from './fullscreen'; import { LoadingInline } from '../Loading'; import { TektonResourceLabel } from '../../consts'; +import { getMultiClusterPods } from '../utils/multi-cluster-api'; +import { usePoll } from '../pipelines-metrics/poll-hook'; type LogsWrapperComponentProps = { taskRun: TaskRunKind; downloadAllLabel?: string; - onDownloadAll?: () => Promise; + onDownloadAll?: () => Promise; resource: WatchK8sResource; activeStep?: string; + isResourceManagedByKueue?: boolean; + pipelineRunName?: string; + pipelineRunFinished?: boolean; }; const LogsWrapperComponent: React.FC< @@ -36,11 +40,52 @@ const LogsWrapperComponent: React.FC< onDownloadAll, downloadAllLabel = 'Download all', activeStep, + isResourceManagedByKueue, + pipelineRunName, + pipelineRunFinished, ...props }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); const resourceRef = React.useRef(null); - const [obj, loaded, error] = useK8sWatchResource(resource); + + const k8sResource = isResourceManagedByKueue ? null : resource; + const [obj, loaded, error] = useK8sWatchResource(k8sResource); + + // Multi-cluster Pod state for hub clusters + const [mcPod, setMcPod] = React.useState(null); + const [mcLoaded, setMcLoaded] = React.useState(false); + const [mcError, setMcError] = React.useState(null); + + /* Fetch Pod from multi-cluster API for hub clusters */ + const fetchMcPod = React.useCallback(async () => { + if (!isResourceManagedByKueue || !pipelineRunName || !resource?.name || !resource?.namespace) { + return; + } + try { + const podsResponse = await getMultiClusterPods( + resource.namespace as string, + pipelineRunName, + ); + const pod = podsResponse?.items?.find( + (p) => p.metadata?.name === resource.name, + ); + setMcPod(pod); + if (!pod) { + /* Simuating k8 api */ + throw new Error('Pod not found in multi-cluster API'); + } + setMcLoaded(true); + } catch (e) { + setMcError(e); + setMcLoaded(true); + } + }, [isResourceManagedByKueue, pipelineRunName, resource?.name, resource?.namespace]); + + // Poll every 3 seconds while PipelineRun is running, null to disable + const pollDelay = + isResourceManagedByKueue && !pipelineRunFinished && pipelineRunName ? 3000 : null; + usePoll(fetchMcPod, pollDelay, resource?.name, resource?.namespace); + const [isFullscreen, fullscreenRef, fullscreenToggle] = useFullscreen(); const [downloadAllStatus, setDownloadAllStatus] = React.useState(false); @@ -50,10 +95,17 @@ const LogsWrapperComponent: React.FC< taskRun?.metadata?.labels?.[TektonResourceLabel.pipelineTask] || taskRun?.spec.taskRef?.name || '-'; + const effectiveLoaded = isResourceManagedByKueue ? mcLoaded : loaded; + const effectiveError = isResourceManagedByKueue ? mcError : error; + const effectiveObj = isResourceManagedByKueue ? mcPod : obj; - if (loaded && !error && resource.name === obj.metadata.name) { - resourceRef.current = obj; - } else if (error) { + if ( + effectiveLoaded && + !effectiveError && + resource.name === effectiveObj?.metadata?.name + ) { + resourceRef.current = effectiveObj; + } else if (effectiveError) { resourceRef.current = null; } @@ -84,71 +136,72 @@ const LogsWrapperComponent: React.FC< }; return ( -
- +
- - - - | + +
|
{onDownloadAll && ( <> - - - - | + + +
|
)} {fullscreenToggle && ( - - - + + )} +
+
+ {!effectiveError ? ( + + ) : ( + )} - - {!error ? ( - - ) : ( - - )} +
); }; diff --git a/upstream/src/components/logs/MultiStreamLogs.scss b/upstream/src/components/logs/MultiStreamLogs.scss deleted file mode 100644 index 1d053bf3..00000000 --- a/upstream/src/components/logs/MultiStreamLogs.scss +++ /dev/null @@ -1,58 +0,0 @@ -.odc-multi-stream-logs { - display: flex; - flex: 1; - flex-direction: column; - height: 100%; - - &--fullscreen { - background-color: var(--pf-v5-global--BackgroundColor--100); - padding: var(--pf-v5-global--spacer--sm); - } - - &__icon { - margin-right: var(--pf-v5-global--spacer--xs); - } - - &__divider { - color: var(--pf-v5-global--palette--black-600); - margin: 0 var(--pf-v5-global--spacer--sm); - } - - &__button { - margin-right: 0; - } - - &__container { - display: flex; - flex: 1; - flex-direction: column; - background-color: var(--pf-v5-global--palette--black-1000); - color: var(--pf-v5-global--Color--light-100); - font-family: Menlo, Monaco, 'Courier New', monospace; - overflow-y: scroll; - position: relative; - &__logs { - position: absolute; - width: 100%; - } - } - &__logviewer { - background-color: var(--pf-v5-global--palette--black-1000); - color: var(--pf-v5-global--Color--light-100); - font-family: Menlo, Monaco, 'Courier New', monospace; - height: 100%; - } - &__taskName { - background-color: var(--pf-v5-global--BackgroundColor--dark-300); - padding: var(--pf-v5-global--spacer--sm) var(--pf-v5-global--spacer--md); - color: var(--pf-v5-global--Color--light-100); - } - &__taskName__loading-indicator { - margin-left: var(--pf-v5-global--spacer--sm); - } -} - -.odc-logs-logviewer { - background-color: var(--pf-v5-global--palette--black-1000); - height: 100%; -} diff --git a/upstream/src/components/logs/MultiStreamLogs.tsx b/upstream/src/components/logs/MultiStreamLogs.tsx index 754b07e0..676231a6 100644 --- a/upstream/src/components/logs/MultiStreamLogs.tsx +++ b/upstream/src/components/logs/MultiStreamLogs.tsx @@ -2,14 +2,15 @@ import * as React from 'react'; import Logs from './Logs'; import { getRenderContainers } from './logs-utils'; import { PodKind } from '../../types'; -import { LoadingInline } from '../Loading'; -import './MultiStreamLogs.scss'; type MultiStreamLogsProps = { resource: PodKind; taskName?: string; setCurrentLogsGetter?: (getter: () => string) => void; activeStep?: string; + isResourceManagedByKueue?: boolean; + pipelineRunName?: string; + pipelineRunFinished?: boolean; }; export const MultiStreamLogs: React.FC = ({ @@ -17,31 +18,28 @@ export const MultiStreamLogs: React.FC = ({ taskName, setCurrentLogsGetter, activeStep, + isResourceManagedByKueue, + pipelineRunName, + pipelineRunFinished, }) => { const { containers, stillFetching } = getRenderContainers(resource); return ( <>
- {taskName} - {stillFetching && ( - - - - )} -
-
diff --git a/upstream/src/components/logs/RunDetailsErrorLog.tsx b/upstream/src/components/logs/RunDetailsErrorLog.tsx index 35f7b458..0629c7ed 100644 --- a/upstream/src/components/logs/RunDetailsErrorLog.tsx +++ b/upstream/src/components/logs/RunDetailsErrorLog.tsx @@ -12,11 +12,15 @@ import LogSnippetBlock from './LogSnippetBlock'; type RunDetailErrorLogProps = { logDetails: CombinedErrorDetails; namespace: string; + isResourceManagedByKueue?: boolean; + pipelineRunName?: string; }; const RunDetailsErrorLog: React.FC = ({ logDetails, namespace, + isResourceManagedByKueue, + pipelineRunName, }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); if (!logDetails) { @@ -34,7 +38,12 @@ const RunDetailsErrorLog: React.FC = ({ {t('Log snippet')} - + {(logSnippet: string) =>
{logSnippet}
}
diff --git a/upstream/src/components/logs/TektonTaskRunLog.scss b/upstream/src/components/logs/TektonTaskRunLog.scss new file mode 100644 index 00000000..b597d7ce --- /dev/null +++ b/upstream/src/components/logs/TektonTaskRunLog.scss @@ -0,0 +1,11 @@ +@use './ansi-log-colors' as *; + +.odc-tekton-taskrun-log { + overflow: hidden; + + .pf-v5-c-log-viewer__text { + white-space: pre; + } + + @include ansi-log-colors; +} diff --git a/upstream/src/components/logs/TektonTaskRunLog.tsx b/upstream/src/components/logs/TektonTaskRunLog.tsx index bfd978d2..222f6350 100644 --- a/upstream/src/components/logs/TektonTaskRunLog.tsx +++ b/upstream/src/components/logs/TektonTaskRunLog.tsx @@ -5,7 +5,8 @@ import { TaskRunKind } from '../../types'; import { TektonResourceLabel } from '../../consts'; import { LoadingInline } from '../Loading'; import { useTRTaskRunLog } from '../hooks/useTektonResult'; -import './MultiStreamLogs.scss'; +import { Banner } from '@patternfly/react-core'; +import './TektonTaskRunLog.scss'; type TektonTaskRunLogProps = { taskRun?: TaskRunKind; @@ -29,8 +30,8 @@ export const TektonTaskRunLog: React.FC = ({ }, [setCurrentLogsGetter, trResults]); const errorMessage = - (trError as HttpError)?.code === 404 - ? `Logs are no longer accessible for ${taskName} task` + (trError as HttpError)?.code === 404 || (trError as HttpError)?.code === 500 + ? `Unable to access log for ${taskName} task` : null; // Format trResults to include taskName @@ -45,41 +46,33 @@ export const TektonTaskRunLog: React.FC = ({ return ( <>
- {taskName} - {!trLoaded && ( - - - - )} -
-
- {errorMessage && ( -
- {errorMessage} -
- )} - {!errorMessage && trLoaded ? ( - - ) : null} + + + {taskName} + + {!trLoaded && !errorMessage ? ( + + + + ) : null} + + } + hasLineNumbers={false} + isTextWrapped={false} + data={errorMessage ?? (!trLoaded ? '' : formattedResults)} + height="100%" + scrollToRow={lastRowIndex} + theme="dark" + />
); diff --git a/upstream/src/components/logs/ansi-log-colors.scss b/upstream/src/components/logs/ansi-log-colors.scss new file mode 100644 index 00000000..d3eeda0d --- /dev/null +++ b/upstream/src/components/logs/ansi-log-colors.scss @@ -0,0 +1,122 @@ +// Shared ANSI color classes for LogViewer with useAnsiClasses +// Import this mixin in any SCSS file that wraps a LogViewer component + +@mixin ansi-log-colors { + // Foreground colors (optimized for dark/black background) + .ansi-black-fg { + color: #6e6e6e; + } + .ansi-red-fg { + color: #f14c4c; + } + .ansi-green-fg { + color: #23d18b; + } + .ansi-yellow-fg { + color: #f5f543; + } + .ansi-blue-fg { + color: #3b8eea; + } + .ansi-magenta-fg { + color: #d670d6; + } + .ansi-cyan-fg { + color: #29b8db; + } + .ansi-white-fg { + color: #e5e5e5; + } + + // Bright foreground colors + .ansi-bright-black-fg { + color: #a0a0a0; + } + .ansi-bright-red-fg { + color: #f14c4c; + } + .ansi-bright-green-fg { + color: #23d18b; + } + .ansi-bright-yellow-fg { + color: #f5f543; + } + .ansi-bright-blue-fg { + color: #73c3ff; + } + .ansi-bright-magenta-fg { + color: #ff7eff; + } + .ansi-bright-cyan-fg { + color: #5ff; + } + .ansi-bright-white-fg { + color: #fff; + } + + // Background colors + .ansi-black-bg { + background-color: #000; + } + .ansi-red-bg { + background-color: #bb0000; + } + .ansi-green-bg { + background-color: #00bb00; + } + .ansi-yellow-bg { + background-color: #bbbb00; + } + .ansi-blue-bg { + background-color: #0000bb; + } + .ansi-magenta-bg { + background-color: #bb00bb; + } + .ansi-cyan-bg { + background-color: #00bbbb; + } + .ansi-white-bg { + background-color: #fff; + } + + // Bright background colors + .ansi-bright-black-bg { + background-color: #555; + } + .ansi-bright-red-bg { + background-color: #f55; + } + .ansi-bright-green-bg { + background-color: #0f0; + } + .ansi-bright-yellow-bg { + background-color: #ff5; + } + .ansi-bright-blue-bg { + background-color: #55f; + } + .ansi-bright-magenta-bg { + background-color: #f5f; + } + .ansi-bright-cyan-bg { + background-color: #5ff; + } + .ansi-bright-white-bg { + background-color: #fff; + } + + // Text styles + .ansi-bold { + font-weight: bold; + } + .ansi-faint { + opacity: 0.5; + } + .ansi-italic { + font-style: italic; + } + .ansi-underline { + text-decoration: underline; + } +} diff --git a/upstream/src/components/logs/logs-utils.ts b/upstream/src/components/logs/logs-utils.ts index 7106f436..98494f11 100644 --- a/upstream/src/components/logs/logs-utils.ts +++ b/upstream/src/components/logs/logs-utils.ts @@ -14,6 +14,10 @@ import { import { errorModal } from '../modals/error-modal'; import { t } from '../utils/common-utils'; import { resourceURL } from '../utils/k8s-utils'; +import { + fetchMultiClusterLogs, + getMultiClusterPods, +} from '../utils/multi-cluster-api'; import { containerToLogSourceStatus } from '../utils/pipeline-utils'; import { getTaskRunLog } from '../utils/tekton-results'; import { LineBuffer } from './line-buffer'; @@ -94,7 +98,7 @@ export const getDownloadAllLogsCallback = ( namespace: string, pipelineRunName: string, isDevConsoleProxyAvailable?: boolean, -): (() => Promise) => { +): (() => Promise) => { const getWatchUrls = async (): Promise => { const stepsList: ContainerStatus[][] = await Promise.all( sortedTaskRunNames.map((currTask) => { @@ -185,7 +189,140 @@ export const getDownloadAllLogsCallback = ( saveAs(blob, `${pipelineRunName}.log`); return null; }; - return (): Promise => { + return (): Promise => { return fetchLogs(getWatchUrls()); }; }; + +/* Leaving it as is for now, we can and probably should refactor this a bit */ +export const getDownloadAllLogsCallbackMultiCluster = ( + sortedTaskRunNames: string[], + taskRuns: TaskRunKind[], + namespace: string, + pipelineRunName: string, + isDevConsoleProxyAvailable?: boolean, +): (() => Promise) => { + const fetchMcLogs = async (): Promise => { + let allLogs = ''; + + // Get all pods from multi-cluster API (or fall back on error) + let pods: PodKind[] = []; + try { + const podsResponse = await getMultiClusterPods( + namespace, + pipelineRunName, + ); + pods = podsResponse?.items || []; + } catch (err) { + console.warn( + 'Multi-cluster pods API failed in the Pipelines Operator:', + err, + ); + } + + for (const currTask of sortedTaskRunNames) { + const taskRun = taskRuns.find((t) => t.metadata.name === currTask); + if (!taskRun) continue; + + const pipelineTaskName = + taskRun.spec?.taskRef?.name ?? taskRun.metadata.name; + const podName = taskRun.status?.podName; + + allLogs += `${pipelineTaskName}\n\n`; + + if (!podName) { + allLogs += 'No pod found for this task\n\n'; + continue; + } + + const pod = pods.find((p) => p.metadata?.name === podName); + const containers: ContainerSpec[] = pod?.spec?.containers ?? []; + const containerStatuses: ContainerStatus[] = + pod?.status?.containerStatuses ?? []; + + // Fallback to Tekton Results if pod/containers are missing + if (containers.length === 0) { + const taskRunPath = + taskRun.metadata?.annotations?.['results.tekton.dev/record']; + + if (taskRunPath) { + try { + const log = await getTaskRunLog( + taskRunPath, + isDevConsoleProxyAvailable, + ); + allLogs += `${log}\n\n`; + } catch (trErr) { + allLogs += `Error fetching logs from Tekton Results: ${ + (trErr as Error).message + }\n\n`; + } + } else { + allLogs += + 'No containers found and no Tekton Results path available\n\n'; + } + continue; + } + + for (const container of containers) { + const containerStatus = containerStatuses.find( + (cs) => cs.name === container.name, + ); + const currentStatus = containerToLogSourceStatus(containerStatus); + + if (currentStatus === LOG_SOURCE_WAITING) continue; + + try { + const getContentPromise = fetchMultiClusterLogs( + namespace, + pipelineRunName, + podName, + container.name, + ).then((logs) => `${container.name.toUpperCase()}\n\n${logs}\n\n`); + + allLogs += + currentStatus === LOG_SOURCE_TERMINATED + ? await getContentPromise + : await Promise.race([ + getContentPromise, + new Promise((resolve) => + setTimeout(() => resolve(''), 1000), + ), + ]); + } catch (err) { + const taskRunPath = + taskRun.metadata?.annotations?.['results.tekton.dev/record']; + + if (taskRunPath) { + try { + const log = await getTaskRunLog( + taskRunPath, + isDevConsoleProxyAvailable, + ); + allLogs += `${container.name.toUpperCase()}\n\n${log}\n\n`; + } catch (trErr) { + allLogs += `${container.name.toUpperCase()}\n\nError fetching logs (multi-cluster: ${ + (err as Error).message + }, Tekton Results: ${(trErr as Error).message})\n\n`; + } + } else { + allLogs += `${container.name.toUpperCase()}\n\nError fetching logs: ${ + (err as Error).message + }\n\n`; + } + } + } + } + + const buffer = new LineBuffer(null); + buffer.ingest(allLogs); + + const blob = buffer.getBlob({ + type: 'text/plain;charset=utf-8', + }); + saveAs(blob, `${pipelineRunName}.log`); + return null; + }; + + return () => fetchMcLogs(); +}; diff --git a/upstream/src/components/pipeline-builder/CodeEditorField.tsx b/upstream/src/components/pipeline-builder/CodeEditorField.tsx index 6cf4889e..d9e23190 100644 --- a/upstream/src/components/pipeline-builder/CodeEditorField.tsx +++ b/upstream/src/components/pipeline-builder/CodeEditorField.tsx @@ -54,7 +54,7 @@ const CodeEditorField: React.FC = ({ language, }) => { const [field] = useField(name); - const { setFieldValue } = useFormikContext(); + const { setFieldValue, setStatus } = useFormikContext(); const { t } = useTranslation('plugin__pipelines-console-plugin'); const editorRef = React.useRef(); @@ -91,6 +91,11 @@ const CodeEditorField: React.FC = ({ [templateExtensions], ); + const handleOnChange = (newYAML: string) => { + setFieldValue(name, newYAML); + setStatus({ submitError: '' }); + }; + return (
= ({ ref={editorRef} value={field.value} minHeight={minHeight ?? '200px'} - onChange={(yaml: string) => setFieldValue(name, yaml)} + onChange={handleOnChange} onSave={onSave} showShortcuts={showShortcuts} showMiniMap={showMiniMap} diff --git a/upstream/src/components/pipeline-builder/PipelineBuilderForm.tsx b/upstream/src/components/pipeline-builder/PipelineBuilderForm.tsx index c0303639..c8df3a82 100644 --- a/upstream/src/components/pipeline-builder/PipelineBuilderForm.tsx +++ b/upstream/src/components/pipeline-builder/PipelineBuilderForm.tsx @@ -105,7 +105,6 @@ const PipelineBuilderForm: React.FC = (props) => { const updateTasks = (changes: CleanupResults): void => { const { tasks, listTasks, finallyTasks, finallyListTasks, loadingTasks } = changes; - setFieldValue('formData', { ...formData, tasks, @@ -179,6 +178,20 @@ const PipelineBuilderForm: React.FC = (props) => { } }, [selectedTask]); + const handleRemoveTask = React.useCallback( + async (taskName: string) => { + setSelectedTask(null); + updateTasks( + applyChange( + taskGroup, + { type: UpdateOperationType.REMOVE_TASK, data: { taskName } }, + namespace, + ), + ); + }, + [namespace, taskGroup, updateTasks], + ); + return ( = (props) => { onRemoveTask={(taskName: string) => { launchModal(RemoveTaskModal, { taskName, - onRemove: () => { - setSelectedTask(null); - updateTasks( - applyChange( - taskGroup, - { - type: UpdateOperationType.REMOVE_TASK, - data: { taskName }, - }, - namespace, - ), - ); - }, + onRemove: () => handleRemoveTask(taskName), }); }} selectedData={selectedTask} diff --git a/upstream/src/components/pipeline-builder/__tests__/CodeEditorField.spec.tsx b/upstream/src/components/pipeline-builder/__tests__/CodeEditorField.spec.tsx new file mode 100644 index 00000000..64719016 --- /dev/null +++ b/upstream/src/components/pipeline-builder/__tests__/CodeEditorField.spec.tsx @@ -0,0 +1,103 @@ +import * as React from 'react'; +import { render } from '@testing-library/react'; +import CodeEditorField from '../CodeEditorField'; + +const mockSetFieldValue = jest.fn(); +const mockSetStatus = jest.fn(); +let mockOnChange: (yaml: string) => void = jest.fn(); + +jest.mock('formik', () => ({ + useField: jest.fn(() => [ + { value: 'apiVersion: v1\nkind: Pipeline' }, + {}, + {}, + ]), + useFormikContext: jest.fn(() => ({ + setFieldValue: mockSetFieldValue, + setStatus: mockSetStatus, + })), +})); + +jest.mock('@openshift-console/dynamic-plugin-sdk', () => { + // eslint-disable-next-line @typescript-eslint/no-var-requires + const React = require('react'); + return { + CodeEditor: React.forwardRef(({ onChange }: any, ref: any) => { + mockOnChange = onChange; + return
; + }), + useK8sWatchResource: jest.fn(() => [[], true, null]), + useResolvedExtensions: jest.fn(() => [[]]), + isYAMLTemplate: jest.fn(), + }; +}); + +jest.mock('react-i18next', () => ({ + useTranslation: () => ({ t: (key: string) => key }), +})); + +jest.mock('../utils', () => ({ + getResourceSidebarSamples: jest.fn(() => ({ samples: [], snippets: [] })), +})); + +jest.mock('../swagger', () => ({ + definitionFor: jest.fn(() => ({ properties: [] })), +})); + +jest.mock('../CodeEditorSidebar', () => ({ + __esModule: true, + default: () => null, +})); + +describe('CodeEditorField', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should reset submitError when YAML content changes', () => { + render(); + + mockOnChange('apiVersion: v1\nkind: Pipeline\nmetadata:\n name: test'); + + expect(mockSetFieldValue).toHaveBeenCalledWith( + 'yamlData', + 'apiVersion: v1\nkind: Pipeline\nmetadata:\n name: test', + ); + expect(mockSetStatus).toHaveBeenCalledWith({ submitError: '' }); + }); + + it('should reset submitError on every YAML edit', () => { + render(); + + mockOnChange('edit 1'); + expect(mockSetStatus).toHaveBeenCalledWith({ submitError: '' }); + + jest.clearAllMocks(); + + mockOnChange('edit 2'); + expect(mockSetStatus).toHaveBeenCalledWith({ submitError: '' }); + }); + + it('should consistently reset submitError after re-renders (simulating editor toggle)', () => { + const { rerender } = render( + , + ); + + // First edit - simulate user making invalid YAML + mockOnChange('invalid yaml'); + expect(mockSetStatus).toHaveBeenCalledWith({ submitError: '' }); + + jest.clearAllMocks(); + + // Simulate re-render that would occur during view toggle + rerender(); + + // Edit after "returning" to YAML view - should still reset error + mockOnChange('apiVersion: v1\nkind: Pipeline'); + expect(mockSetFieldValue).toHaveBeenCalledWith( + 'yamlData', + 'apiVersion: v1\nkind: Pipeline', + ); + expect(mockSetStatus).toHaveBeenCalledWith({ submitError: '' }); + }); +}); diff --git a/upstream/src/components/pipeline-overview/PipelineRunItem.tsx b/upstream/src/components/pipeline-overview/PipelineRunItem.tsx index 30ce76d7..bcc3ee76 100644 --- a/upstream/src/components/pipeline-overview/PipelineRunItem.tsx +++ b/upstream/src/components/pipeline-overview/PipelineRunItem.tsx @@ -3,9 +3,10 @@ import { Grid, GridItem } from '@patternfly/react-core'; import { useTranslation } from 'react-i18next'; import { Link } from 'react-router-dom-v5-compat'; import { useTaskRuns } from '../hooks/useTaskRuns'; +import { useMultiClusterProxyService } from '../hooks/useMultiClusterProxyService'; import { resourcePath } from '../utils/resource-link'; import { PipelineRunModel } from '../../models'; -import { PipelineRunKind } from '../../types'; +import { ComputedStatus, PipelineRunKind } from '../../types'; import { getPLRLogSnippet } from '../logs/pipelineRunLogSnippet'; import { pipelineRunStatus } from '../utils/pipeline-filter-reducer'; import Status from '../status/Status'; @@ -20,13 +21,23 @@ type PipelineRunItemProps = { const PipelineRunItem: React.FC = ({ pipelineRun }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); + const { isResourceManagedByKueue } = useMultiClusterProxyService({ managedBy: pipelineRun?.spec?.managedBy }); const { metadata: { name, namespace, creationTimestamp }, status, } = pipelineRun; + const plrStatus = pipelineRunStatus(pipelineRun); + const pipelineRunFinished = + plrStatus !== ComputedStatus.Running && + plrStatus !== ComputedStatus.Pending && + plrStatus !== ComputedStatus.Cancelling; const [taskRuns] = useTaskRuns( pipelineRun?.metadata?.namespace, pipelineRun?.metadata?.name, + { + pipelineRunFinished, + pipelineRunManagedBy: pipelineRun?.spec?.managedBy + }, ); const path = resourcePath(PipelineRunModel, name, namespace); const lastUpdated = status @@ -57,7 +68,12 @@ const PipelineRunItem: React.FC = ({ pipelineRun }) => { {logDetails && ( - + {(logSnippet: string) => ( = ({ pipelineRun, }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); + const { isResourceManagedByKueue } = useMultiClusterProxyService({ managedBy: pipelineRun?.spec?.managedBy }); + const plrStatus = pipelineRunFilterReducer(pipelineRun); + const pipelineRunFinished = + plrStatus !== ComputedStatus.Running && + plrStatus !== ComputedStatus.Pending && + plrStatus !== ComputedStatus.Cancelling; const [taskRuns, taskRunsLoaded] = useTaskRuns( pipelineRun?.metadata?.namespace, pipelineRun?.metadata?.name, + { + pipelineRunFinished, + pipelineRunManagedBy: pipelineRun?.spec?.managedBy + }, ); const sbomTaskRun = taskRunsLoaded ? getSbomTaskRun(taskRuns) : null; @@ -68,6 +79,8 @@ const PipelineRunCustomDetails: React.FC = ({ )} diff --git a/upstream/src/components/pipelineRuns-details/PipelineRunDetailsPage.tsx b/upstream/src/components/pipelineRuns-details/PipelineRunDetailsPage.tsx index 0bb3aa35..dec9d47f 100644 --- a/upstream/src/components/pipelineRuns-details/PipelineRunDetailsPage.tsx +++ b/upstream/src/components/pipelineRuns-details/PipelineRunDetailsPage.tsx @@ -23,10 +23,12 @@ import { chainsSignedAnnotation, DELETED_RESOURCE_IN_K8S_ANNOTATION, RESOURCE_LOADED_FROM_RESULTS_ANNOTATION, + PIPELINE_RUN_MANAGED_BY_KUEUE_LABEL, } from '../../consts'; -import { ArchiveIcon } from '@patternfly/react-icons'; +import { ArchiveIcon, MulticlusterIcon } from '@patternfly/react-icons'; import SignedBadgeIcon from '../../images/SignedBadge'; import Status from '../status/Status'; +import { ComputedStatus } from '../../types'; import { pipelineRunFilterReducer, pipelineRunTitleFilterReducer, @@ -65,9 +67,18 @@ const PipelineRunDetailsPage: React.FC = ({ const { t } = useTranslation('plugin__pipelines-console-plugin'); const navigate = useNavigate(); const [pipelineRun, pipelineRunLoaded] = usePipelineRun(namespace, name); - const [taskRuns] = useTaskRuns(namespace, name); + const plrStatus = pipelineRunFilterReducer(pipelineRun); + const pipelineRunFinished = + plrStatus !== ComputedStatus.Running && + plrStatus !== ComputedStatus.Pending && + plrStatus !== ComputedStatus.Cancelling; + const [taskRuns] = useTaskRuns(namespace, name, { + pipelineRunFinished, + pipelineRunManagedBy: pipelineRun?.spec?.managedBy, + }); const PLRTasks = getTaskRunsOfPipelineRun(taskRuns, name); const currentUser = useGetActiveUser(); + const reRunAction = () => { const { pipelineRef, pipelineSpec } = pipelineRun.spec; if ( @@ -145,7 +156,7 @@ const PipelineRunDetailsPage: React.FC = ({ const resourceTitleFunc = React.useMemo((): string | JSX.Element => { return ( -
+
{pipelineRun?.metadata?.name}{' '} {pipelineRun?.metadata?.annotations?.[chainsSignedAnnotation] === 'true' && ( @@ -165,6 +176,12 @@ const PipelineRunDetailsPage: React.FC = ({ )} + {pipelineRun?.spec?.managedBy === + PIPELINE_RUN_MANAGED_BY_KUEUE_LABEL && ( + + + + )} { - constructor(props) { - super(props); - this.state = { activeItem: null, navUntouched: true }; - } - - componentDidMount() { - const { activeTask, taskRuns, obj } = this.props; - const sortedTaskRuns = this.getSortedTaskRun(taskRuns, [ - ...(obj?.status?.pipelineSpec?.tasks || []), - ...(obj?.status?.pipelineSpec?.finally || []), - ]); - const activeItem = this.getActiveTaskRun(sortedTaskRuns, activeTask); - this.setState({ activeItem }); - } - // eslint-disable-next-line @typescript-eslint/naming-convention - UNSAFE_componentWillReceiveProps(nextProps) { - if ( - this.props.obj !== nextProps.obj || - this.props.taskRuns !== nextProps.taskRuns - ) { - const { activeTask, taskRuns } = nextProps; - const sortedTaskRuns = this.getSortedTaskRun(taskRuns, [ - ...(this.props?.obj?.status?.pipelineSpec?.tasks || []), - ...(this.props?.obj?.status?.pipelineSpec?.finally || []), - ]); - const activeItem = this.getActiveTaskRun(sortedTaskRuns, activeTask); - this.state.navUntouched && this.setState({ activeItem }); - } - } +type PipelineRunLogsWithActiveTaskProps = { + obj: PipelineRunKind; +}; - getActiveTaskRun = (taskRuns: TaskRunKind[], activeTask: string): string => { - const activeTaskRun = activeTask - ? taskRuns.find((taskRun) => taskRun.metadata.name.includes(activeTask)) - : taskRuns.find( - (taskRun) => taskRunStatus(taskRun) === ComputedStatus.Failed, - ) || taskRuns[taskRuns.length - 1]; +const getActiveTaskRun = ( + taskRuns: TaskRunKind[], + activeTask: string, +): string => { + const activeTaskRun = activeTask + ? taskRuns.find( + (taskRun) => + taskRun.metadata?.labels?.[TektonResourceLabel.pipelineTask] === + activeTask, + ) + : taskRuns.find( + (taskRun) => taskRunStatus(taskRun) === ComputedStatus.Failed, + ) || taskRuns[taskRuns.length - 1]; - return activeTaskRun?.metadata.name; - }; + return activeTaskRun?.metadata.name; +}; - getSortedTaskRun = ( - tRuns: TaskRunKind[], - tasks: PipelineTask[], - ): TaskRunKind[] => { - const taskRuns = tRuns?.sort((a, b) => { - if (_.get(a, ['status', 'completionTime'], false)) { - return b.status?.completionTime && - new Date(a.status.completionTime) > new Date(b.status.completionTime) - ? 1 - : -1; - } - return b.status?.completionTime || - new Date(a.status?.startTime) > new Date(b.status?.startTime) +const getSortedTaskRun = ( + tRuns: TaskRunKind[], + tasks: PipelineTask[], +): TaskRunKind[] => { + const taskRuns = tRuns?.sort((a, b) => { + if (_.get(a, ['status', 'completionTime'], false)) { + return b.status?.completionTime && + new Date(a.status.completionTime) > new Date(b.status.completionTime) ? 1 : -1; - }); + } + return b.status?.completionTime || + new Date(a.status?.startTime) > new Date(b.status?.startTime) + ? 1 + : -1; + }); - const pipelineTaskNames = tasks?.map((t) => t?.name); - return ( - taskRuns?.sort( - (c, d) => - pipelineTaskNames?.indexOf( - c?.metadata?.labels?.[TektonResourceLabel.pipelineTask], - ) - - pipelineTaskNames?.indexOf( - d?.metadata?.labels?.[TektonResourceLabel.pipelineTask], - ), - ) || [] - ); - }; + const pipelineTaskNames = tasks?.map((t) => t?.name); + return ( + taskRuns?.sort( + (c, d) => + pipelineTaskNames?.indexOf( + c?.metadata?.labels?.[TektonResourceLabel.pipelineTask], + ) - + pipelineTaskNames?.indexOf( + d?.metadata?.labels?.[TektonResourceLabel.pipelineTask], + ), + ) || [] + ); +}; - onNavSelect = (e, item) => { - this.setState({ - activeItem: item.itemId, - navUntouched: false, - }); - }; +const PipelineRunLogsComponent: React.FC = ({ + obj, + activeTask, + activeStep, + taskRuns: tRuns, + isDevConsoleProxyAvailable, + isResourceManagedByKueue, +}) => { + const { t } = useTranslation(); + const [activeItem, setActiveItem] = React.useState(null); + const [navUntouched, setNavUntouched] = React.useState(true); - render() { - const { - obj, - t, - taskRuns: tRuns, - isDevConsoleProxyAvailable, - activeStep, - } = this.props; - const { activeItem } = this.state; - const taskRunNames = this.getSortedTaskRun(tRuns, [ + const pipelineTasks = React.useMemo( + () => [ ...(obj?.status?.pipelineSpec?.tasks || []), ...(obj?.status?.pipelineSpec?.finally || []), - ])?.map((tRun) => tRun.metadata.name); + ], + [obj?.status?.pipelineSpec?.tasks, obj?.status?.pipelineSpec?.finally], + ); + + // Set initial active item on mount + React.useEffect(() => { + const sortedTaskRuns = getSortedTaskRun(tRuns, pipelineTasks); + const newActiveItem = getActiveTaskRun(sortedTaskRuns, activeTask); + setActiveItem(newActiveItem); + }, []); // eslint-disable-line react-hooks/exhaustive-deps - const logDetails = getPLRLogSnippet( - obj, - tRuns, - ) as ErrorDetailsWithStaticLog; - const pipelineStatus = pipelineRunStatus(obj); - const taskCount = taskRunNames.length; - const downloadAllCallback = - taskCount > 1 - ? getDownloadAllLogsCallback( + // Update active item when obj or taskRuns change (only if nav is untouched) + React.useEffect(() => { + if (navUntouched) { + const sortedTaskRuns = getSortedTaskRun(tRuns, pipelineTasks); + const newActiveItem = getActiveTaskRun(sortedTaskRuns, activeTask); + setActiveItem(newActiveItem); + } + }, [obj, tRuns, activeTask, pipelineTasks, navUntouched]); + + const onNavSelect = React.useCallback((_e, item) => { + setActiveItem(item.itemId); + setNavUntouched(false); + }, []); + + const taskRunNames = + getSortedTaskRun(tRuns, pipelineTasks)?.map((tRun) => tRun.metadata.name) ?? + []; + + const logDetails = getPLRLogSnippet(obj, tRuns) as ErrorDetailsWithStaticLog; + const pipelineStatus = pipelineRunStatus(obj); + const taskCount = taskRunNames.length; + const downloadAllCallback = + taskCount > 1 + ? isResourceManagedByKueue + ? getDownloadAllLogsCallbackMultiCluster( taskRunNames, tRuns, obj.metadata?.namespace, obj.metadata?.name, isDevConsoleProxyAvailable, ) - : undefined; - const activeTaskRun = tRuns.find( - (taskRun) => taskRun.metadata.name === activeItem, - ); - const podName = activeTaskRun?.status?.podName; - const taskName = - activeTaskRun?.metadata?.labels?.[TektonResourceLabel.pipelineTask] || - '-'; - const pipelineRunFinished = pipelineStatus !== ComputedStatus.Running; - const resources: WatchK8sResource = taskCount > 0 && - podName && { - name: podName, - kind: 'Pod', - namespace: obj.metadata.namespace, - isList: false, - }; - const waitingForPods = !!(activeItem && !resources); + : getDownloadAllLogsCallback( + taskRunNames, + tRuns, + obj.metadata?.namespace, + obj.metadata?.name, + isDevConsoleProxyAvailable, + ) + : undefined; - const selectedItemRef = (item: HTMLSpanElement) => { - if (item?.scrollIntoView) { - item.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); - } + const activeTaskRun = tRuns.find( + (taskRun) => taskRun.metadata.name === activeItem, + ); + const podName = activeTaskRun?.status?.podName; + const taskName = + activeTaskRun?.metadata?.labels?.[TektonResourceLabel.pipelineTask] || '-'; + const pipelineRunFinished = pipelineStatus !== ComputedStatus.Running; + const resources: WatchK8sResource = taskCount > 0 && + podName && { + name: podName, + kind: 'Pod', + namespace: obj.metadata.namespace, + isList: false, }; + const waitingForPods = !!(activeItem && !resources); + + const selectedItemRef = React.useCallback((item: HTMLSpanElement) => { + if (item?.scrollIntoView) { + item.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); + } + }, []); - const logsPath = `${resourcePathFromModel( - PipelineRunModel, - obj.metadata.name, - obj.metadata.namespace, - )}/logs`; + const logsPath = `${resourcePathFromModel( + PipelineRunModel, + obj.metadata.name, + obj.metadata.namespace, + )}/logs`; - return ( -
-
-
- {taskCount > 0 ? ( - + ) : ( +
+ {t('No task runs found')} +
+ )}
+ {activeItem && resources ? ( + + ) : ( +
+ {taskName} + } + hasLineNumbers={false} + isTextWrapped={false} + theme="dark" + height="100%" + data={ + waitingForPods && !pipelineRunFinished + ? `Waiting for ${taskName} task to start` + : !resources && pipelineRunFinished && !obj.status + ? t('No logs found') + : logDetails?.staticMessage ?? '' + } + /> +
+ )}
- ); - } -} - -type PipelineRunLogsWithActiveTaskProps = { - obj: PipelineRunKind; +
+ ); }; -const TranslatedPipelineRunLogs = withTranslation()( - PipelineRunLogsWithTranslation, -); - -const PipelineRunLogs = (props) => { +const PipelineRunLogs: React.FC = (props) => { const isDevConsoleProxyAvailable = useFlag(FLAGS.DEVCONSOLE_PROXY); return ( - @@ -295,24 +295,51 @@ const PipelineRunLogs = (props) => { export const PipelineRunLogsWithActiveTask: React.FC< PipelineRunLogsWithActiveTaskProps > = ({ obj }) => { + const { t } = useTranslation('plugin__pipelines-console-plugin'); const location = useLocation(); const params = new URLSearchParams(location.search); const activeTask = params?.get('taskName'); const activeStep = params?.get('step'); - const [taskRuns, taskRunsLoaded] = useTaskRuns( - obj?.metadata?.namespace, - obj?.metadata?.name, - ); + const plrStatus = pipelineRunStatus(obj); + const pipelineRunFinished = + plrStatus !== ComputedStatus.Running && + plrStatus !== ComputedStatus.Pending && + plrStatus !== ComputedStatus.Cancelling; + const [taskRuns, taskRunsLoaded, , , pendingAdmission, proxyUnavailable] = + useTaskRuns(obj?.metadata?.namespace, obj?.metadata?.name, { + pipelineRunFinished, + pipelineRunManagedBy: obj?.spec?.managedBy + }); + const { isResourceManagedByKueue } = useMultiClusterProxyService({ managedBy: obj?.spec?.managedBy }); return ( - taskRunsLoaded && ( - - ) + <> + {proxyUnavailable && ( + + )} + {pendingAdmission && ( + + )} + {taskRunsLoaded && ( + + )} + ); }; diff --git a/upstream/src/components/pipelineRuns-details/PipelineRunVisualization.tsx b/upstream/src/components/pipelineRuns-details/PipelineRunVisualization.tsx index c8818183..3646c8d0 100644 --- a/upstream/src/components/pipelineRuns-details/PipelineRunVisualization.tsx +++ b/upstream/src/components/pipelineRuns-details/PipelineRunVisualization.tsx @@ -1,9 +1,12 @@ import * as React from 'react'; +import { Alert } from '@patternfly/react-core'; +import { useTranslation } from 'react-i18next'; import { usePipelineFromPipelineRun } from '../hooks/usePipelineFromPipelineRun'; import { useTaskRuns } from '../hooks/useTaskRuns'; -import { PipelineKind, PipelineRunKind } from '../../types'; +import { ComputedStatus, PipelineKind, PipelineRunKind } from '../../types'; import { LoadingInline } from '../Loading'; import PipelineVisualization from '../pipelines-details/PipelineVisualization'; +import { pipelineRunFilterReducer } from '../utils/pipeline-filter-reducer'; import './PipelineRunVisualization.scss'; type PipelineRunVisualizationProps = { @@ -13,10 +16,18 @@ type PipelineRunVisualizationProps = { const PipelineRunVisualization: React.FC = ({ pipelineRun, }) => { - const [taskRuns, taskRunsLoaded] = useTaskRuns( - pipelineRun?.metadata?.namespace, - pipelineRun?.metadata?.name, - ); + const { t } = useTranslation('plugin__pipelines-console-plugin'); + const plrStatus = pipelineRunFilterReducer(pipelineRun); + // Continue polling while running, pending, or cancelling (still in progress) + const pipelineRunFinished = + plrStatus !== ComputedStatus.Running && + plrStatus !== ComputedStatus.Pending && + plrStatus !== ComputedStatus.Cancelling; + const [taskRuns, taskRunsLoaded, , , pendingAdmission, proxyUnavailable] = + useTaskRuns(pipelineRun?.metadata?.namespace, pipelineRun?.metadata?.name, { + pipelineRunFinished, + pipelineRunManagedBy: pipelineRun?.spec?.managedBy + }); const pipeline: PipelineKind = usePipelineFromPipelineRun(pipelineRun); if (!pipeline) { return ( @@ -26,13 +37,31 @@ const PipelineRunVisualization: React.FC = ({ ); } return ( - taskRunsLoaded && ( - - ) + <> + {proxyUnavailable && ( + + )} + {pendingAdmission && ( + + )} + {taskRunsLoaded && ( + + )} + ); }; diff --git a/upstream/src/components/pipelineRuns-details/__tests__/PipelineRunLogs.spec.tsx b/upstream/src/components/pipelineRuns-details/__tests__/PipelineRunLogs.spec.tsx new file mode 100644 index 00000000..fbb89b9c --- /dev/null +++ b/upstream/src/components/pipelineRuns-details/__tests__/PipelineRunLogs.spec.tsx @@ -0,0 +1,117 @@ +import { TektonResourceLabel } from '../../../consts'; +import { ComputedStatus, TaskRunKind } from '../../../types'; +import { taskRunStatus } from '../../utils/pipeline-utils'; + +jest.mock('../../utils/pipeline-utils', () => ({ + taskRunStatus: jest.fn(), +})); + +class PipelineRunLogsTest { + getActiveTaskRun = (taskRuns: TaskRunKind[], activeTask: string): string => { + const activeTaskRun = activeTask + ? taskRuns.find( + (taskRun) => + taskRun.metadata?.labels?.[TektonResourceLabel.pipelineTask] === + activeTask, + ) + : taskRuns.find( + (taskRun) => taskRunStatus(taskRun) === ComputedStatus.Failed, + ) || taskRuns[taskRuns.length - 1]; + + return activeTaskRun?.metadata.name; + }; +} + +describe('PipelineRunLogs - getActiveTaskRun', () => { + const mockTaskRuns: TaskRunKind[] = [ + { + kind: 'TaskRun', + apiVersion: 'tekton.dev/v1', + metadata: { + name: 'pipeline-test-tkn-abc', + namespace: 'test-ns', + labels: { + [TektonResourceLabel.pipelineTask]: 'tkn', + }, + }, + spec: {}, + status: {}, + } as TaskRunKind, + { + kind: 'TaskRun', + apiVersion: 'tekton.dev/v1', + metadata: { + name: 'pipeline-test-kn-def', + namespace: 'test-ns', + labels: { + [TektonResourceLabel.pipelineTask]: 'kn', + }, + }, + spec: {}, + status: {}, + } as TaskRunKind, + { + kind: 'TaskRun', + apiVersion: 'tekton.dev/v1', + metadata: { + name: 'pipeline-test-kn-1hr-ghi', + namespace: 'test-ns', + labels: { + [TektonResourceLabel.pipelineTask]: 'kn-1hr', + }, + }, + spec: {}, + status: {}, + } as TaskRunKind, + ]; + + let instance: PipelineRunLogsTest; + + beforeEach(() => { + instance = new PipelineRunLogsTest(); + jest.clearAllMocks(); + }); + + it('should return exact match for activeTask "kn" and not match "tkn" containing "kn"', () => { + const result = instance.getActiveTaskRun(mockTaskRuns, 'kn'); + expect(result).toBe('pipeline-test-kn-def'); + // Ensure it doesn't return tkn which contains 'kn' + expect(result).not.toBe('pipeline-test-tkn-abc'); + }); + + it('should return exact match for activeTask "tkn" and not partially match other tasks', () => { + const result = instance.getActiveTaskRun(mockTaskRuns, 'tkn'); + expect(result).toBe('pipeline-test-tkn-abc'); + // Ensure it doesn't match kn or kn-1hr + expect(result).not.toBe('pipeline-test-kn-def'); + expect(result).not.toBe('pipeline-test-kn-1hr-ghi'); + }); + + it('should return the failed task when no activeTask is provided', () => { + const failedTaskRun: TaskRunKind = { + kind: 'TaskRun', + apiVersion: 'tekton.dev/v1', + metadata: { + name: 'pipeline-test-failed-task', + namespace: 'test-ns', + labels: { + [TektonResourceLabel.pipelineTask]: 'failed-task', + }, + }, + spec: {}, + status: {}, + } as TaskRunKind; + + const taskRunsWithFailed = [...mockTaskRuns, failedTaskRun]; + + (taskRunStatus as jest.Mock).mockImplementation((taskRun: TaskRunKind) => { + if (taskRun.metadata.name === 'pipeline-test-failed-task') { + return ComputedStatus.Failed; + } + return ComputedStatus.Succeeded; + }); + + const result = instance.getActiveTaskRun(taskRunsWithFailed, ''); + expect(result).toBe('pipeline-test-failed-task'); + }); +}); diff --git a/upstream/src/components/pipelineRuns-list/PipelineRunsRow.tsx b/upstream/src/components/pipelineRuns-list/PipelineRunsRow.tsx index d96e0274..aebecab5 100644 --- a/upstream/src/components/pipelineRuns-list/PipelineRunsRow.tsx +++ b/upstream/src/components/pipelineRuns-list/PipelineRunsRow.tsx @@ -6,7 +6,7 @@ import { getGroupVersionKindForModel, } from '@openshift-console/dynamic-plugin-sdk'; import * as React from 'react'; -import { ArchiveIcon } from '@patternfly/react-icons'; +import { ArchiveIcon, MulticlusterIcon } from '@patternfly/react-icons'; import { ComputedStatus, PipelineRunKind, TaskRunKind } from '../../types'; import { ResourceLinkWithIcon } from '../utils/resource-link'; import { PipelineRunModel } from '../../models'; @@ -14,6 +14,7 @@ import { Tooltip } from '@patternfly/react-core'; import { DELETED_RESOURCE_IN_K8S_ANNOTATION, RESOURCE_LOADED_FROM_RESULTS_ANNOTATION, + PIPELINE_RUN_MANAGED_BY_KUEUE_LABEL, RepoAnnotationFields, RepositoryAnnotations, RepositoryFields, @@ -136,6 +137,11 @@ const PipelineRunRowTable = ({
) : null} + {obj.spec?.managedBy === PIPELINE_RUN_MANAGED_BY_KUEUE_LABEL ? ( + + + + ) : null} } /> @@ -273,11 +279,19 @@ const PipelineRunRowWithoutTaskRuns: React.FC = React.memo(({ obj, activeColumnIDs, repositoryPLRs, currentUser }) => { const cacheKey = `${obj.metadata.namespace}-${obj.metadata.name}`; + const plrStatus = pipelineRunStatus(obj); + const pipelineRunFinished = + plrStatus !== ComputedStatus.Running && + plrStatus !== ComputedStatus.Pending && + plrStatus !== ComputedStatus.Cancelling; const [PLRTaskRuns, taskRunsLoaded] = useTaskRuns( obj.metadata.namespace, obj.metadata.name, - undefined, - `${obj.metadata.namespace}-${obj.metadata.name}`, + { + cacheKey: `${obj.metadata.namespace}-${obj.metadata.name}`, + pipelineRunFinished, + pipelineRunManagedBy: obj?.spec?.managedBy + }, ); InFlightStoreForTaskRunsForPLR[cacheKey] = false; if (taskRunsLoaded) { diff --git a/upstream/src/components/pipelineRuns-list/usePipelineRunsColumns.ts b/upstream/src/components/pipelineRuns-list/usePipelineRunsColumns.ts index 35eb198f..9eb3b676 100644 --- a/upstream/src/components/pipelineRuns-list/usePipelineRunsColumns.ts +++ b/upstream/src/components/pipelineRuns-list/usePipelineRunsColumns.ts @@ -8,9 +8,8 @@ import { RepositoryLabels, } from '../../consts'; import { PipelineRunKind } from '../../types'; +import { sortPipelineAndTaskRunsByDuration } from '../pipelines-details/pipeline-step-utils'; import { tableColumnClasses } from './PipelineRunsRow'; -import { sortPipelineRunsByDuration } from '../pipelines-details/pipeline-step-utils'; - const usePipelineRunsColumns = ( namespace: string, repositoryPLRs?: boolean, @@ -77,7 +76,7 @@ const usePipelineRunsColumns = ( { id: 'duration', title: t('Duration'), - sort: sortPipelineRunsByDuration, + sort: sortPipelineAndTaskRunsByDuration, transforms: [sortable], props: { className: tableColumnClasses.duration }, }, diff --git a/upstream/src/components/pipelines-details/__tests__/pipeline-step-utils.spec.ts b/upstream/src/components/pipelines-details/__tests__/pipeline-step-utils.spec.ts index 28d9b45a..1f9ae891 100644 --- a/upstream/src/components/pipelines-details/__tests__/pipeline-step-utils.spec.ts +++ b/upstream/src/components/pipelines-details/__tests__/pipeline-step-utils.spec.ts @@ -1,6 +1,6 @@ import { ComputedStatus, PipelineRunKind } from '../../../types'; import { pipelineRunStatus } from '../../utils/pipeline-filter-reducer'; -import { sortPipelineRunsByDuration } from '../pipeline-step-utils'; +import { sortPipelineAndTaskRunsByDuration } from '../pipeline-step-utils'; // Mock the pipeline-filter-reducer module jest.mock('../../utils/pipeline-filter-reducer', () => ({ @@ -11,7 +11,7 @@ const mockPipelineRunStatus = pipelineRunStatus as jest.MockedFunction< typeof pipelineRunStatus >; -describe('sortPipelineRunsByDuration', () => { +describe('sortPipelineAndTaskRunsByDuration', () => { const createMockPipelineRun = ( name: string, startTime?: string, @@ -63,7 +63,7 @@ describe('sortPipelineRunsByDuration', () => { ), ]; - const result = sortPipelineRunsByDuration(pipelineRuns, 'asc'); + const result = sortPipelineAndTaskRunsByDuration(pipelineRuns, 'asc'); expect(result[0].metadata.name).toBe('run-very-short'); expect(result[1].metadata.name).toBe('run-short'); @@ -88,7 +88,7 @@ describe('sortPipelineRunsByDuration', () => { ), ]; - const result = sortPipelineRunsByDuration(pipelineRuns, 'asc'); + const result = sortPipelineAndTaskRunsByDuration(pipelineRuns, 'asc'); expect(result[0].metadata.name).toBe('run-completed'); expect(result[1].metadata.name).toBe('run-running'); @@ -117,7 +117,7 @@ describe('sortPipelineRunsByDuration', () => { ), ]; - const result = sortPipelineRunsByDuration(pipelineRuns, 'desc'); + const result = sortPipelineAndTaskRunsByDuration(pipelineRuns, 'desc'); expect(result[0].metadata.name).toBe('run-long'); expect(result[1].metadata.name).toBe('run-medium'); @@ -138,7 +138,7 @@ describe('sortPipelineRunsByDuration', () => { ), ]; - const result = sortPipelineRunsByDuration(pipelineRuns, 'asc'); + const result = sortPipelineAndTaskRunsByDuration(pipelineRuns, 'asc'); expect(result[0].metadata.name).toBe('run-no-completion'); expect(result[1].metadata.name).toBe('run-normal'); @@ -163,7 +163,7 @@ describe('sortPipelineRunsByDuration', () => { ), ]; - const result = sortPipelineRunsByDuration(pipelineRuns, 'asc'); + const result = sortPipelineAndTaskRunsByDuration(pipelineRuns, 'asc'); expect(result[0].metadata.name).toBe('run-a'); expect(result[1].metadata.name).toBe('run-m'); @@ -185,7 +185,7 @@ describe('sortPipelineRunsByDuration', () => { ]; const originalOrder = pipelineRuns.map((run) => run.metadata.name); - sortPipelineRunsByDuration(pipelineRuns, 'asc'); + sortPipelineAndTaskRunsByDuration(pipelineRuns, 'asc'); // Original array should remain unchanged expect(pipelineRuns.map((run) => run.metadata.name)).toEqual( @@ -194,7 +194,7 @@ describe('sortPipelineRunsByDuration', () => { }); it('should handle empty array', () => { - const result = sortPipelineRunsByDuration([], 'asc'); + const result = sortPipelineAndTaskRunsByDuration([], 'asc'); expect(result).toEqual([]); }); @@ -207,7 +207,7 @@ describe('sortPipelineRunsByDuration', () => { ), ]; - const result = sortPipelineRunsByDuration(pipelineRuns, 'asc'); + const result = sortPipelineAndTaskRunsByDuration(pipelineRuns, 'asc'); expect(result).toHaveLength(1); expect(result[0].metadata.name).toBe('single-run'); @@ -229,7 +229,7 @@ describe('sortPipelineRunsByDuration', () => { ), ]; - const result = sortPipelineRunsByDuration(pipelineRuns, 'asc'); + const result = sortPipelineAndTaskRunsByDuration(pipelineRuns, 'asc'); // Should handle negative duration gracefully expect(result).toHaveLength(2); diff --git a/upstream/src/components/pipelines-details/pipeline-step-utils.ts b/upstream/src/components/pipelines-details/pipeline-step-utils.ts index b6d19c4a..bcac9f15 100644 --- a/upstream/src/components/pipelines-details/pipeline-step-utils.ts +++ b/upstream/src/components/pipelines-details/pipeline-step-utils.ts @@ -1,7 +1,6 @@ -import { ComputedStatus } from '../../types'; -import { calculateDuration } from '../utils/pipeline-utils'; -import { PipelineRunKind } from '../../types'; +import { ComputedStatus, PipelineRunKind, TaskRunKind } from '../../types'; import { pipelineRunStatus } from '../utils/pipeline-filter-reducer'; +import { calculateDuration } from '../utils/pipeline-utils'; enum TerminatedReasons { Completed = 'Completed', @@ -100,12 +99,14 @@ export const createStepStatus = ( }; }; -export const sortPipelineRunsByDuration = ( - pipelineRuns: PipelineRunKind[], +export const sortPipelineAndTaskRunsByDuration = < + T extends PipelineRunKind | TaskRunKind, +>( + runs: T[], direction: 'asc' | 'desc', -) => { - return [...pipelineRuns].sort((a: PipelineRunKind, b: PipelineRunKind) => { - const getDurationMs = (run: PipelineRunKind): number => { +): T[] => { + return [...runs].sort((a: T, b: T) => { + const getDurationMs = (run: T): number => { const startTime = run?.status?.startTime ?? null; const completionTime = run?.status?.completionTime ?? null; diff --git a/upstream/src/components/pipelines-list/PipelineRow.tsx b/upstream/src/components/pipelines-list/PipelineRow.tsx index 0b66c9d5..f473d4ad 100644 --- a/upstream/src/components/pipelines-list/PipelineRow.tsx +++ b/upstream/src/components/pipelines-list/PipelineRow.tsx @@ -164,11 +164,19 @@ const PipelineRowWithoutTaskRuns: React.FC = const PipelineRowWithTaskRunsFetch: React.FC = React.memo(({ obj, activeColumnIDs, currentUser }) => { const cacheKey = `${obj.latestRun.metadata.namespace}-${obj.latestRun.metadata.name}`; + const plrStatus = pipelineRunStatus(obj.latestRun); + const pipelineRunFinished = + plrStatus !== ComputedStatus.Running && + plrStatus !== ComputedStatus.Pending && + plrStatus !== ComputedStatus.Cancelling; const [PLRTaskRuns, taskRunsLoaded] = useTaskRuns( obj.latestRun.metadata.namespace, obj.latestRun.metadata.name, - undefined, - `${obj.latestRun.metadata.namespace}-${obj.latestRun.metadata.name}`, + { + cacheKey: `${obj.latestRun.metadata.namespace}-${obj.latestRun.metadata.name}`, + pipelineRunFinished, + pipelineRunManagedBy: obj?.latestRun?.spec?.managedBy + }, ); InFlightStoreForTaskRunsForPLR[cacheKey] = false; if (taskRunsLoaded) { diff --git a/upstream/src/components/pipelines-list/status/PipelineRunStatus.tsx b/upstream/src/components/pipelines-list/status/PipelineRunStatus.tsx index a4c7a89b..bb67cb92 100644 --- a/upstream/src/components/pipelines-list/status/PipelineRunStatus.tsx +++ b/upstream/src/components/pipelines-list/status/PipelineRunStatus.tsx @@ -8,6 +8,7 @@ import StatusPopoverContent from './StatusPopoverContent'; import { LoadingInline } from '../../Loading'; import { getPLRLogSnippet } from '../../logs/pipelineRunLogSnippet'; import { getReferenceForModel } from '../../pipelines-overview/utils'; +import { useMultiClusterProxyService } from '../../hooks/useMultiClusterProxyService'; type PipelineRunStatusProps = { status: string; @@ -24,6 +25,7 @@ const PipelineRunStatus: React.FC = ({ taskRunsLoaded, }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); + const { isResourceManagedByKueue } = useMultiClusterProxyService({ managedBy: pipelineRun?.spec?.managedBy }); const logPath = `/k8s/ns/${ pipelineRun?.metadata.namespace }/${getReferenceForModel(PipelineRunModel)}/${ @@ -36,6 +38,8 @@ const PipelineRunStatus: React.FC = ({ logDetails={getPLRLogSnippet(pipelineRun, taskRuns)} namespace={pipelineRun?.metadata.namespace} link={{t('View logs')}} + isResourceManagedByKueue={isResourceManagedByKueue} + pipelineRunName={pipelineRun?.metadata.name} /> ) : ( diff --git a/upstream/src/components/pipelines-list/status/StatusPopoverContent.tsx b/upstream/src/components/pipelines-list/status/StatusPopoverContent.tsx index 9d2286b9..e07af309 100644 --- a/upstream/src/components/pipelines-list/status/StatusPopoverContent.tsx +++ b/upstream/src/components/pipelines-list/status/StatusPopoverContent.tsx @@ -7,15 +7,24 @@ type StatusPopoverContentProps = { link?: React.ReactNode; namespace: string; logDetails: CombinedErrorDetails; + isResourceManagedByKueue?: boolean; + pipelineRunName?: string; }; const StatusPopoverContent: React.FC = ({ namespace, logDetails, link = null, + isResourceManagedByKueue, + pipelineRunName, }) => { return (
- + {(logSnippet: string) => ( <>
{logSnippet}
diff --git a/upstream/src/components/pipelines-metrics/PipelinesAverageDuration.tsx b/upstream/src/components/pipelines-metrics/PipelinesAverageDuration.tsx index 9817ab77..4834bd03 100644 --- a/upstream/src/components/pipelines-metrics/PipelinesAverageDuration.tsx +++ b/upstream/src/components/pipelines-metrics/PipelinesAverageDuration.tsx @@ -12,8 +12,9 @@ import { ChartThemeColor, ChartVoronoiContainer, } from '@patternfly/react-charts'; -import { Card, CardBody, CardTitle } from '@patternfly/react-core'; +import { Alert, Card, CardBody, CardTitle } from '@patternfly/react-core'; import { useFlag } from '@openshift-console/dynamic-plugin-sdk'; +import { LoadingInline } from '../Loading'; import { formatDate, getDropDownDate, @@ -77,6 +78,10 @@ const PipelinesAverageDuration: React.FC = ({ const { t } = useTranslation('plugin__pipelines-console-plugin'); const isDevConsoleProxyAvailable = useFlag(FLAGS.DEVCONSOLE_PROXY); const [data, setData] = React.useState(); + const [loaded, setLoaded] = React.useState(false); + const [pipelineAverageDurationError, setPipelineAverageDurationError] = + React.useState(); + const abortControllerRef = React.useRef(); const startTimespan = timespan - parsePrometheusDuration('1d'); const endDate = new Date(Date.now()).setHours(0, 0, 0, 0); const startDate = new Date(Date.now() - startTimespan).setHours(0, 0, 0, 0); @@ -90,11 +95,29 @@ const PipelinesAverageDuration: React.FC = ({ namespace = '-'; } + React.useEffect(() => { + return () => { + abortControllerRef.current?.abort(); + }; + }, []); + + React.useEffect(() => { + setLoaded(false); + setPipelineAverageDurationError(undefined); + setData(undefined); + }, [namespace, timespan]); + const [tickValues, type] = getXaxisValues(timespan); const date = getDropDownDate(timespan).toISOString(); const getSummaryData = (group_by: string) => { + abortControllerRef.current?.abort(); + abortControllerRef.current = new AbortController(); + setData(undefined); + setPipelineAverageDurationError(undefined); + setLoaded(false); + const summaryOpt = { summary: 'avg_duration', data_type: DataType.PipelineRun, @@ -107,12 +130,23 @@ const PipelinesAverageDuration: React.FC = ({ summaryOpt, undefined, isDevConsoleProxyAvailable, + abortControllerRef.current.signal, + 90000, ) .then((d) => { + setLoaded(true); + setPipelineAverageDurationError(undefined); setData(d); }) .catch((e) => { - throw e; + if (e.name === 'AbortError') { + return; + } + setLoaded(true); + setPipelineAverageDurationError( + e.message || t('Failed to load average duration data'), + ); + setData(undefined); }); }; @@ -204,42 +238,57 @@ const PipelinesAverageDuration: React.FC = ({ {t('Average duration')} -
- `${datum.y}m`} - constrainToVisibleArea - /> - } - scale={{ x: 'time', y: 'linear' }} - domain={domainValue} - domainPadding={{ x: [30, 25] }} - height={145} - width={400} - padding={{ - top: 10, - bottom: 55, - left: 50, - }} - themeColor={ChartThemeColor.blue} - > - - `${v}m`} - /> - - - - -
+ {pipelineAverageDurationError ? ( + + ) : ( +
+ {loaded ? ( + `${datum.y}m`} + constrainToVisibleArea + /> + } + scale={{ x: 'time', y: 'linear' }} + domain={domainValue} + domainPadding={{ x: [30, 25] }} + height={145} + width={400} + padding={{ + top: 10, + bottom: 55, + left: 50, + }} + themeColor={ChartThemeColor.blue} + > + + `${v}m`} + /> + + + + + ) : ( +
+ +
+ )} +
+ )}
diff --git a/upstream/src/components/pipelines-metrics/PipelinesAverageDurationK8s.tsx b/upstream/src/components/pipelines-metrics/PipelinesAverageDurationK8s.tsx index eb747853..d5e5d5c5 100644 --- a/upstream/src/components/pipelines-metrics/PipelinesAverageDurationK8s.tsx +++ b/upstream/src/components/pipelines-metrics/PipelinesAverageDurationK8s.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import _ from 'lodash'; -import * as classNames from 'classnames'; +import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; import { DomainPropType, DomainTuple } from 'victory-core'; import { @@ -12,7 +12,7 @@ import { ChartThemeColor, ChartVoronoiContainer, } from '@patternfly/react-charts'; -import { Card, CardBody, CardTitle } from '@patternfly/react-core'; +import { Alert, Card, CardBody, CardTitle } from '@patternfly/react-core'; import { formatDate, getXaxisValues, @@ -21,6 +21,7 @@ import { parsePrometheusDuration, } from '../pipelines-overview/dateTime'; import { ALL_NAMESPACES_KEY } from '../../consts'; +import { LoadingInline } from '../Loading'; import { usePipelineMetricsForAllNamespacePoll, usePipelineMetricsForNamespaceForPipelinePoll, @@ -94,8 +95,13 @@ const PipelinesAverageDurationK8s: React.FC = ({ y: domainY || undefined, }; const [tickValues, type] = getXaxisValues(timespan); + const [averageDurationError, setAverageDurationError] = React.useState< + string | null + >(null); + const [averageDurationLoading, setAverageDurationLoading] = + React.useState(true); - const [totalPipelineRunsCountData] = + const [totalPipelineRunsCountData, countError, countLoading] = parentName && namespace ? usePipelineMetricsForNamespaceForPipelinePoll({ namespace, @@ -105,6 +111,7 @@ const PipelinesAverageDurationK8s: React.FC = ({ name: parentName, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_NAMESPACE_FOR_PIPELINE, + timeout: 90000, }) : namespace == ALL_NAMESPACES_KEY ? usePipelineMetricsForAllNamespacePoll({ @@ -112,6 +119,7 @@ const PipelinesAverageDurationK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_ALL_NAMESPACE, + timeout: 90000, }) : usePipelineMetricsForNamespacePoll({ namespace, @@ -119,9 +127,10 @@ const PipelinesAverageDurationK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_NAMESPACE, + timeout: 90000, }); - const [totalPipelineRunsDurationData] = + const [totalPipelineRunsDurationData, durationError, durationLoading] = parentName && namespace ? usePipelineMetricsForNamespaceForPipelinePoll({ namespace, @@ -131,6 +140,7 @@ const PipelinesAverageDurationK8s: React.FC = ({ name: parentName, metricsQuery: PipelineQuery.PIPELINERUN_DURATION_FOR_NAMESPACE_FOR_PIPELINE, + timeout: 90000, }) : namespace == ALL_NAMESPACES_KEY ? usePipelineMetricsForAllNamespacePoll({ @@ -138,6 +148,7 @@ const PipelinesAverageDurationK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_DURATION_FOR_ALL_NAMESPACE, + timeout: 90000, }) : usePipelineMetricsForNamespacePoll({ namespace, @@ -145,8 +156,22 @@ const PipelinesAverageDurationK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_DURATION_FOR_NAMESPACE, + timeout: 90000, }); + React.useEffect(() => { + const hasNonAbortError = + (countError && countError.name !== 'AbortError') || + (durationError && durationError.name !== 'AbortError'); + setAverageDurationError( + hasNonAbortError ? t('Unable to load average duration') : null, + ); + }, [countError, durationError]); + + React.useEffect(() => { + setAverageDurationLoading(countLoading || durationLoading); + }, [countLoading, durationLoading]); + const combinedData = totalPipelineRunsCountData?.data?.result[0]?.values?.map( (value1) => { const group_value = value1[0]; @@ -273,42 +298,57 @@ const PipelinesAverageDurationK8s: React.FC = ({ {t('Average duration')} -
- `${datum.y}m`} - constrainToVisibleArea - /> - } - scale={{ x: 'time', y: 'linear' }} - domain={domainValue} - domainPadding={{ x: [30, 25] }} - height={145} - width={400} - padding={{ - top: 10, - bottom: 55, - left: 50, - }} - themeColor={ChartThemeColor.blue} - > - - `${v}m`} - /> - - - - -
+ {averageDurationError ? ( + + ) : ( +
+ {!averageDurationLoading ? ( + `${datum.y}m`} + constrainToVisibleArea + /> + } + scale={{ x: 'time', y: 'linear' }} + domain={domainValue} + domainPadding={{ x: [30, 25] }} + height={145} + width={400} + padding={{ + top: 10, + bottom: 55, + left: 50, + }} + themeColor={ChartThemeColor.blue} + > + + `${v}m`} + /> + + + + + ) : ( +
+ +
+ )} +
+ )}
diff --git a/upstream/src/components/pipelines-metrics/hooks.ts b/upstream/src/components/pipelines-metrics/hooks.ts index 2b454cf6..84e70678 100644 --- a/upstream/src/components/pipelines-metrics/hooks.ts +++ b/upstream/src/components/pipelines-metrics/hooks.ts @@ -5,7 +5,7 @@ import { import _ from 'lodash'; import { getPrometheusURL } from './helpers'; import { useURLPoll } from './url-poll-hook'; -import { metricsQueries } from './utils'; +import { metricsQueries, MetricsQueryPrefix, PipelineQuery } from './utils'; export const calculateTotalValues = ( prometheusResponse: PrometheusResponse, @@ -34,6 +34,13 @@ export const usePipelineMetricsForAllNamespacePoll = ({ timespan, queryPrefix, metricsQuery, + timeout, +}: { + delay: number; + timespan: number; + queryPrefix: MetricsQueryPrefix; + metricsQuery: PipelineQuery; + timeout?: number; }) => { const queries = metricsQueries(queryPrefix); return useURLPoll( @@ -45,6 +52,7 @@ export const usePipelineMetricsForAllNamespacePoll = ({ timespan, }), delay, + timeout, timespan, ); }; @@ -56,6 +64,15 @@ export const usePipelineMetricsForNamespaceForPipelinePoll = ({ queryPrefix, name, metricsQuery, + timeout, +}: { + delay: number; + namespace: string; + timespan: number; + queryPrefix: MetricsQueryPrefix; + name: string; + metricsQuery: PipelineQuery; + timeout?: number; }) => { const queries = metricsQueries(queryPrefix); return useURLPoll( @@ -71,6 +88,7 @@ export const usePipelineMetricsForNamespaceForPipelinePoll = ({ namespace, }), delay, + timeout, namespace, timespan, ); @@ -82,6 +100,14 @@ export const usePipelineMetricsForNamespacePoll = ({ timespan, queryPrefix, metricsQuery, + timeout, +}: { + delay: number; + namespace: string; + timespan: number; + queryPrefix: MetricsQueryPrefix; + metricsQuery: PipelineQuery; + timeout?: number; }) => { const queries = metricsQueries(queryPrefix); return useURLPoll( @@ -96,6 +122,7 @@ export const usePipelineMetricsForNamespacePoll = ({ namespace, }), delay, + timeout, namespace, timespan, ); diff --git a/upstream/src/components/pipelines-metrics/safe-fetch-hook.ts b/upstream/src/components/pipelines-metrics/safe-fetch-hook.ts index 95ac809b..8dca8398 100644 --- a/upstream/src/components/pipelines-metrics/safe-fetch-hook.ts +++ b/upstream/src/components/pipelines-metrics/safe-fetch-hook.ts @@ -1,15 +1,24 @@ import { consoleFetchJSON } from '@openshift-console/dynamic-plugin-sdk'; import { useEffect, useRef } from 'react'; -export const useSafeFetch = () => { +export const useSafeFetch = (timeout = 60000) => { const controller = useRef(); useEffect(() => { - controller.current = new AbortController(); - return () => controller.current.abort(); + return () => controller.current?.abort(); }, []); - return (url) => - consoleFetchJSON(url, 'get', { - signal: controller.current.signal as AbortSignal, - }); + return (url) => { + if (controller.current) { + controller.current.abort(); + } + controller.current = new AbortController(); + return consoleFetchJSON( + url, + 'get', + { + signal: controller.current.signal as AbortSignal, + }, + timeout, + ); + }; }; diff --git a/upstream/src/components/pipelines-metrics/url-poll-hook.ts b/upstream/src/components/pipelines-metrics/url-poll-hook.ts index 2ce841b7..0d71d3b1 100644 --- a/upstream/src/components/pipelines-metrics/url-poll-hook.ts +++ b/upstream/src/components/pipelines-metrics/url-poll-hook.ts @@ -8,29 +8,40 @@ export const URL_POLL_DEFAULT_DELAY = 15000; // 15 seconds export const useURLPoll: UseURLPoll = ( url: string, delay = URL_POLL_DEFAULT_DELAY, + timeout?: number, ...dependencies: any[] ) => { const [error, setError] = useState(); const [response, setResponse] = useState(); const [loading, setLoading] = useState(true); - const safeFetch = useSafeFetch(); + const safeFetch = useSafeFetch(timeout); + + const handleReset = () => { + setResponse(null); + setError(null); + }; + const tick = useCallback(() => { if (url) { + handleReset(); + setLoading(true); safeFetch(url) .then((data) => { setResponse(data); setError(null); + setLoading(false); }) .catch((err) => { + setError(err); + setResponse(null); if (err.name !== 'AbortError') { - setResponse(null); - setError(err); // eslint-disable-next-line no-console - console.error(`Error polling URL: ${err}`); + console.error(`Error polling useURLPoll: ${url} - ${err}`); + setLoading(false); } - }) - .finally(() => setLoading(false)); + }); } else { + handleReset(); setLoading(false); } }, [url]); diff --git a/upstream/src/components/pipelines-overview/PipelineRunsDurationCard.tsx b/upstream/src/components/pipelines-overview/PipelineRunsDurationCard.tsx index 842925ec..1c332b09 100644 --- a/upstream/src/components/pipelines-overview/PipelineRunsDurationCard.tsx +++ b/upstream/src/components/pipelines-overview/PipelineRunsDurationCard.tsx @@ -7,6 +7,7 @@ import { MonitoringIcon, } from '@patternfly/react-icons'; import { + Alert, Card, CardBody, CardTitle, @@ -46,17 +47,34 @@ const PipelinesRunsDurationCard: React.FC = ({ const isDevConsoleProxyAvailable = useFlag(FLAGS.DEVCONSOLE_PROXY); const [summaryData, setSummaryData] = React.useState({}); const [loaded, setLoaded] = React.useState(false); + const [pipelineRunsDurationError, setPipelineRunsDurationError] = + React.useState(); + const abortControllerRef = React.useRef(); + if (namespace == ALL_NAMESPACES_KEY) { namespace = '-'; } React.useEffect(() => { setLoaded(false); + setPipelineRunsDurationError(undefined); + setSummaryData({}); }, [namespace, timespan]); + React.useEffect(() => { + return () => { + abortControllerRef.current?.abort(); + }; + }, []); + const date = getDropDownDate(timespan).toISOString(); const getSummaryData = () => { + abortControllerRef.current?.abort(); + abortControllerRef.current = new AbortController(); + setSummaryData({}); + setPipelineRunsDurationError(undefined); + setLoaded(false); getResultsSummary( namespace, { @@ -66,13 +84,25 @@ const PipelinesRunsDurationCard: React.FC = ({ }, undefined, isDevConsoleProxyAvailable, + abortControllerRef.current.signal, + 90000, // increase timeout to 90 seconds ) .then((response) => { setLoaded(true); + setPipelineRunsDurationError(undefined); setSummaryData(response.summary?.[0]); }) .catch((e) => { - console.error('unable to post', e); + if (e.name === 'AbortError') { + return; + } + // Don't log to console, just show user-facing error + setLoaded(true); + setPipelineRunsDurationError( + e.message || t('Failed to load duration data'), + ); + // Clear stale data on error + setSummaryData({}); }); }; @@ -90,72 +120,89 @@ const PipelinesRunsDurationCard: React.FC = ({ - - - - - {t('Average duration')} - - - - {loaded ? ( - summaryData?.['avg_duration'] ? ( - formatTime(summaryData?.['avg_duration']) - ) : ( - '-' - ) - ) : ( - - )} - - - - - - - {t('Maximum')} - - - - {loaded ? ( - summaryData?.['max_duration'] ? ( - formatTime(summaryData?.['max_duration']) - ) : ( - '-' - ) - ) : ( - - )} - - - - - - - {t('Total duration')} - - - - {loaded ? ( - summaryData?.['total_duration'] ? ( - formatTime(summaryData?.['total_duration']) - ) : ( - '-' - ) - ) : ( - - )} - - + {pipelineRunsDurationError ? ( + + ) : ( + <> + + + + + {t('Average duration')} + + + + {loaded ? ( + summaryData?.['avg_duration'] ? ( + formatTime(summaryData?.['avg_duration']) + ) : ( + '-' + ) + ) : ( + + )} + + + + + + + {t('Maximum')} + + + + {loaded ? ( + summaryData?.['max_duration'] ? ( + formatTime(summaryData?.['max_duration']) + ) : ( + '-' + ) + ) : ( + + )} + + + + + + + {t('Total duration')} + + + + {loaded ? ( + summaryData?.['total_duration'] ? ( + formatTime(summaryData?.['total_duration']) + ) : ( + '-' + ) + ) : ( + + )} + + + + )} diff --git a/upstream/src/components/pipelines-overview/PipelineRunsDurationCardK8s.tsx b/upstream/src/components/pipelines-overview/PipelineRunsDurationCardK8s.tsx index 7f4ed26f..f569f2ad 100644 --- a/upstream/src/components/pipelines-overview/PipelineRunsDurationCardK8s.tsx +++ b/upstream/src/components/pipelines-overview/PipelineRunsDurationCardK8s.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import * as classNames from 'classnames'; +import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; import { HistoryIcon, @@ -7,6 +7,7 @@ import { MonitoringIcon, } from '@patternfly/react-icons'; import { + Alert, Card, CardBody, CardTitle, @@ -31,6 +32,7 @@ import { } from '../pipelines-metrics/hooks'; import { MetricsQueryPrefix, PipelineQuery } from '../pipelines-metrics/utils'; import { getXaxisValues } from './dateTime'; +import { LoadingInline } from '../Loading'; interface PipelinesRunsDurationProps { namespace: string; @@ -49,8 +51,14 @@ const PipelineRunsDurationCardK8s: React.FC = ({ bordered, }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); + const [pipelineRunsDurationError, setPipelineRunsDurationError] = + React.useState(null); - const [totalPipelineRunsCountData] = + const [ + totalPipelineRunsCountData, + totalPipelineRunsCountError, + loadingPipelineRunsCount, + ] = parentName && namespace ? usePipelineMetricsForNamespaceForPipelinePoll({ namespace, @@ -60,6 +68,7 @@ const PipelineRunsDurationCardK8s: React.FC = ({ name: parentName, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_NAMESPACE_FOR_PIPELINE, + timeout: 90000, }) : namespace == ALL_NAMESPACES_KEY ? usePipelineMetricsForAllNamespacePoll({ @@ -67,6 +76,7 @@ const PipelineRunsDurationCardK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_ALL_NAMESPACE, + timeout: 90000, }) : usePipelineMetricsForNamespacePoll({ namespace, @@ -74,16 +84,27 @@ const PipelineRunsDurationCardK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_NAMESPACE, + timeout: 90000, }); const [tickValues, type] = getXaxisValues(timespan); - const totalPipelineRuns = getTotalPipelineRuns( + const totalPipelineRuns = React.useMemo(() => { + if (totalPipelineRunsCountError) { + return; + } + return getTotalPipelineRuns(totalPipelineRunsCountData, tickValues, type); + }, [ totalPipelineRunsCountData, + totalPipelineRunsCountError, tickValues, type, - ); + ]); - const [totalPipelineRunsDurationData] = + const [ + totalPipelineRunsDurationData, + totalPipelineRunsDurationError, + loadingPipelineRunsDuration, + ] = parentName && namespace ? usePipelineMetricsForNamespaceForPipelinePoll({ namespace, @@ -93,6 +114,7 @@ const PipelineRunsDurationCardK8s: React.FC = ({ name: parentName, metricsQuery: PipelineQuery.PIPELINERUN_DURATION_FOR_NAMESPACE_FOR_PIPELINE, + timeout: 90000, }) : namespace == ALL_NAMESPACES_KEY ? usePipelineMetricsForAllNamespacePoll({ @@ -100,6 +122,7 @@ const PipelineRunsDurationCardK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_DURATION_FOR_ALL_NAMESPACE, + timeout: 90000, }) : usePipelineMetricsForNamespacePoll({ namespace, @@ -107,19 +130,55 @@ const PipelineRunsDurationCardK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_DURATION_FOR_NAMESPACE, + timeout: 90000, }); const [totalPipelineRunsDuration, totalPipelineRunsDurationValue] = - getTotalPipelineRunsDuration( + React.useMemo(() => { + if (totalPipelineRunsDurationError) { + return ['-', 0]; + } + return getTotalPipelineRunsDuration( + totalPipelineRunsDurationData, + tickValues, + type, + ); + }, [ totalPipelineRunsDurationData, + totalPipelineRunsDurationError, tickValues, type, + ]); + + const averageDuration = React.useMemo(() => { + if ( + totalPipelineRunsDurationError || + totalPipelineRunsCountError || + !totalPipelineRuns + ) { + return '-'; + } + return getPipelineRunAverageDuration( + totalPipelineRunsDurationValue, + totalPipelineRuns, ); + }, [totalPipelineRunsDurationValue, totalPipelineRuns]); - const averageDuration = getPipelineRunAverageDuration( - totalPipelineRunsDurationValue, - totalPipelineRuns, - ); + React.useEffect(() => { + const hasNonAbortError = + (totalPipelineRunsCountError && + totalPipelineRunsCountError.name !== 'AbortError') || + (totalPipelineRunsDurationError && + totalPipelineRunsDurationError.name !== 'AbortError'); + + setPipelineRunsDurationError( + hasNonAbortError + ? totalPipelineRunsCountError?.message ?? + totalPipelineRunsDurationError?.message ?? + t('Unable to load duration') + : null, + ); + }, [totalPipelineRunsCountError, totalPipelineRunsDurationError, t]); return ( <> @@ -133,48 +192,73 @@ const PipelineRunsDurationCardK8s: React.FC = ({ - - - - - {t('Average duration')} - - - - {averageDuration} - - - - - - - {t('Maximum')} - - - - {'-'} - - - - - - - {t('Total duration')} - - - - {totalPipelineRunsDuration ?? '-'} - - + {pipelineRunsDurationError ? ( + + ) : ( + <> + + + + + {t('Average duration')} + + + + {loadingPipelineRunsCount ? ( + + ) : ( + averageDuration + )} + + + + + + + {t('Maximum')} + + + + {loadingPipelineRunsCount ? : '-'} + + + + + + + {t('Total duration')} + + + + {loadingPipelineRunsDuration ? ( + + ) : ( + totalPipelineRunsDuration ?? '-' + )} + + + + )} diff --git a/upstream/src/components/pipelines-overview/PipelineRunsNumbersChart.tsx b/upstream/src/components/pipelines-overview/PipelineRunsNumbersChart.tsx index 5e8ee73e..8508928e 100644 --- a/upstream/src/components/pipelines-overview/PipelineRunsNumbersChart.tsx +++ b/upstream/src/components/pipelines-overview/PipelineRunsNumbersChart.tsx @@ -12,7 +12,7 @@ import { ChartThemeColor, ChartVoronoiContainer, } from '@patternfly/react-charts'; -import { Card, CardBody, CardTitle } from '@patternfly/react-core'; +import { Alert, Card, CardBody, CardTitle } from '@patternfly/react-core'; import { useFlag } from '@openshift-console/dynamic-plugin-sdk'; import { formatDate, @@ -89,39 +89,67 @@ const PipelinesRunsNumbersChart: React.FC = ({ const [data, setData] = React.useState(); const [loaded, setLoaded] = React.useState(false); + const [pipelineRunsChartError, setPipelineRunsChartError] = React.useState< + string | undefined + >(); + const abortControllerRef = React.useRef(); if (namespace == ALL_NAMESPACES_KEY) { namespace = '-'; } + React.useEffect(() => { + return () => { + abortControllerRef.current?.abort(); + }; + }, []); + const [tickValues, type] = getXaxisValues(timespan); const date = getDropDownDate(timespan).toISOString(); const getSummaryData = (group_by: string) => { + abortControllerRef.current?.abort(); + abortControllerRef.current = new AbortController(); + setData(undefined); + const summaryOpt = { summary: 'total', data_type: DataType?.PipelineRun, filter: getFilter(date, parentName, kind), groupBy: group_by, }; - + setPipelineRunsChartError(undefined); + setLoaded(false); getResultsSummary( namespace, summaryOpt, undefined, isDevConsoleProxyAvailable, + abortControllerRef.current.signal, + 90000, ) .then((d) => { setLoaded(true); + setPipelineRunsChartError(undefined); setData(d); }) .catch((e) => { - throw e; + if (e.name === 'AbortError') { + // Request was cancelled, this is expected behavior + return; + } + setLoaded(true); + setPipelineRunsChartError( + e.message || t('Failed to load pipeline runs number data'), + ); + setData(undefined); }); }; React.useEffect(() => { setLoaded(false); + setPipelineRunsChartError(undefined); + setData(undefined); }, [namespace, timespan]); let xTickFormat; @@ -200,52 +228,66 @@ const PipelinesRunsNumbersChart: React.FC = ({ return ( <> {t('Number of PipelineRuns')} - -
- {loaded ? ( - `${datum.y}`} - constrainToVisibleArea + + {pipelineRunsChartError ? ( + + ) : ( +
+ {loaded ? ( + `${datum.y}`} + constrainToVisibleArea + /> + } + scale={{ x: 'time', y: 'linear' }} + domain={domainValue} + domainPadding={{ x: [30, 25] }} + height={145} + width={width} + padding={{ + top: 10, + bottom: 55, + left: 50, + }} + themeColor={ChartThemeColor.blue} + > + - } - scale={{ x: 'time', y: 'linear' }} - domain={domainValue} - domainPadding={{ x: [30, 25] }} - height={145} - width={width} - padding={{ - top: 10, - bottom: 55, - left: 50, - }} - themeColor={ChartThemeColor.blue} - > - - - - - - - ) : ( -
- -
- )} -
+ + + + +
+ ) : ( +
+ +
+ )} +
+ )}
diff --git a/upstream/src/components/pipelines-overview/PipelineRunsNumbersChartK8s.tsx b/upstream/src/components/pipelines-overview/PipelineRunsNumbersChartK8s.tsx index 76d5c536..164562a9 100644 --- a/upstream/src/components/pipelines-overview/PipelineRunsNumbersChartK8s.tsx +++ b/upstream/src/components/pipelines-overview/PipelineRunsNumbersChartK8s.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import * as _ from 'lodash'; -import * as classNames from 'classnames'; +import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; import { DomainPropType, DomainTuple } from 'victory-core'; import { @@ -12,7 +12,7 @@ import { ChartThemeColor, ChartVoronoiContainer, } from '@patternfly/react-charts'; -import { Card, CardBody, CardTitle } from '@patternfly/react-core'; +import { Alert, Card, CardBody, CardTitle } from '@patternfly/react-core'; import { formatDate, getXaxisValues, @@ -31,6 +31,7 @@ import { PipelineQuery, adjustToStartOfWeek, } from '../pipelines-metrics/utils'; +import { LoadingInline } from '../Loading'; interface PipelinesRunsNumbersChartProps { namespace?: string; @@ -122,8 +123,14 @@ const PipelineRunsNumbersChartK8s: React.FC = ({ x: domainX || [startDate, endDate], y: domainY || undefined, }; - - const [runSuccessRatioData] = + const [pipelineRunsChartError, setPipelineRunsChartError] = React.useState< + string | null + >(null); + const [ + runSuccessRatioData, + runSuccessRatioError, + loadingRunSuccessRatioData, + ] = parentName && namespace ? usePipelineMetricsForNamespaceForPipelinePoll({ namespace, @@ -133,6 +140,7 @@ const PipelineRunsNumbersChartK8s: React.FC = ({ name: parentName, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_NAMESPACE_FOR_PIPELINE, + timeout: 90000, }) : namespace == ALL_NAMESPACES_KEY ? usePipelineMetricsForAllNamespacePoll({ @@ -140,6 +148,7 @@ const PipelineRunsNumbersChartK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_ALL_NAMESPACE, + timeout: 90000, }) : usePipelineMetricsForNamespacePoll({ namespace, @@ -147,8 +156,15 @@ const PipelineRunsNumbersChartK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_NAMESPACE, + timeout: 90000, }); - const convertToSummaryData = metricsToSummary(runSuccessRatioData); + + const convertToSummaryData = React.useMemo(() => { + if (runSuccessRatioError) { + return []; + } + return metricsToSummary(runSuccessRatioData); + }, [runSuccessRatioData, runSuccessRatioError]); const [tickValues, type] = getXaxisValues(timespan); @@ -220,49 +236,77 @@ const PipelineRunsNumbersChartK8s: React.FC = ({ }; } + React.useEffect(() => { + const hasNonAbortError = + runSuccessRatioError && runSuccessRatioError.name !== 'AbortError'; + setPipelineRunsChartError( + hasNonAbortError + ? runSuccessRatioError?.message ?? t('Unable to load pipeline runs') + : null, + ); + }, [runSuccessRatioError]); + return ( <> {t('Number of PipelineRuns')} - -
- `${datum.y}`} - constrainToVisibleArea - /> - } - scale={{ x: 'time', y: 'linear' }} - domain={domainValue} - domainPadding={{ x: [30, 25] }} - height={145} - width={width} - padding={{ - top: 10, - bottom: 55, - left: 50, - }} - themeColor={ChartThemeColor.blue} - > - - - - - - -
+ + {pipelineRunsChartError ? ( + + ) : ( +
+ {loadingRunSuccessRatioData ? ( + + ) : ( + `${datum.y}`} + constrainToVisibleArea + /> + } + scale={{ x: 'time', y: 'linear' }} + domain={domainValue} + domainPadding={{ x: [30, 25] }} + height={145} + width={width} + padding={{ + top: 10, + bottom: 55, + left: 50, + }} + themeColor={ChartThemeColor.blue} + > + + + + + + + )} +
+ )}
diff --git a/upstream/src/components/pipelines-overview/PipelineRunsStatusCard.tsx b/upstream/src/components/pipelines-overview/PipelineRunsStatusCard.tsx index c625a07c..86a73e5d 100644 --- a/upstream/src/components/pipelines-overview/PipelineRunsStatusCard.tsx +++ b/upstream/src/components/pipelines-overview/PipelineRunsStatusCard.tsx @@ -14,6 +14,7 @@ import { ChartVoronoiContainer, } from '@patternfly/react-charts'; import { + Alert, Card, CardBody, CardTitle, @@ -103,6 +104,12 @@ const PipelinesRunsStatusCard: React.FC = ({ const [data, setData] = React.useState(); const [data2, setData2] = React.useState(); const [loaded, setLoaded] = React.useState(false); + const [pipelineRunsStatusError, setPipelineRunsStatusError] = React.useState< + string | undefined + >(); + const abortControllerRefDonut = React.useRef(); + const abortControllerRefLineChart = React.useRef(); + const startTimespan = timespan - parsePrometheusDuration('1d'); const endDate = new Date(Date.now()).setHours(0, 0, 0, 0); const startDate = new Date(Date.now() - startTimespan).setHours(0, 0, 0, 0); @@ -117,41 +124,74 @@ const PipelinesRunsStatusCard: React.FC = ({ namespace = '-'; } - const getSummaryData = (summary, setData, groupBy?) => { + React.useEffect(() => { + return () => { + abortControllerRefDonut.current?.abort(); + abortControllerRefLineChart.current?.abort(); + }; + }, []); + + const getSummaryData = (summary, setData, groupBy?, controller?) => { + // Clear stale data before making new request + setData(undefined); + const summaryOpt = { summary, filter: getFilter(date, parentName, kind), data_type: DataType?.PipelineRun, }; groupBy && (summaryOpt['groupBy'] = groupBy); - + setPipelineRunsStatusError(undefined); + setLoaded(false); getResultsSummary( namespace, summaryOpt, undefined, isDevConsoleProxyAvailable, + controller?.signal, + 90000, ) .then((d) => { setLoaded(true); + setPipelineRunsStatusError(undefined); setData(d); }) .catch((e) => { - throw e; + if (e.name === 'AbortError') { + // Request was cancelled, this is expected behavior + return; + } + // Don't log to console, just show user-facing error + setLoaded(true); + setPipelineRunsStatusError( + e.message || t('Failed to load pipeline run status data'), + ); + // Clear stale data on error + setData(undefined); }); }; useInterval( - () => + () => { + abortControllerRefDonut.current?.abort(); + abortControllerRefDonut.current = new AbortController(); getSummaryData( 'succeeded,cancelled,failed,others,running,total', setData, - ), + undefined, + abortControllerRefDonut.current, + ); + }, interval, namespace, date, ); React.useEffect(() => { setLoaded(false); + setPipelineRunsStatusError(undefined); + // Clear stale data when namespace or timespan changes + setData(undefined); + setData2(undefined); }, [namespace, timespan]); const [tickValues, type] = getXaxisValues(timespan); @@ -168,12 +208,16 @@ const PipelinesRunsStatusCard: React.FC = ({ showLabel = true; domainValue.x = [0, 23]; useInterval( - () => + () => { + abortControllerRefLineChart.current?.abort(); + abortControllerRefLineChart.current = new AbortController(); getSummaryData( 'succeeded,cancelled,failed,others,total', setData2, 'hour', - ), + abortControllerRefLineChart.current, + ); + }, interval, namespace, date, @@ -188,12 +232,16 @@ const PipelinesRunsStatusCard: React.FC = ({ xTickFormat = (d) => formatDate(d); domainValue.x = [startDate, endDate]; useInterval( - () => + () => { + abortControllerRefLineChart.current?.abort(); + abortControllerRefLineChart.current = new AbortController(); getSummaryData( 'succeeded,cancelled,failed,others,total', setData2, 'day', - ), + abortControllerRefLineChart.current, + ); + }, interval, namespace, date, @@ -208,12 +256,16 @@ const PipelinesRunsStatusCard: React.FC = ({ xTickFormat = (d) => formatDate(d); domainValue.x = [new Date(tickValues[0]), new Date(tickValues[11])]; useInterval( - () => + () => { + abortControllerRefLineChart.current?.abort(); + abortControllerRefLineChart.current = new AbortController(); getSummaryData( 'succeeded,cancelled,failed,others,total', setData2, 'week', - ), + abortControllerRefLineChart.current, + ); + }, interval, namespace, date, @@ -228,12 +280,16 @@ const PipelinesRunsStatusCard: React.FC = ({ xTickFormat = (d) => monthYear(d); domainValue.x = [new Date(tickValues[0]), new Date(tickValues[11])]; useInterval( - () => + () => { + abortControllerRefLineChart.current?.abort(); + abortControllerRefLineChart.current = new AbortController(); getSummaryData( 'succeeded,cancelled,failed,others,total', setData2, 'month', - ), + abortControllerRefLineChart.current, + ); + }, interval, namespace, date, @@ -360,108 +416,117 @@ const PipelinesRunsStatusCard: React.FC = ({ - - -
+ {pipelineRunsStatusError ? ( + + ) : ( + + {loaded ? ( - `${datum.x}: ${datum.y}%`} - legendData={legendData} - colorScale={colorScale} - legendOrientation="vertical" - legendPosition="right" - padding={{ - bottom: 30, - right: 140, // Adjusted to accommodate legend - top: 20, - }} - legendComponent={ - + `${datum.x}: ${datum.y}%`} + legendData={legendData} + colorScale={colorScale} + legendOrientation="vertical" + legendPosition="right" + padding={{ + bottom: 30, + right: 140, // Adjusted to accommodate legend + top: 20, + }} + legendComponent={ + + } + subTitle={t('Succeeded')} + subTitleComponent={ + - } - subTitle={t('Succeeded')} - subTitleComponent={ - - } - title={`${data?.summary?.[0]?.succeeded ?? 0}/${ - data?.summary?.[0]?.total ?? 0 - }`} - titleComponent={ - - } - width={350} - /> - ) : ( - - )} -
-
- -
- {loaded ? ( - `${datum.name}: ${datum.y}%`} - constrainToVisibleArea - /> - } - scale={{ x: 'time', y: 'linear' }} - domain={domainValue} - domainPadding={{ x: [30, 25] }} - height={200} - padding={{ - top: 20, - bottom: 40, - right: 40, - left: 50, - }} - colorScale={colorScaleLineChart} - width={1000} - > - - `${v}%`} - style={yAxisStyle} + }} + /> + } + title={`${data?.summary?.[0]?.succeeded ?? 0}/${ + data?.summary?.[0]?.total ?? 0 + }`} + titleComponent={ + + } + width={350} /> - - - - - - - +
) : ( )} -
- - + + +
+ {loaded ? ( + `${datum.name}: ${datum.y}%`} + constrainToVisibleArea + /> + } + scale={{ x: 'time', y: 'linear' }} + domain={domainValue} + domainPadding={{ x: [30, 25] }} + height={200} + padding={{ + top: 20, + bottom: 40, + right: 40, + left: 50, + }} + colorScale={colorScaleLineChart} + width={1000} + > + + `${v}%`} + style={yAxisStyle} + /> + + + + + + + + ) : ( + + )} +
+
+ + )} diff --git a/upstream/src/components/pipelines-overview/PipelineRunsStatusCardK8s.tsx b/upstream/src/components/pipelines-overview/PipelineRunsStatusCardK8s.tsx index 28c13c2b..f40a5824 100644 --- a/upstream/src/components/pipelines-overview/PipelineRunsStatusCardK8s.tsx +++ b/upstream/src/components/pipelines-overview/PipelineRunsStatusCardK8s.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import * as classNames from 'classnames'; +import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; import { DomainPropType, DomainTuple } from 'victory-core'; import { @@ -14,6 +14,7 @@ import { ChartVoronoiContainer, } from '@patternfly/react-charts'; import { + Alert, Card, CardBody, CardTitle, @@ -48,6 +49,7 @@ import { adjustToStartOfWeek, } from '../pipelines-metrics/utils'; import { getTotalPipelineRuns, isMatchingFirstTickValue } from './utils'; +import { LoadingInline } from '../Loading'; interface PipelinesRunsStatusCardProps { timespan?: number; @@ -236,7 +238,14 @@ const PipelineRunsStatusCardK8s: React.FC = ({ x: domainX || [startDate, endDate], y: domainY || undefined, }; - const [runSuccessRatioData] = + const [pipelineRunsStatusError, setPipelineRunsStatusError] = React.useState< + string | null + >(null); + const [ + runSuccessRatioData, + runSuccessRatioError, + loadingRunSuccessRatioData, + ] = parentName && namespace ? usePipelineMetricsForNamespaceForPipelinePoll({ namespace, @@ -246,6 +255,7 @@ const PipelineRunsStatusCardK8s: React.FC = ({ name: parentName, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_STATUS_FOR_NAMESPACE_FOR_PIPELINE, + timeout: 90000, }) : namespace == ALL_NAMESPACES_KEY ? usePipelineMetricsForAllNamespacePoll({ @@ -254,6 +264,7 @@ const PipelineRunsStatusCardK8s: React.FC = ({ queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_STATUS_FOR_ALL_NAMESPACE, + timeout: 90000, }) : usePipelineMetricsForNamespacePoll({ namespace, @@ -262,8 +273,13 @@ const PipelineRunsStatusCardK8s: React.FC = ({ queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_STATUS_FOR_NAMESPACE, + timeout: 90000, }); - const [totalPipelineRunsData] = + const [ + totalPipelineRunsData, + totalPipelineRunsError, + loadingTotalPipelineRunsData, + ] = parentName && namespace ? usePipelineMetricsForNamespaceForPipelinePoll({ namespace, @@ -273,6 +289,7 @@ const PipelineRunsStatusCardK8s: React.FC = ({ name: parentName, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_NAMESPACE_FOR_PIPELINE, + timeout: 90000, }) : namespace == ALL_NAMESPACES_KEY ? usePipelineMetricsForAllNamespacePoll({ @@ -280,6 +297,7 @@ const PipelineRunsStatusCardK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_ALL_NAMESPACE, + timeout: 90000, }) : usePipelineMetricsForNamespacePoll({ namespace, @@ -287,21 +305,28 @@ const PipelineRunsStatusCardK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_NAMESPACE, + timeout: 90000, }); const [tickValues, type] = getXaxisValues(timespan); - const totalPipelineRuns = getTotalPipelineRuns( - totalPipelineRunsData, - tickValues, - type, - ); + const totalPipelineRuns = React.useMemo(() => { + if (totalPipelineRunsError) { + return []; + } + return getTotalPipelineRuns(totalPipelineRunsData, tickValues, type); + }, [totalPipelineRunsData, tickValues, type, totalPipelineRunsError]); - const promQueryToSummaryResponse = transformPrometheusResultToSummary( - runSuccessRatioData, - tickValues, - type, - ); + const promQueryToSummaryResponse = React.useMemo(() => { + if (runSuccessRatioError) { + return []; + } + return transformPrometheusResultToSummary( + runSuccessRatioData, + tickValues, + type, + ); + }, [runSuccessRatioData, tickValues, type, runSuccessRatioError]); let xTickFormat; let dayLabel; @@ -445,20 +470,35 @@ const PipelineRunsStatusCardK8s: React.FC = ({ cancelledColor.value, othersColor.value, ]; - const donutDataObjK8s = getStatusSummary(promQueryToSummaryResponse); + + const donutDataObjK8s = React.useMemo(() => { + if (totalPipelineRunsError || runSuccessRatioError) { + return; + } + return getStatusSummary(promQueryToSummaryResponse); + }, [ + promQueryToSummaryResponse, + totalPipelineRunsError, + runSuccessRatioError, + ]); + const donutDataK8s = [ { x: t('Succeeded'), - y: Math.round((100 * donutDataObjK8s.succeeded) / donutDataObjK8s.total), + y: Math.round( + (100 * donutDataObjK8s?.succeeded) / donutDataObjK8s?.total, + ), }, { x: t('Failed'), - y: Math.round((100 * donutDataObjK8s.failed) / donutDataObjK8s.total), + y: Math.round((100 * donutDataObjK8s?.failed) / donutDataObjK8s?.total), }, { x: t('Cancelled'), - y: Math.round((100 * donutDataObjK8s.cancelled) / donutDataObjK8s.total), + y: Math.round( + (100 * donutDataObjK8s?.cancelled) / donutDataObjK8s?.total, + ), }, ]; @@ -467,6 +507,20 @@ const PipelineRunsStatusCardK8s: React.FC = ({ name: `${data.x}: ${isNaN(data.y) ? 0 : data.y}%`, }; }); + + React.useEffect(() => { + const hasNonAbortError = + (runSuccessRatioError && runSuccessRatioError.name !== 'AbortError') || + (totalPipelineRunsError && totalPipelineRunsError.name !== 'AbortError'); + setPipelineRunsStatusError( + hasNonAbortError + ? runSuccessRatioError?.message ?? + totalPipelineRunsError?.message ?? + t('Unable to load PipelineRun status') + : null, + ); + }, [runSuccessRatioError, totalPipelineRunsError]); + return ( <> = ({ - - -
- `${datum.x}: ${datum.y}%`} - legendData={legendData} - colorScale={colorScale} - legendOrientation="vertical" - legendPosition="right" - padding={{ - bottom: 30, - right: 140, // Adjusted to accommodate legend - top: 20, - }} - legendComponent={ - + ) : ( + + + {loadingRunSuccessRatioData ? ( + + ) : ( +
+ `${datum.x}: ${datum.y}%`} + legendData={legendData} + colorScale={colorScale} + legendOrientation="vertical" + legendPosition="right" + padding={{ + bottom: 30, + right: 140, // Adjusted to accommodate legend + top: 20, }} + legendComponent={ + + } + subTitle={t('Succeeded')} + subTitleComponent={ + + } + title={ + typeof donutDataObjK8s !== 'undefined' + ? `${donutDataObjK8s?.succeeded}/${totalPipelineRuns}` + : '' + } + titleComponent={ + + } + width={350} /> - } - subTitle={t('Succeeded')} - subTitleComponent={ - + )} + + +
+ {loadingTotalPipelineRunsData ? ( + + ) : ( + `${datum.name}: ${datum.y}%`} + constrainToVisibleArea + /> + } + scale={{ x: 'time', y: 'linear' }} + domain={domainValue} + domainPadding={{ x: [30, 25] }} + height={200} + padding={{ + top: 20, + bottom: 40, + right: 40, + left: 50, }} - /> - } - title={`${donutDataObjK8s.succeeded}/${totalPipelineRuns}`} - titleComponent={ - - } - width={350} - /> -
-
- -
- `${datum.name}: ${datum.y}%`} - constrainToVisibleArea - /> - } - scale={{ x: 'time', y: 'linear' }} - domain={domainValue} - domainPadding={{ x: [30, 25] }} - height={200} - padding={{ - top: 20, - bottom: 40, - right: 40, - left: 50, - }} - colorScale={colorScaleLineChart} - width={1000} - > - - `${v}%`} - style={yAxisStyle} - /> - - - - - - -
-
- + colorScale={colorScaleLineChart} + width={1000} + > + + `${v}%`} + style={yAxisStyle} + /> + + + + + + + )} +
+
+
+ )} diff --git a/upstream/src/components/pipelines-overview/PipelineRunsTotalCard.tsx b/upstream/src/components/pipelines-overview/PipelineRunsTotalCard.tsx index ceed90b1..6ec0dc16 100644 --- a/upstream/src/components/pipelines-overview/PipelineRunsTotalCard.tsx +++ b/upstream/src/components/pipelines-overview/PipelineRunsTotalCard.tsx @@ -3,6 +3,7 @@ import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; import { CheckIcon } from '@patternfly/react-icons'; import { + Alert, Card, CardBody, CardTitle, @@ -43,6 +44,12 @@ const PipelinesRunsTotalCard: React.FC = ({ const [plrRun, setPlrRun] = React.useState(0); const [repoRun, setRepoRun] = React.useState(0); const [loaded, setLoaded] = React.useState(false); + const [pipelineRunsTotalError, setPipelineRunsTotalError] = React.useState< + string | undefined + >(); + const abortControllerRefPipeline = React.useRef(); + const abortControllerRefRepo = React.useRef(); + const abortControllerRefAll = React.useRef(); if (namespace == ALL_NAMESPACES_KEY) { namespace = '-'; @@ -50,11 +57,27 @@ const PipelinesRunsTotalCard: React.FC = ({ React.useEffect(() => { setLoaded(false); + setPipelineRunsTotalError(undefined); + // Clear stale data when namespace or timespan changes + setTotalRun(0); + setPlrRun(0); + setRepoRun(0); }, [namespace, timespan]); + React.useEffect(() => { + return () => { + abortControllerRefPipeline.current?.abort(); + abortControllerRefRepo.current?.abort(); + abortControllerRefAll.current?.abort(); + }; + }, []); + const date = getDropDownDate(timespan).toISOString(); - const getSummaryData = (filter, setData) => { + const getSummaryData = (filter, setData, controller) => { + setData(0); + setPipelineRunsTotalError(undefined); + setLoaded(false); getResultsSummary( namespace, { @@ -64,19 +87,38 @@ const PipelinesRunsTotalCard: React.FC = ({ }, undefined, isDevConsoleProxyAvailable, + controller?.signal, + 90000, ) .then((response) => { setLoaded(true); - setData(response?.summary?.[0]?.total); + setPipelineRunsTotalError(undefined); + setData(response?.summary?.[0]?.total || 0); }) .catch((e) => { - console.error('Error in getSummary', e); + if (e.name === 'AbortError') { + // Request was cancelled, this is expected behavior + return; + } + setLoaded(true); + setPipelineRunsTotalError( + e.message || t('Failed to load total runs data'), + ); + setData(0); }); }; const pipelineFilter = `data.spec.pipelineRef.contains("name") && data.status.startTime>timestamp("${date}")`; useInterval( - () => getSummaryData(pipelineFilter, setPlrRun), + () => { + abortControllerRefPipeline.current?.abort(); + abortControllerRefPipeline.current = new AbortController(); + getSummaryData( + pipelineFilter, + setPlrRun, + abortControllerRefPipeline.current, + ); + }, interval, namespace, date, @@ -84,7 +126,11 @@ const PipelinesRunsTotalCard: React.FC = ({ const pacFilter = `data.metadata.labels.contains("pipelinesascode.tekton.dev/repository") && data.status.startTime>timestamp("${date}")`; useInterval( - () => getSummaryData(pacFilter, setRepoRun), + () => { + abortControllerRefRepo.current?.abort(); + abortControllerRefRepo.current = new AbortController(); + getSummaryData(pacFilter, setRepoRun, abortControllerRefRepo.current); + }, interval, namespace, date, @@ -92,7 +138,11 @@ const PipelinesRunsTotalCard: React.FC = ({ const allFilter = `data.status.startTime>timestamp("${date}")`; useInterval( - () => getSummaryData(allFilter, setTotalRun), + () => { + abortControllerRefAll.current?.abort(); + abortControllerRefAll.current = new AbortController(); + getSummaryData(allFilter, setTotalRun, abortControllerRefAll.current); + }, interval, namespace, date, @@ -110,58 +160,69 @@ const PipelinesRunsTotalCard: React.FC = ({ - - - - - {t('Runs in pipelines')} - - - - {loaded ? plrRun : } - - - - - - + + + + + + {t('Total runs')} + + + - {RepositoryModel.abbr} - - {t('Runs in repositories')} - - - - {loaded ? repoRun : } - - - - - - - {t('Total runs')} - - - - {loaded ? totalRun : } - - + {loaded ? totalRun : } + + + + )} diff --git a/upstream/src/components/pipelines-overview/PipelineRunsTotalCardK8s.tsx b/upstream/src/components/pipelines-overview/PipelineRunsTotalCardK8s.tsx index 22d64cda..a888a941 100644 --- a/upstream/src/components/pipelines-overview/PipelineRunsTotalCardK8s.tsx +++ b/upstream/src/components/pipelines-overview/PipelineRunsTotalCardK8s.tsx @@ -1,8 +1,9 @@ import * as React from 'react'; -import * as classNames from 'classnames'; +import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; import { CheckIcon } from '@patternfly/react-icons'; import { + Alert, Card, CardBody, CardTitle, @@ -22,6 +23,7 @@ import { usePipelineMetricsForNamespacePoll, } from '../pipelines-metrics/hooks'; import { getXaxisValues } from './dateTime'; +import { LoadingInline } from '../Loading'; interface PipelinesRunsDurationProps { namespace: string; @@ -38,14 +40,21 @@ const PipelineRunsTotalCardK8s: React.FC = ({ bordered, }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); - - const [totalPipelineRunsData] = + const [pipelineRunsTotalError, setPipelineRunsTotalError] = React.useState< + string | null + >(null); + const [ + totalPipelineRunsData, + totalPipelineRunsError, + loadingTotalPipelineRunsData, + ] = namespace == ALL_NAMESPACES_KEY ? usePipelineMetricsForAllNamespacePoll({ timespan, delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_ALL_NAMESPACE, + timeout: 90000, }) : usePipelineMetricsForNamespacePoll({ namespace, @@ -53,14 +62,26 @@ const PipelineRunsTotalCardK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_FOR_NAMESPACE, + timeout: 90000, }); const [tickValues, type] = getXaxisValues(timespan); - const totalPipelineRuns = getTotalPipelineRuns( - totalPipelineRunsData, - tickValues, - type, - ); + const totalPipelineRuns = React.useMemo(() => { + if (totalPipelineRunsError) { + return '-'; + } + return getTotalPipelineRuns(totalPipelineRunsData, tickValues, type); + }, [totalPipelineRunsData, tickValues, type, totalPipelineRunsError]); + + React.useEffect(() => { + const hasNonAbortError = + totalPipelineRunsError && totalPipelineRunsError.name !== 'AbortError'; + setPipelineRunsTotalError( + hasNonAbortError + ? totalPipelineRunsError?.message ?? t('Unable to load pipeline runs') + : null, + ); + }, [totalPipelineRunsError]); return ( <> @@ -74,58 +95,73 @@ const PipelineRunsTotalCardK8s: React.FC = ({ - - - - - {t('Runs in pipelines')} - - - - {'-'} - - - - - - + + + + + + {t('Total runs')} + + + - {RepositoryModel.abbr} - - {t('Runs in repositories')} - - - - {'-'} - - - - - - - {t('Total runs')} - - - - {totalPipelineRuns} - - + {loadingTotalPipelineRunsData ? ( + + ) : ( + totalPipelineRuns + )} + + + + )} diff --git a/upstream/src/components/pipelines-overview/PipelinesOverview.scss b/upstream/src/components/pipelines-overview/PipelinesOverview.scss index 0aecc8cb..1ade8f54 100644 --- a/upstream/src/components/pipelines-overview/PipelinesOverview.scss +++ b/upstream/src/components/pipelines-overview/PipelinesOverview.scss @@ -149,9 +149,3 @@ padding-top: var(--pf-v5-global--spacer--md); padding-bottom: var(--pf-v5-global--spacer--sm); } - -.k8s-overview-info-alert { - margin-bottom: var(--pf-v5-global--spacer--md); - margin-left: var(--pf-v5-global--spacer--md); - margin-right: var(--pf-v5-global--spacer--md); -} diff --git a/upstream/src/components/pipelines-overview/PipelinesOverviewPage.tsx b/upstream/src/components/pipelines-overview/PipelinesOverviewPage.tsx index fd7a180b..571746f4 100644 --- a/upstream/src/components/pipelines-overview/PipelinesOverviewPage.tsx +++ b/upstream/src/components/pipelines-overview/PipelinesOverviewPage.tsx @@ -14,39 +14,39 @@ import NameSpaceDropdown from './NamespaceDropdown'; import PipelineRunsListPage from './list-pages/PipelineRunsListPage'; import TimeRangeDropdown from './TimeRangeDropdown'; import RefreshDropdown from './RefreshDropdown'; -import { IntervalOptions, TimeRangeOptions, useQueryParams } from './utils'; +import { IntervalOptions, TimeRangeOptions } from './utils'; import { ALL_NAMESPACES_KEY } from '../../consts'; import AllProjectsPage from '../projects-list/AllProjectsPage'; import { FLAGS } from '../../types'; +import { + usePersistedTimespanWithUrl, + usePersistedIntervalWithUrl, +} from '../hooks/usePersistedFiltersForPipelineOverview'; const PipelinesOverviewPage: React.FC = () => { const { t } = useTranslation('plugin__pipelines-console-plugin'); const canListNS = useFlag(FLAGS.CAN_LIST_NS); const [activeNamespace, setActiveNamespace] = useActiveNamespace(); - const [timespan, setTimespan] = React.useState(parsePrometheusDuration('1d')); - const [interval, setInterval] = React.useState( - parsePrometheusDuration('30s'), - ); - useQueryParams({ - key: 'refreshinterval', - value: interval, - setValue: setInterval, - defaultValue: parsePrometheusDuration('30s'), - options: { ...IntervalOptions(), off: 'OFF_KEY' }, - displayFormat: (v) => (v ? formatPrometheusDuration(v) : 'off'), - loadFormat: (v) => (v == 'off' ? null : parsePrometheusDuration(v)), - }); + const [timespan, setTimespan] = usePersistedTimespanWithUrl( + parsePrometheusDuration('1d'), + { + options: TimeRangeOptions(), + displayFormat: formatPrometheusDuration, + loadFormat: parsePrometheusDuration, + }, + activeNamespace, + ); - useQueryParams({ - key: 'timerange', - value: timespan, - setValue: setTimespan, - defaultValue: parsePrometheusDuration('1w'), - options: TimeRangeOptions(), - displayFormat: formatPrometheusDuration, - loadFormat: parsePrometheusDuration, - }); + const [interval, setInterval] = usePersistedIntervalWithUrl( + parsePrometheusDuration('30s'), + { + options: { ...IntervalOptions(), off: 'OFF_KEY' }, + displayFormat: (v) => (v ? formatPrometheusDuration(v) : 'off'), + loadFormat: (v) => (v == 'off' ? null : parsePrometheusDuration(v)), + }, + activeNamespace, + ); if (!canListNS && activeNamespace === ALL_NAMESPACES_KEY) { return ; @@ -54,10 +54,10 @@ const PipelinesOverviewPage: React.FC = () => { return ( <> - + {t('Overview')} - + { /> @@ -119,12 +118,12 @@ const PipelinesOverviewPage: React.FC = () => { /> -
-
+
diff --git a/upstream/src/components/pipelines-overview/PipelinesOverviewPageK8s.tsx b/upstream/src/components/pipelines-overview/PipelinesOverviewPageK8s.tsx index d391b1aa..ab89b062 100644 --- a/upstream/src/components/pipelines-overview/PipelinesOverviewPageK8s.tsx +++ b/upstream/src/components/pipelines-overview/PipelinesOverviewPageK8s.tsx @@ -9,7 +9,7 @@ import { formatPrometheusDuration, parsePrometheusDuration } from './dateTime'; import NameSpaceDropdown from './NamespaceDropdown'; import TimeRangeDropdown from './TimeRangeDropdown'; import RefreshDropdown from './RefreshDropdown'; -import { IntervalOptions, TimeRangeOptionsK8s, useQueryParams } from './utils'; +import { IntervalOptions, TimeRangeOptionsK8s } from './utils'; import PipelineRunsStatusCardK8s from './PipelineRunsStatusCardK8s'; import PipelineRunsNumbersChartK8s from './PipelineRunsNumbersChartK8s'; import PipelineRunsTotalCardK8s from './PipelineRunsTotalCardK8s'; @@ -19,36 +19,36 @@ import { K8sDataLimitationAlert } from './K8sDataLimitationAlert'; import { FLAGS } from '../../types'; import { ALL_NAMESPACES_KEY } from '../../consts'; import AllProjectsPage from '../projects-list/AllProjectsPage'; +import { + usePersistedTimespanWithUrl, + usePersistedIntervalWithUrl, +} from '../hooks/usePersistedFiltersForPipelineOverview'; import './PipelinesOverview.scss'; const PipelinesOverviewPageK8s: React.FC = () => { const { t } = useTranslation('plugin__pipelines-console-plugin'); const canListNS = useFlag(FLAGS.CAN_LIST_NS); const [activeNamespace, setActiveNamespace] = useActiveNamespace(); - const [timespan, setTimespan] = React.useState(parsePrometheusDuration('1d')); - const [interval, setInterval] = React.useState( - parsePrometheusDuration('30s'), - ); - useQueryParams({ - key: 'refreshinterval', - value: interval, - setValue: setInterval, - defaultValue: parsePrometheusDuration('30s'), - options: { ...IntervalOptions(), off: 'OFF_KEY' }, - displayFormat: (v) => (v ? formatPrometheusDuration(v) : 'off'), - loadFormat: (v) => (v == 'off' ? null : parsePrometheusDuration(v)), - }); + const [timespan, setTimespan] = usePersistedTimespanWithUrl( + parsePrometheusDuration('1d'), + { + options: TimeRangeOptionsK8s(), + displayFormat: formatPrometheusDuration, + loadFormat: parsePrometheusDuration, + }, + activeNamespace, + ); - useQueryParams({ - key: 'timerange', - value: timespan, - setValue: setTimespan, - defaultValue: parsePrometheusDuration('1w'), - options: TimeRangeOptionsK8s(), - displayFormat: formatPrometheusDuration, - loadFormat: parsePrometheusDuration, - }); + const [interval, setInterval] = usePersistedIntervalWithUrl( + parsePrometheusDuration('30s'), + { + options: { ...IntervalOptions(), off: 'OFF_KEY' }, + displayFormat: (v) => (v ? formatPrometheusDuration(v) : 'off'), + loadFormat: (v) => (v == 'off' ? null : parsePrometheusDuration(v)), + }, + activeNamespace, + ); if (!canListNS && activeNamespace === ALL_NAMESPACES_KEY) { return ; @@ -56,10 +56,10 @@ const PipelinesOverviewPageK8s: React.FC = () => { return ( <> - + {t('Overview')} -
+
@@ -111,7 +111,6 @@ const PipelinesOverviewPageK8s: React.FC = () => { /> @@ -124,12 +123,11 @@ const PipelinesOverviewPageK8s: React.FC = () => { /> -
-
diff --git a/upstream/src/components/pipelines-overview/__tests__/PipelinesOverview.spec.tsx b/upstream/src/components/pipelines-overview/__tests__/PipelinesOverview.spec.tsx index 016ff926..375cd00a 100644 --- a/upstream/src/components/pipelines-overview/__tests__/PipelinesOverview.spec.tsx +++ b/upstream/src/components/pipelines-overview/__tests__/PipelinesOverview.spec.tsx @@ -7,6 +7,10 @@ import { useActiveNamespace, useFlag, } from '@openshift-console/dynamic-plugin-sdk'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: FIXME missing exports due to out-of-sync @types/react-redux version +import { useDispatch, useSelector } from 'react-redux'; +import { useLocation } from 'react-router-dom-v5-compat'; import PipelinesOverviewPage from '../PipelinesOverviewPage'; import { getResultsSummary } from '../../utils/summary-api'; import * as utils from '../utils'; @@ -27,6 +31,13 @@ jest.mock('../../utils/tekton-results', () => ({ jest.mock('../../utils/summary-api', () => ({ getResultsSummary: jest.fn(), })); +jest.mock('react-redux', () => ({ + useDispatch: jest.fn(), + useSelector: jest.fn(), +})); +jest.mock('react-router-dom-v5-compat', () => ({ + useLocation: jest.fn(), +})); (VirtualizedTable as jest.Mock).mockImplementation((props) => { virtualizedTableRenderProps(props); return null; @@ -40,6 +51,9 @@ const useK8sWatchResourceMock = useK8sWatchResource as jest.Mock; const useActiveColumnsMock = useActiveColumns as jest.Mock; const getResultsSummaryMock = getResultsSummary as jest.Mock; const useFlagMock = useFlag as jest.Mock; +const useDispatchMock = useDispatch as jest.Mock; +const useSelectorMock = useSelector as jest.Mock; +const useLocationMock = useLocation as jest.Mock; describe('Pipeline Overview page', () => { beforeEach(() => { @@ -52,6 +66,9 @@ describe('Pipeline Overview page', () => { useActiveColumnsMock.mockReturnValue([[]]); getResultsSummaryMock.mockReturnValue(Promise.resolve({})); useFlagMock.mockReturnValue(true); + useDispatchMock.mockReturnValue(jest.fn()); + useSelectorMock.mockReturnValue(null); + useLocationMock.mockReturnValue({ search: '', pathname: '/' }); }); it('should render Pipeline Overview', async () => { diff --git a/upstream/src/components/pipelines-overview/list-pages/PipelineRunsForPipelinesList.tsx b/upstream/src/components/pipelines-overview/list-pages/PipelineRunsForPipelinesList.tsx index 38fa77f0..5bbde059 100644 --- a/upstream/src/components/pipelines-overview/list-pages/PipelineRunsForPipelinesList.tsx +++ b/upstream/src/components/pipelines-overview/list-pages/PipelineRunsForPipelinesList.tsx @@ -124,7 +124,7 @@ const PipelineRunsForPipelinesList: React.FC< (!summaryDataFiltered || summaryDataFiltered.length === 0) && (!summaryData || summaryData.length === 0); - if (isEmptyData) { + if (loaded && isEmptyData) { return ; } diff --git a/upstream/src/components/pipelines-overview/list-pages/PipelineRunsForPipelinesListK8s.tsx b/upstream/src/components/pipelines-overview/list-pages/PipelineRunsForPipelinesListK8s.tsx index 9c3eb89e..5ef1279a 100644 --- a/upstream/src/components/pipelines-overview/list-pages/PipelineRunsForPipelinesListK8s.tsx +++ b/upstream/src/components/pipelines-overview/list-pages/PipelineRunsForPipelinesListK8s.tsx @@ -134,7 +134,7 @@ const PipelineRunsForPipelinesListK8s: React.FC< (!summaryDataFiltered || summaryDataFiltered.length === 0) && (!summaryData || summaryData.length === 0); - if (isEmptyData) { + if (loaded && isEmptyData) { return ; } return ( diff --git a/upstream/src/components/pipelines-overview/list-pages/PipelineRunsListPage.tsx b/upstream/src/components/pipelines-overview/list-pages/PipelineRunsListPage.tsx index 13d37266..e3cf5a6a 100644 --- a/upstream/src/components/pipelines-overview/list-pages/PipelineRunsListPage.tsx +++ b/upstream/src/components/pipelines-overview/list-pages/PipelineRunsListPage.tsx @@ -2,6 +2,7 @@ import * as React from 'react'; import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; import { + Alert, Card, CardBody, Grid, @@ -37,17 +38,37 @@ const PipelineRunsListPage: React.FC = ({ const [pageFlag, setPageFlag] = React.useState(1); const [loaded, setloaded] = React.useState(false); + const [pipelineRunsListError, setPipelineRunsListError] = React.useState< + string | undefined + >(); const [summaryData, setSummaryData] = React.useState([]); const [searchText, setSearchText] = React.useState(''); const [summaryDataFiltered, setSummaryDataFiltered] = React.useState< SummaryProps[] >([]); + const abortControllerRef = React.useRef(); const date = getDropDownDate(timespan).toISOString(); if (namespace == ALL_NAMESPACES_KEY) { namespace = '-'; } + + React.useEffect(() => { + return () => { + abortControllerRef.current?.abort(); + }; + }, []); + const getSummaryData = () => { + abortControllerRef.current?.abort(); + abortControllerRef.current = new AbortController(); + + // Clear stale data before making new request + setSummaryData([]); + setSummaryDataFiltered([]); + + setPipelineRunsListError(undefined); + setloaded(false); getResultsSummary( namespace, pageFlag === 1 @@ -65,14 +86,27 @@ const PipelineRunsListPage: React.FC = ({ }, undefined, isDevConsoleProxyAvailable, + abortControllerRef.current.signal, + 90000, ) .then((response) => { setloaded(true); - setSummaryData(response.summary); - setSummaryDataFiltered(response.summary); + setPipelineRunsListError(undefined); + setSummaryData((response?.summary || []) ?? []); + setSummaryDataFiltered((response?.summary || []) ?? []); }) .catch((e) => { - throw e; + if (e.name === 'AbortError') { + // Request was cancelled, this is expected behavior + return; + } + setloaded(true); + setPipelineRunsListError( + e.message || t('Failed to load pipeline runs list'), + ); + // Keep data cleared on error to prevent stale data display + setSummaryData([]); + setSummaryDataFiltered([]); }); }; @@ -80,6 +114,7 @@ const PipelineRunsListPage: React.FC = ({ React.useEffect(() => { setloaded(false); + setPipelineRunsListError(undefined); setSummaryData([]); setSummaryDataFiltered([]); }, [namespace, timespan]); @@ -103,6 +138,7 @@ const PipelineRunsListPage: React.FC = ({ const handlePageChange = (pageNumber: number) => { setloaded(false); + setPipelineRunsListError(undefined); setSummaryData([]); setSummaryDataFiltered([]); setPageFlag(pageNumber); @@ -124,50 +160,64 @@ const PipelineRunsListPage: React.FC = ({ })} > - - - {/* Lastrun Status is not provided by API */} - {/* */} - - - - - handlePageChange(1)} - /> - handlePageChange(2)} - /> - - - - - - {pageFlag === 1 ? ( - - ) : ( - - )} - - + {pipelineRunsListError ? ( + + ) : ( + <> + + + {/* Lastrun Status is not provided by API */} + {/* */} + + + + + handlePageChange(1)} + /> + handlePageChange(2)} + /> + + + + + + {pageFlag === 1 ? ( + + ) : ( + + )} + + + + )}
); diff --git a/upstream/src/components/pipelines-overview/list-pages/PipelineRunsListPageK8s.tsx b/upstream/src/components/pipelines-overview/list-pages/PipelineRunsListPageK8s.tsx index 41cc2423..be3ccbbd 100644 --- a/upstream/src/components/pipelines-overview/list-pages/PipelineRunsListPageK8s.tsx +++ b/upstream/src/components/pipelines-overview/list-pages/PipelineRunsListPageK8s.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import * as classNames from 'classnames'; -import { Card, CardBody, Grid, GridItem } from '@patternfly/react-core'; +import classNames from 'classnames'; +import { Alert, Card, CardBody, Grid, GridItem } from '@patternfly/react-core'; import { PrometheusResponse, useK8sWatchResource, @@ -20,6 +20,7 @@ import { } from '../../pipelines-metrics/utils'; import { getXaxisValues, secondsToHms } from '../dateTime'; import { Project } from '../../../types'; +import { useTranslation } from 'react-i18next'; type PipelineRunsListPageProps = { bordered?: boolean; @@ -125,13 +126,21 @@ const PipelineRunsListPageK8s: React.FC = ({ const [pageFlag, setPageFlag] = React.useState(1); const [searchText, setSearchText] = React.useState(''); const [tickValues, type] = getXaxisValues(timespan); + const { t } = useTranslation('plugin__pipelines-console-plugin'); const [projects, projectsLoaded] = useK8sWatchResource({ isList: true, kind: 'Project', optional: true, }); - const [pipelineRunsMetricsCountData] = + const [pipelineRunsListError, setPipelineRunsListError] = React.useState< + string | null + >(null); + const [ + pipelineRunsMetricsCountData, + pipelineRunsMetricsCountError, + loadingPipelineRunsMetricsCount, + ] = namespace == ALL_NAMESPACES_KEY ? usePipelineMetricsForAllNamespacePoll({ timespan, @@ -139,6 +148,7 @@ const PipelineRunsListPageK8s: React.FC = ({ queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_WITH_METRIC_FOR_ALL_NAMESPACE, + timeout: 90000, }) : usePipelineMetricsForNamespacePoll({ namespace, @@ -147,9 +157,14 @@ const PipelineRunsListPageK8s: React.FC = ({ queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_COUNT_WITH_METRIC_FOR_NAMESPACE, + timeout: 90000, }); - const [pipelineRunsMetricsSumData] = + const [ + pipelineRunsMetricsSumData, + pipelineRunsMetricsSumError, + loadingPipelineRunsMetricsSum, + ] = namespace == ALL_NAMESPACES_KEY ? usePipelineMetricsForAllNamespacePoll({ timespan, @@ -157,6 +172,7 @@ const PipelineRunsListPageK8s: React.FC = ({ queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_SUM_WITH_METRIC_FOR_ALL_NAMESPACE, + timeout: 90000, }) : usePipelineMetricsForNamespacePoll({ namespace, @@ -164,16 +180,27 @@ const PipelineRunsListPageK8s: React.FC = ({ delay: interval, queryPrefix: MetricsQueryPrefix.TEKTON_PIPELINES_CONTROLLER, metricsQuery: PipelineQuery.PIPELINERUN_SUM_WITH_METRIC_FOR_NAMESPACE, + timeout: 90000, }); const summaryDataK8s = React.useMemo(() => { + if (pipelineRunsMetricsCountError || pipelineRunsMetricsSumError) { + return []; + } return processData( pipelineRunsMetricsCountData, pipelineRunsMetricsSumData, tickValues, type, ); - }, [pipelineRunsMetricsCountData, pipelineRunsMetricsSumData]); + }, [ + pipelineRunsMetricsCountData, + pipelineRunsMetricsSumData, + pipelineRunsMetricsCountError, + pipelineRunsMetricsSumError, + tickValues, + type, + ]); const summaryDataFiltered = React.useMemo(() => { return summaryDataK8s.filter((summary) => @@ -210,6 +237,23 @@ const PipelineRunsListPageK8s: React.FC = ({ const handleNameChange = (value: string) => { setSearchText(value); }; + + React.useEffect(() => { + const hasNonAbortError = + (pipelineRunsMetricsCountError && + pipelineRunsMetricsCountError.name !== 'AbortError') || + (pipelineRunsMetricsSumError && + pipelineRunsMetricsSumError.name !== 'AbortError'); + + setPipelineRunsListError( + hasNonAbortError + ? pipelineRunsMetricsSumError?.message ?? + pipelineRunsMetricsCountError?.message ?? + t('Unable to load pipeline runs') + : null, + ); + }, [pipelineRunsMetricsCountError, pipelineRunsMetricsSumError, t]); + return ( = ({ })} > - - - {/* Lastrun Status is not provided by API */} - {/* */} - - - {/* + {pipelineRunsListError ? ( + + ) : ( + <> + + + {/* Lastrun Status is not provided by API */} + {/* */} + + + {/* Since Pipeline metrics for PAC is not available, commenting this @@ -245,27 +301,35 @@ const PipelineRunsListPageK8s: React.FC = ({ /> */} - - - - {pageFlag === 1 ? ( - - ) : ( - - )} - - + + + + {pageFlag === 1 ? ( + + ) : ( + + )} + + + + )} ); diff --git a/upstream/src/components/pipelines-overview/utils.ts b/upstream/src/components/pipelines-overview/utils.ts index b63b570c..e0a5a488 100644 --- a/upstream/src/components/pipelines-overview/utils.ts +++ b/upstream/src/components/pipelines-overview/utils.ts @@ -53,7 +53,7 @@ export const TimeRangeOptions = () => { const { t } = useTranslation('plugin__pipelines-console-plugin'); return { '1d': t('Last day'), - '2w': t('Last weeks'), + '1w': t('Last week'), '4w 2d': t('Last month'), '12w': t('Last quarter'), '52w': t('Last year'), @@ -64,7 +64,7 @@ export const TimeRangeOptionsK8s = () => { const { t } = useTranslation('plugin__pipelines-console-plugin'); return { '1d': t('Last day'), - '2w': t('Last weeks'), + '1w': t('Last week'), '4w 2d': t('Last month'), '12w': t('Last quarter'), }; diff --git a/upstream/src/components/pipelines-tasks/TaskRunStatus.tsx b/upstream/src/components/pipelines-tasks/TaskRunStatus.tsx index 9c4066e3..1a07bc64 100644 --- a/upstream/src/components/pipelines-tasks/TaskRunStatus.tsx +++ b/upstream/src/components/pipelines-tasks/TaskRunStatus.tsx @@ -2,12 +2,14 @@ import * as React from 'react'; import { useTranslation } from 'react-i18next'; import { Link } from 'react-router-dom-v5-compat'; import { TaskRunKind } from '../../types'; +import { TektonResourceLabel } from '../../consts'; import PipelineResourceStatus from '../status/PipelineResourceStatus'; import { taskRunFilterTitleReducer } from '../utils/pipeline-filter-reducer'; import { TaskRunModel } from '../../models'; import StatusPopoverContent from '../status/StatusPopoverContent'; import { getTRLogSnippet } from './taskRunLogSnippet'; import { resourcePathFromModel } from '../utils/utils'; +import { useMultiClusterProxyService } from '../hooks/useMultiClusterProxyService'; type TaskRunStatusProps = { status: string; @@ -15,6 +17,9 @@ type TaskRunStatusProps = { }; const TaskRunStatus: React.FC = ({ status, taskRun }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); + const {isResourceManagedByKueue} = useMultiClusterProxyService({ labels: taskRun?.metadata?.labels }); + const pipelineRunName = + taskRun.metadata?.labels?.[TektonResourceLabel.pipelinerun]; return ( = ({ status, taskRun }) => { {t('View logs')} } + isResourceManagedByKueue={isResourceManagedByKueue} + pipelineRunName={pipelineRunName} /> ); diff --git a/upstream/src/components/pipelines-tasks/TaskRunsList.tsx b/upstream/src/components/pipelines-tasks/TaskRunsList.tsx index 48cc3a8f..1ff66584 100644 --- a/upstream/src/components/pipelines-tasks/TaskRunsList.tsx +++ b/upstream/src/components/pipelines-tasks/TaskRunsList.tsx @@ -16,10 +16,13 @@ import { useTaskRuns } from '../hooks/useTaskRuns'; import TaskRunsRow from './TaskRunsRow'; import { TaskRunModel } from '../../models'; import { ALL_NAMESPACES_KEY, TektonResourceLabel } from '../../consts'; +import { ComputedStatus, PipelineRunKind } from '../../types'; +import { pipelineRunFilterReducer } from '../utils/pipeline-filter-reducer'; import { getReferenceForModel } from '../pipelines-overview/utils'; import { useTaskRunsFilters } from './useTaskRunsFilters'; import { useLoadMoreOnScroll } from '../utils/tekton-results'; import { ListPageFilter } from '../list-pages/ListPageFilter'; +import { sortPipelineAndTaskRunsByDuration } from '../pipelines-details/pipeline-step-utils'; interface TaskRunsListPageProps { showTitle?: boolean; @@ -79,7 +82,7 @@ const useTaskColumns = () => { }, { id: 'duration', - sort: 'status.completionTime', + sort: sortPipelineAndTaskRunsByDuration, title: t('Duration'), transforms: [sortable], additional: true, @@ -116,12 +119,19 @@ const TaskRunsList: React.FC = ({ const sortColumnIndex = !namespace ? 6 : 5; const parentName = props?.obj?.metadata?.name; const parentUid = props?.obj?.metadata?.uid; + const pipelineRun = props?.obj as PipelineRunKind; + const plrStatus = pipelineRunFilterReducer(pipelineRun); + const pipelineRunFinished = + plrStatus !== ComputedStatus.Running && + plrStatus !== ComputedStatus.Pending && + plrStatus !== ComputedStatus.Cancelling; const [taskRuns, loaded, loadError, nextPageToken] = useTaskRuns( ns, parentName, - undefined, - undefined, - parentUid, + { pipelineRunUid: parentUid, + pipelineRunFinished, + pipelineRunManagedBy: pipelineRun?.spec?.managedBy + }, ); const [staticData, filteredData, onFilterChange] = useListPageFilter( taskRuns, diff --git a/upstream/src/components/pipelines-tasks/TaskRunsRow.tsx b/upstream/src/components/pipelines-tasks/TaskRunsRow.tsx index 5f8e4ae7..c86ef689 100644 --- a/upstream/src/components/pipelines-tasks/TaskRunsRow.tsx +++ b/upstream/src/components/pipelines-tasks/TaskRunsRow.tsx @@ -28,7 +28,7 @@ import { RESOURCE_LOADED_FROM_RESULTS_ANNOTATION, TektonResourceLabel, } from '../../consts'; -import { TaskRunKind } from '../../types'; +import { ComputedStatus, TaskRunKind } from '../../types'; import { taskRunFilterReducer } from '../utils/pipeline-filter-reducer'; import TaskRunStatus from './TaskRunStatus'; import { ResourceLinkWithIcon } from '../utils/resource-link'; @@ -40,6 +40,7 @@ import { } from '../utils/common-utils'; import { getModelReferenceFromTaskKind } from '../utils/pipeline-augment'; import { pipelineRunDuration } from '../utils/pipeline-utils'; +import { useMultiClusterProxyService } from '../hooks/useMultiClusterProxyService'; const taskRunsReference = getReferenceForModel(TaskRunModel); const pipelineReference = getReferenceForModel(PipelineModel); @@ -143,10 +144,21 @@ const TaskRunsRow: React.FC> = ({ obj, }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); + const {isResourceManagedByKueue} = useMultiClusterProxyService({ labels: obj?.metadata?.labels }); return ( <> = ({ taskRun, }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); + const {isResourceManagedByKueue} = useMultiClusterProxyService({ labels: taskRun?.metadata?.labels }); + const pipelineRunName = + taskRun.metadata?.labels?.[TektonResourceLabel.pipelinerun]; return ( @@ -68,6 +72,8 @@ const TaskRunDetailsStatus: React.FC = ({ {taskRun?.status?.podName && ( diff --git a/upstream/src/components/pipelines-tasks/tasks-details-pages/TaskRunLog.scss b/upstream/src/components/pipelines-tasks/tasks-details-pages/TaskRunLog.scss index 3ecba429..4d938d14 100644 --- a/upstream/src/components/pipelines-tasks/tasks-details-pages/TaskRunLog.scss +++ b/upstream/src/components/pipelines-tasks/tasks-details-pages/TaskRunLog.scss @@ -1,5 +1,13 @@ +@use '../../logs/ansi-log-colors' as *; + .odc-task-run-log { display: flex; flex: 1; padding: var(--pf-v5-global--spacer--xl); + + .pf-v5-c-log-viewer__text { + white-space: pre; + } + + @include ansi-log-colors; } diff --git a/upstream/src/components/quick-search/utils/quick-search-utils.tsx b/upstream/src/components/quick-search/utils/quick-search-utils.tsx index 9a3c35c7..c2fb5702 100644 --- a/upstream/src/components/quick-search/utils/quick-search-utils.tsx +++ b/upstream/src/components/quick-search/utils/quick-search-utils.tsx @@ -20,7 +20,7 @@ export const handleCta = async ( closeModal(); await callback({ ...callbackProps, - selectedVersion: item.data?.version, + selectedVersion: item.data?.version ?? item.data?.task?.version, selectedItem: item, }); removeQueryArgument('catalogSearch'); diff --git a/upstream/src/components/status/PipelineRunStatusPopoverContent.tsx b/upstream/src/components/status/PipelineRunStatusPopoverContent.tsx index 47d7df20..5d8dba12 100644 --- a/upstream/src/components/status/PipelineRunStatusPopoverContent.tsx +++ b/upstream/src/components/status/PipelineRunStatusPopoverContent.tsx @@ -2,11 +2,13 @@ import * as React from 'react'; import { useTranslation } from 'react-i18next'; import { Link } from 'react-router-dom-v5-compat'; import { PipelineRunModel } from '../../models'; -import { PipelineRunKind } from '../../types'; +import { ComputedStatus, PipelineRunKind } from '../../types'; import { useTaskRuns } from '../hooks/useTaskRuns'; +import { useMultiClusterProxyService } from '../hooks/useMultiClusterProxyService'; import LogSnippetBlock from '../logs/LogSnippetBlock'; import { getPLRLogSnippet } from '../logs/pipelineRunLogSnippet'; import { LoadingInline } from '../Loading'; +import { pipelineRunStatus } from '../utils/pipeline-filter-reducer'; import { resourcePathFromModel } from '../utils/utils'; import './StatusPopoverContent.scss'; @@ -17,9 +19,19 @@ const PipelineRunStatusPopoverContent: React.FC = ({ pipelineRun, }) => { const { t } = useTranslation('plugin__pipelines-console-plugin'); + const { isResourceManagedByKueue } = useMultiClusterProxyService({ managedBy: pipelineRun.spec.managedBy }); + const plrStatus = pipelineRunStatus(pipelineRun); + const pipelineRunFinished = + plrStatus !== ComputedStatus.Running && + plrStatus !== ComputedStatus.Pending && + plrStatus !== ComputedStatus.Cancelling; const [PLRTaskRuns, taskRunsLoaded] = useTaskRuns( pipelineRun.metadata.namespace, pipelineRun.metadata.name, + { + pipelineRunFinished, + pipelineRunManagedBy: pipelineRun?.spec?.managedBy + }, ); if (!taskRunsLoaded) { return ( @@ -36,6 +48,8 @@ const PipelineRunStatusPopoverContent: React.FC = ({ {(logSnippet: string) => ( <> diff --git a/upstream/src/components/status/StatusPopoverContent.tsx b/upstream/src/components/status/StatusPopoverContent.tsx index ee95349b..dc874074 100644 --- a/upstream/src/components/status/StatusPopoverContent.tsx +++ b/upstream/src/components/status/StatusPopoverContent.tsx @@ -8,15 +8,24 @@ type StatusPopoverContentProps = { link?: React.ReactNode; namespace: string; logDetails: CombinedErrorDetails; + isResourceManagedByKueue?: boolean; + pipelineRunName?: string; }; const StatusPopoverContent: React.FC = ({ namespace, logDetails, link = null, + isResourceManagedByKueue, + pipelineRunName, }) => { return (
- + {(logSnippet: string) => ( <>
{logSnippet}
diff --git a/upstream/src/components/task-quicksearch/PipelineQuickSearch.tsx b/upstream/src/components/task-quicksearch/PipelineQuickSearch.tsx index 39118878..a8d56e99 100644 --- a/upstream/src/components/task-quicksearch/PipelineQuickSearch.tsx +++ b/upstream/src/components/task-quicksearch/PipelineQuickSearch.tsx @@ -20,6 +20,7 @@ import { TaskProviders, updateTask, } from './pipeline-quicksearch-utils'; +import { safeName } from '../pipeline-builder/utils'; import PipelineQuickSearchDetails from './PipelineQuickSearchDetails'; import { CatalogServiceProvider } from '../catalog/service'; import { CatalogService } from '../catalog/types'; @@ -64,6 +65,51 @@ const Contents: React.FC< useLoadingTaskCleanup(onUpdateTasks, taskGroup); useCleanupOnFailure(failedTasks, onUpdateTasks, taskGroup); + // Get all existing task names from taskGroup and installed tasks + const getExistingTaskNames = (): string[] => { + const taskNames = new Set(); + [ + ...taskGroup.tasks, + ...taskGroup.finallyTasks, + ...taskGroup.listTasks, + ...taskGroup.loadingTasks, + ...taskGroup.finallyListTasks, + ].forEach((t) => { + if (t?.name) taskNames.add(t.name); + }); + + // Add installed catalog items (avoid duplicates) + catalogService.items.forEach((catalogItem) => { + const name = catalogItem.data?.metadata?.name; + if (name) taskNames.add(name); + }); + return Array.from(taskNames); + }; + + const handleTaskCreationWithNameConflict = ( + taskName: string, + createTaskFn: (taskNameToUse?: string) => Promise, + resolve: (value: any) => void, + ) => { + // Checking if task with same name already exists, if yes then create with a different name to avoid conflict + const existingTaskNames = getExistingTaskNames(); + if (existingTaskNames.includes(taskName)) { + const taskNameToUse = safeName(existingTaskNames, taskName); + createTaskFn(taskNameToUse) + .then(() => + resolve( + savedCallback.current({ + metadata: { name: taskNameToUse }, + }), + ), + ) + .catch(() => setFailedTasks([...failedTasks, taskNameToUse])); + } else { + resolve(savedCallback.current({ metadata: { name: taskName } })); + createTaskFn().catch(() => setFailedTasks([...failedTasks, taskName])); + } + }; + const catalogServiceItems = catalogService.items.reduce((acc, item) => { const installedTask = findInstalledTask(catalogService.items, item); @@ -102,11 +148,11 @@ const Contents: React.FC< ).catch(() => setFailedTasks([...failedTasks, item.data.name])); } } else { - resolve( - savedCallback.current({ metadata: { name: item.data.name } }), - ); - createTask(selectedVersionUrl, namespace).catch(() => - setFailedTasks([...failedTasks, item.data.name]), + handleTaskCreationWithNameConflict( + item.data.name, + (taskNameToUse) => + createTask(selectedVersionUrl, namespace, taskNameToUse), + resolve, ); } } else { @@ -143,18 +189,17 @@ const Contents: React.FC< ); } } else { - resolve( - savedCallback.current({ - metadata: { name: item.data.task.name }, - }), - ); - createArtifactHubTask( - selectedVersionUrl, - namespace, - selectedVersion, - isDevConsoleProxyAvailable, - ).catch(() => - setFailedTasks([...failedTasks, item.data.task.name]), + handleTaskCreationWithNameConflict( + item.data.task.name, + (taskNameToUse) => + createArtifactHubTask( + selectedVersionUrl, + namespace, + selectedVersion, + isDevConsoleProxyAvailable, + taskNameToUse, + ), + resolve, ); } } diff --git a/upstream/src/components/task-quicksearch/pipeline-quicksearch-utils.ts b/upstream/src/components/task-quicksearch/pipeline-quicksearch-utils.ts index 0a28b25c..6cddd0da 100644 --- a/upstream/src/components/task-quicksearch/pipeline-quicksearch-utils.ts +++ b/upstream/src/components/task-quicksearch/pipeline-quicksearch-utils.ts @@ -174,12 +174,19 @@ export const updateTask = async ( }); }; -export const createTask = (url: string, namespace: string) => { +export const createTask = ( + url: string, + namespace: string, + customName?: string, +) => { return consoleFetch(url) .then(async (res) => { const yaml = await res.text(); const task = load(yaml) as TaskKind; task.metadata.namespace = namespace; + if (customName) { + task.metadata.name = customName; + } task.metadata.annotations = { ...task.metadata.annotations, [TektonTaskAnnotation.installedFrom]: TEKTONHUB, diff --git a/upstream/src/components/utils/__tests__/pipeline-approval-data.ts b/upstream/src/components/utils/__tests__/pipeline-approval-data.ts index c22bcd16..75c8c8be 100644 --- a/upstream/src/components/utils/__tests__/pipeline-approval-data.ts +++ b/upstream/src/components/utils/__tests__/pipeline-approval-data.ts @@ -16,6 +16,7 @@ export const mockApprovalStatus = { { input: 'pending' as ApproverInput, name: 'foo', + type: 'User' as const, }, ], numberOfApprovalsRequired: 1, @@ -27,6 +28,7 @@ export const mockApprovalStatus = { message: 'hello', name: 'foo', response: 'approved' as ApproverResponse, + type: 'User' as const, }, ], state: 'approved' as ApproverResponse, @@ -97,6 +99,7 @@ export const mockApprovalStatus = { { input: 'pending' as ApproverInput, name: 'foo', + type: 'User' as const, }, ], numberOfApprovalsRequired: 1, @@ -108,6 +111,7 @@ export const mockApprovalStatus = { message: 'hello', name: 'foo', response: 'rejected' as ApproverResponse, + type: 'User' as const, }, ], state: 'rejected' as ApproverResponse, @@ -178,6 +182,7 @@ export const mockApprovalStatus = { { input: 'pending' as ApproverInput, name: 'foo', + type: 'User' as const, }, ], numberOfApprovalsRequired: 1, @@ -251,6 +256,7 @@ export const mockApprovalStatus = { { input: 'pending' as ApproverInput, name: 'foo', + type: 'User' as const, }, ], numberOfApprovalsRequired: 1, @@ -374,32 +380,39 @@ export const mockApprovalStatus = { { input: 'approve' as ApproverInput, name: 'foo', + type: 'User' as const, }, { input: 'approve' as ApproverInput, name: 'bar', + type: 'User' as const, }, { input: 'pending' as ApproverInput, name: 'john', + type: 'User' as const, }, { input: 'pending' as ApproverInput, name: 'wick', + type: 'User' as const, }, ], numberOfApprovalsRequired: 4, }, status: { approvers: ['foo', 'bar', 'john', 'wick'], + approvalsReceived: 2, approversResponse: [ { name: 'foo', response: 'approved' as ApproverResponse, + type: 'User' as const, }, { name: 'bar', response: 'approved' as ApproverResponse, + type: 'User' as const, }, ], state: 'pending' as ApproverResponse, @@ -469,36 +482,44 @@ export const mockApprovalStatus = { { input: 'approve' as ApproverInput, name: 'foo', + type: 'User' as const, }, { input: 'approve' as ApproverInput, name: 'bar', + type: 'User' as const, }, { input: 'approve' as ApproverInput, name: 'john', + type: 'User' as const, }, { input: 'pending' as ApproverInput, name: 'wick', + type: 'User' as const, }, ], numberOfApprovalsRequired: 4, }, status: { approvers: ['foo', 'bar', 'john', 'wick'], + approvalsReceived: 3, approversResponse: [ { name: 'foo', response: 'approved' as ApproverResponse, + type: 'User' as const, }, { name: 'bar', response: 'approved' as ApproverResponse, + type: 'User' as const, }, { name: 'john', response: 'approved' as ApproverResponse, + type: 'User' as const, }, ], state: 'pending' as ApproverResponse, @@ -568,6 +589,7 @@ export const mockApprovalStatus = { { input: 'pending' as ApproverInput, name: 'foo', + type: 'User' as const, }, ], numberOfApprovalsRequired: 1, @@ -579,6 +601,7 @@ export const mockApprovalStatus = { message: 'hello', name: 'foo', response: 'rejected' as ApproverResponse, + type: 'User' as const, }, ], state: 'unknown' as ApproverResponse, diff --git a/upstream/src/components/utils/approval-group-utils.ts b/upstream/src/components/utils/approval-group-utils.ts new file mode 100644 index 00000000..70a0bf17 --- /dev/null +++ b/upstream/src/components/utils/approval-group-utils.ts @@ -0,0 +1,74 @@ +import { k8sGet, UserInfo } from '@openshift-console/dynamic-plugin-sdk'; +import { Approver } from 'src/types/approver'; +import { GroupModel } from '../../models'; + +export interface GroupKind { + metadata: { + name: string; + }; + users?: string[]; +} + +/** + * Checks if the current user is authorized based on approvers list + * Supports both direct user assignment and group membership (group:groupname format) + * @param currentUser - The current user's username + * @param approvers - Array of approver strings (usernames or group:groupname) + * @returns Promise resolving to true if user is authorized + */ +export const isUserAuthorizedForApproval = async ( + currentUser: string, + approvers: Approver[], + currentUserObject: UserInfo, + cb: (userInfo: UserInfo) => void, +): Promise => { + if (!currentUser || !approvers || approvers.length === 0) { + return false; + } + + // Check direct user assignment (existing functionality) + if ( + approvers.filter( + (approver) => approver.name === currentUser && approver.type === 'User', + )?.length > 0 + ) { + return true; + } + + // Check group-based assignments (new functionality) + const groupApprovers = approvers.filter( + (approver) => approver.type === 'Group', + ); + + for (const groupApprover of groupApprovers) { + const groupName = groupApprover.name; + if ( + Array.isArray(currentUserObject.groups) && + currentUserObject.groups.includes(groupName) + ) { + return true; + } + //currentUserObject.groups = []; + try { + const group = await k8sGet({ + model: GroupModel, + name: groupName, + }); + if (group.users && group.users.includes(currentUser)) { + cb({ + ...currentUserObject, + groups: [...(currentUserObject.groups || []), groupName], + }); + return true; + } + } catch (error) { + // Log error but continue checking other groups + console.warn( + `Failed to check group membership for group: ${groupName}`, + error, + ); + } + } + + return false; +}; diff --git a/upstream/src/components/utils/multi-cluster-api.ts b/upstream/src/components/utils/multi-cluster-api.ts new file mode 100644 index 00000000..21520feb --- /dev/null +++ b/upstream/src/components/utils/multi-cluster-api.ts @@ -0,0 +1,78 @@ +import { consoleFetchJSON } from '@openshift-console/dynamic-plugin-sdk'; +import { PodKind, TaskRunKind } from '../../types'; + +const PROXY_BASE = '/api/proxy/plugin/pipelines-console-plugin/multicluster-proxy'; + +export type ResolveResponse = { + name: string; + state: string; + workloadName: string; +}; + +export type TaskRunsResponse = { items: TaskRunKind[] }; +export type PodsResponse = { items: PodKind[] }; + + +export const getMultiClusterTaskRuns = ( + ns: string, + plrName: string, +): Promise => + consoleFetchJSON( + `${PROXY_BASE}/api/v1/namespaces/${ns}/pipelineruns/${plrName}/taskruns`, + ); + +export const getMultiClusterPods = ( + ns: string, + plrName: string, +): Promise => + consoleFetchJSON( + `${PROXY_BASE}/api/v1/namespaces/${ns}/pipelineruns/${plrName}/pods`, + ); + +// Not using this as this only returns the Pod status, and we need the full Pod for container info +export const getMultiClusterPodStatus = ( + ns: string, + podName: string, + plrName: string, +): Promise => + consoleFetchJSON( + `${PROXY_BASE}/api/v1/namespaces/${ns}/pods/${podName}/status?pipelineRun=${plrName}`, + ); + +export const fetchMultiClusterLogs = async ( + ns: string, + plrName: string, + podName: string, + container: string, +): Promise => { + const res = await fetch( + `${PROXY_BASE}/api/v1/namespaces/${ns}/logs?pipelineRun=${plrName}&pod=${podName}&container=${container}`, + ); + return res.text(); +}; + +export const getMultiClusterLogsUrl = ( + ns: string, + plrName: string, + podName: string, + container: string, +): string => + `${PROXY_BASE}/api/v1/namespaces/${ns}/logs?pipelineRun=${plrName}&pod=${podName}&container=${container}`; + +// Returns just the path for use with WSFactory +export const getMultiClusterLogsStreamPath = ( + ns: string, + plrName: string, + podName: string, + container: string, +): string => + `${PROXY_BASE}/api/v1/namespaces/${ns}/logs/stream?pipelineRun=${plrName}&pod=${podName}&container=${container}`; + +export const checkReady = async (): Promise => { + try { + const res = await fetch(`${PROXY_BASE}/ready`); + return res.ok; + } catch { + return false; + } +}; diff --git a/upstream/src/components/utils/pipeline-approval-utils.ts b/upstream/src/components/utils/pipeline-approval-utils.ts index 2c1d266e..4d635b85 100644 --- a/upstream/src/components/utils/pipeline-approval-utils.ts +++ b/upstream/src/components/utils/pipeline-approval-utils.ts @@ -69,7 +69,7 @@ export const getApprovalStatus = ( pipelineRun && pipelineRunFilterReducer(pipelineRun); const approvalsRequired = approvalTask?.spec?.numberOfApprovalsRequired; - const currentApprovals = approvalTask?.status?.approversResponse?.length; + const currentApprovals = approvalTask?.status?.approvalsReceived; const approvalState = approvalTask?.status?.state; const approvalPercentage = (currentApprovals / approvalsRequired) * 100; diff --git a/upstream/src/components/utils/proxy.ts b/upstream/src/components/utils/proxy.ts index f0245dc9..805fc658 100644 --- a/upstream/src/components/utils/proxy.ts +++ b/upstream/src/components/utils/proxy.ts @@ -11,6 +11,8 @@ export type ProxyRequest = { headers?: Record; queryparams?: Record; body?: string; + signal?: AbortSignal; + timeout?: number; }; export type ProxyResponse = { @@ -41,9 +43,12 @@ export const convertHeaders = (headers): Record => { export const consoleProxyFetch = async ( proxyRequest: ProxyRequest, ): Promise => { + const { signal, timeout = 60000, ...requestData } = proxyRequest; const proxyResponse: ProxyResponse = await consoleFetchJSON.post( API_PROXY_URL, - proxyRequest, + requestData, + { signal }, + timeout, ); if (!proxyResponse.statusCode) { throw new Error('Unexpected proxy response: Status code is missing!'); diff --git a/upstream/src/components/utils/summary-api.ts b/upstream/src/components/utils/summary-api.ts index f75654d6..46220942 100644 --- a/upstream/src/components/utils/summary-api.ts +++ b/upstream/src/components/utils/summary-api.ts @@ -49,13 +49,22 @@ export const fetchSummaryURLConfig = async ( /** * Fetches the Tekton Results Summary data from the backend API * @param summaryRequest The request object containing the search namespace and search parameters + * @param signal Optional AbortSignal to cancel the request + * @param timeout Optional timeout in milliseconds (defaults to 90000ms) * @returns The parsed summary response object */ const fetchResultsSummary = async ( summaryRequest: SummaryRequest, + signal?: AbortSignal, + timeout = 60000, ): Promise => { const resultListResponse: DevConsoleEndpointResponse = - await consoleFetchJSON.post(SUMMARY_FETCH_URL, summaryRequest); + await consoleFetchJSON.post( + SUMMARY_FETCH_URL, + summaryRequest, + { signal }, + timeout, + ); if (!resultListResponse.statusCode) { throw new Error('Unexpected proxy response: Status code is missing!'); @@ -83,39 +92,42 @@ export const getResultsSummary = async ( options?: TektonResultsOptions, nextPageToken?: string, isDevConsoleProxyAvailable?: boolean, + signal?: AbortSignal, + timeout = 60000, ) => { - try { - if (isDevConsoleProxyAvailable) { - const { searchNamespace, searchParams } = await fetchSummaryURLConfig( - namespace, - options, - nextPageToken, - ); + if (isDevConsoleProxyAvailable) { + const { searchNamespace, searchParams } = await fetchSummaryURLConfig( + namespace, + options, + nextPageToken, + ); - const sData: SummaryResponse = await fetchResultsSummary({ + const sData: SummaryResponse = await fetchResultsSummary( + { searchNamespace, searchParams, - }); + }, + signal, + timeout, + ); - return sData; - } else { - const url = await createTektonResultsSummaryUrl( - namespace, - options, - nextPageToken, - ); + return sData; + } else { + const url = await createTektonResultsSummaryUrl( + namespace, + options, + nextPageToken, + ); - const sData: SummaryResponse = await consoleProxyFetchJSON({ - url, - method: 'GET', - allowInsecure: true, - allowAuthHeader: true, - }); + const sData: SummaryResponse = await consoleProxyFetchJSON({ + url, + method: 'GET', + allowInsecure: true, + allowAuthHeader: true, + signal, + timeout, + }); - return sData; - } - } catch (e) { - console.log('Summary API Error', e); - throw e; + return sData; } }; diff --git a/upstream/src/components/utils/utils.ts b/upstream/src/components/utils/utils.ts index 74f9bced..c946311a 100644 --- a/upstream/src/components/utils/utils.ts +++ b/upstream/src/components/utils/utils.ts @@ -2,6 +2,8 @@ import { K8sModel } from '@openshift-console/dynamic-plugin-sdk'; import _ from 'lodash'; import { DELETED_RESOURCE_IN_K8S_ANNOTATION, + KUEUE_LABEL_PREFIX, + PIPELINE_RUN_KUEUE_ORIGIN_LABEL, preferredNameAnnotation, RESOURCE_LOADED_FROM_RESULTS_ANNOTATION, StartedByAnnotation, @@ -204,13 +206,18 @@ export const getPipelineRunData = ( namespace: pipeline ? pipeline.metadata.namespace : latestRun.metadata.namespace, - labels: _.merge( - {}, - pipeline?.metadata?.labels, - latestRun?.metadata?.labels, - (latestRun?.spec.pipelineRef || pipeline) && { - 'tekton.dev/pipeline': pipelineName, - }, + labels: _.omitBy( + _.merge( + {}, + pipeline?.metadata?.labels, + latestRun?.metadata?.labels, + (latestRun?.spec.pipelineRef || pipeline) && { + 'tekton.dev/pipeline': pipelineName, + }, + ), + (_value, key) => + latestRun?.metadata?.labels?.[PIPELINE_RUN_KUEUE_ORIGIN_LABEL] && + key.startsWith(KUEUE_LABEL_PREFIX), ), }, spec: { diff --git a/upstream/src/consts.ts b/upstream/src/consts.ts index bf5d09ee..c50751e2 100644 --- a/upstream/src/consts.ts +++ b/upstream/src/consts.ts @@ -196,3 +196,7 @@ export const GITHUB_ARTIFACTHUB_TASK_YAML_URL = '/api/dev-console/artifacthub/yaml'; export const FLAG_OPENSHIFT_PIPELINE = 'OPENSHIFT_PIPELINE'; export const PIPELINE_RUN_AUTO_START_FAILED = `bridge/pipeline-run-auto-start-failed`; +export const PIPELINE_RUN_MANAGED_BY_KUEUE_LABEL = 'kueue.x-k8s.io/multikueue'; +export const PIPELINE_RUN_KUEUE_ORIGIN_LABEL = + 'kueue.x-k8s.io/multikueue-origin'; +export const KUEUE_LABEL_PREFIX = 'kueue.x-k8s.io'; diff --git a/upstream/src/models.ts b/upstream/src/models.ts index ec686eaa..9eb53cef 100644 --- a/upstream/src/models.ts +++ b/upstream/src/models.ts @@ -503,3 +503,18 @@ export const TektonConfigModel: K8sKind = { labelPlural: 'TektonConfigs', crd: true, }; + +export const GroupModel: K8sKind = { + apiGroup: 'user.openshift.io', + apiVersion: 'v1', + label: 'Group', + labelKey: 'Group', + labelPluralKey: 'Groups', + plural: 'groups', + abbr: 'G', + kind: 'Group', + id: 'group', + labelPlural: 'Groups', + crd: true, + color, +}; diff --git a/upstream/src/redux/actions/pipelines-overview-filters.ts b/upstream/src/redux/actions/pipelines-overview-filters.ts new file mode 100644 index 00000000..8e1ad4e9 --- /dev/null +++ b/upstream/src/redux/actions/pipelines-overview-filters.ts @@ -0,0 +1,12 @@ +import { ActionType } from '../reducers/pipelines-overview-filters'; + +export const setTimespan = (timespan: number) => ({ + type: ActionType.SET_TIMESPAN, + payload: { timespan }, +}); + +export const setInterval = (interval: number) => ({ + type: ActionType.SET_INTERVAL, + payload: { interval }, +}); + diff --git a/upstream/src/redux/index.ts b/upstream/src/redux/index.ts new file mode 100644 index 00000000..763d3e56 --- /dev/null +++ b/upstream/src/redux/index.ts @@ -0,0 +1,3 @@ +export * from './actions/pipelines-overview-filters'; +export * from './reducers/pipelines-overview-filters'; +export * from './selectors/pipelines-overview-filters'; diff --git a/upstream/src/redux/reducers/pipelines-overview-filters.ts b/upstream/src/redux/reducers/pipelines-overview-filters.ts new file mode 100644 index 00000000..5723becf --- /dev/null +++ b/upstream/src/redux/reducers/pipelines-overview-filters.ts @@ -0,0 +1,37 @@ +export type PipelinesOverviewFiltersState = { + timespan: number | null; + interval: number | null; +}; + +export enum ActionType { + SET_TIMESPAN = 'SET_PIPELINES_OVERVIEW_TIMESPAN', + SET_INTERVAL = 'SET_PIPELINES_OVERVIEW_INTERVAL', +} + +type Action = { + type: ActionType; + payload?: { + timespan?: number; + interval?: number; + }; +}; + +const initialState: PipelinesOverviewFiltersState = { + timespan: null, + interval: null, +}; + +export const pipelinesOverviewFiltersReducer = ( + state: PipelinesOverviewFiltersState = initialState, + action: Action, +): PipelinesOverviewFiltersState => { + switch (action.type) { + case ActionType.SET_TIMESPAN: + return { ...state, timespan: action.payload?.timespan ?? null }; + case ActionType.SET_INTERVAL: + return { ...state, interval: action.payload?.interval ?? null }; + default: + return state; + } +}; + diff --git a/upstream/src/redux/selectors/pipelines-overview-filters.ts b/upstream/src/redux/selectors/pipelines-overview-filters.ts new file mode 100644 index 00000000..5bd97472 --- /dev/null +++ b/upstream/src/redux/selectors/pipelines-overview-filters.ts @@ -0,0 +1,14 @@ +import { PipelinesOverviewFiltersState } from '../reducers/pipelines-overview-filters'; + +export const getPipelinesOverviewTimespan = (state: { + plugins?: { pipelinesOverviewFilters?: PipelinesOverviewFiltersState }; +}): number | null => { + return state.plugins?.pipelinesOverviewFilters?.timespan ?? null; +}; + +export const getPipelinesOverviewInterval = (state: { + plugins?: { pipelinesOverviewFilters?: PipelinesOverviewFiltersState }; +}): number | null => { + return state.plugins?.pipelinesOverviewFilters?.interval ?? null; +}; + diff --git a/upstream/src/types/approver.ts b/upstream/src/types/approver.ts new file mode 100644 index 00000000..4315c0b7 --- /dev/null +++ b/upstream/src/types/approver.ts @@ -0,0 +1,29 @@ +import { ApproverInput, ApproverResponse } from './approvals'; + +export type UserApprover = { + input: ApproverInput; + name: string; + message?: string; +}; + +export type Approver = { + input: ApproverInput; + message?: string; + name: string; + type: 'User' | 'Group'; + isGroup?: boolean; + users?: UserApprover[]; +}; +export type GroupMember = { + name: string; + response: ApproverResponse; + message?: string; +}; + +export type ApproverResponseDetails = { + name: string; + response: ApproverResponse; + type: 'User' | 'Group'; + message?: string; + groupMembers?: GroupMember[]; +}; diff --git a/upstream/src/types/coreTekton.ts b/upstream/src/types/coreTekton.ts index 68b457ee..ca142b78 100644 --- a/upstream/src/types/coreTekton.ts +++ b/upstream/src/types/coreTekton.ts @@ -135,6 +135,7 @@ export interface Spec { pipeline: Pipeline; profile: string; pruner: Pruner; + scheduler?: Scheduler; targetNamespace: string; trigger: Trigger; } @@ -153,3 +154,8 @@ export type TektonConfig = K8sResourceCommon & { spec: Spec; status: Status; }; + +export interface Scheduler { + 'multi-cluster-disabled': boolean; + 'multi-cluster-role': string +} \ No newline at end of file diff --git a/upstream/src/types/pipelineRun.ts b/upstream/src/types/pipelineRun.ts index 96b6b6ec..ba473857 100644 --- a/upstream/src/types/pipelineRun.ts +++ b/upstream/src/types/pipelineRun.ts @@ -158,6 +158,7 @@ export type PipelineRunStatus = { export type PipelineRunKind = K8sResourceCommon & { spec: { + managedBy?: string; pipelineRef?: { name?: string; resolver?: string; diff --git a/upstream/src/types/resultsSummary.ts b/upstream/src/types/resultsSummary.ts index 63bfb2b9..45545a40 100644 --- a/upstream/src/types/resultsSummary.ts +++ b/upstream/src/types/resultsSummary.ts @@ -37,6 +37,7 @@ export type Log = { export type RecordsList = { nextPageToken?: string; + next_page_token?: string; records: ResultRecord[]; }; diff --git a/upstream/src/types/task.ts b/upstream/src/types/task.ts index f103a5d7..da2e0d90 100644 --- a/upstream/src/types/task.ts +++ b/upstream/src/types/task.ts @@ -1,5 +1,6 @@ import { K8sResourceCommon } from '@openshift-console/dynamic-plugin-sdk'; import { ApproverInput, ApproverResponse } from './approvals'; +import { ApproverResponseDetails, UserApprover } from './approver'; import { TektonTaskSpec } from './coreTekton'; export type TaskKind = K8sResourceCommon & { @@ -32,6 +33,8 @@ export type ApprovalTaskKind = K8sResourceCommon & { input: ApproverInput; message?: string; name: string; + type: 'User' | 'Group'; + users?: UserApprover[]; }[]; numberOfApprovalsRequired: number; description?: string; @@ -39,9 +42,8 @@ export type ApprovalTaskKind = K8sResourceCommon & { status?: { state: ApproverResponse; approvers: string[]; - approversResponse?: { - name: string; - response: ApproverResponse; - }[]; + approvalsReceived?: number; + approvalsRequired?: number; + approversResponse?: ApproverResponseDetails[]; }; }; diff --git a/upstream/test-frontend.sh b/upstream/test-frontend.sh index e54cc885..a9220ac1 100755 --- a/upstream/test-frontend.sh +++ b/upstream/test-frontend.sh @@ -6,6 +6,10 @@ set -euo pipefail OPENSHIFT_CI=${OPENSHIFT_CI:=false} ARTIFACT_DIR=${ARTIFACT_DIR:=/tmp/artifacts} +# Install and enable Corepack for Yarn 4 +npm install -g corepack +corepack enable && corepack prepare yarn@4.6.0 --activate + if [ ! -d node_modules ]; then yarn install fi diff --git a/upstream/test-prow-e2e.sh b/upstream/test-prow-e2e.sh index 3061ae4c..96052a06 100755 --- a/upstream/test-prow-e2e.sh +++ b/upstream/test-prow-e2e.sh @@ -2,6 +2,13 @@ set -exuo pipefail +# Set Cypress cache to user-writable location as user inside container may not have write access +export CYPRESS_CACHE_FOLDER="${HOME}/.cache/Cypress" + +# Install and enable Corepack for Yarn 4 +npm install -g corepack 2>/dev/null || true +corepack enable && corepack prepare yarn@4.6.0 --activate + ARTIFACT_DIR=${ARTIFACT_DIR:=/tmp/artifacts} SCREENSHOTS_DIR=gui_test_screenshots INSTALLER_DIR=${INSTALLER_DIR:=${ARTIFACT_DIR}/installer} @@ -32,6 +39,9 @@ if [ ! -d node_modules ]; then yarn install fi +# Ensure Cypress binary is installed +yarn exec cypress install + while getopts s:h:l:n: flag do case "${flag}" in diff --git a/upstream/webpack.config.ts b/upstream/webpack.config.ts index a5403b9e..d1dc0baf 100644 --- a/upstream/webpack.config.ts +++ b/upstream/webpack.config.ts @@ -126,8 +126,12 @@ const config: Configuration = { port: 9001, // Allow bridge running in a container to connect to the plugin dev server. allowedHosts: 'all', + hot: true, + liveReload: true, client: { overlay: false, + // Connect to plugin dev server, not console + webSocketURL: 'ws://localhost:9001/ws', }, headers: { 'Access-Control-Allow-Origin': '*', @@ -139,6 +143,7 @@ const config: Configuration = { devMiddleware: { writeToDisk: true, }, + watchFiles: ['src/**/*'], }, plugins: [ new ConsoleRemotePlugin(), diff --git a/upstream/yarn-1.22.22.tgz b/upstream/yarn-1.22.22.tgz deleted file mode 100644 index f945a9e71cc48ef98008b2567000f588b9a2664a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1238429 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 z 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

9T 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

8PK$+OHSc$cWjC*phuQP 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

8qiE7O|_cA-cE58KKNkbNdIlS$xfW=UqYoHF9 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