diff --git a/app-config.yaml b/app-config.yaml index ea2b0c5..5af814d 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -133,4 +133,4 @@ argocd: # replace with your argocd password e.g. kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d password: ${ARGOCD_ADMIN_PASSWORD} argoWorkflows: - baseUrl: https://cnoe.localtest.me:8443/argo-workflows + baseUrl: https://cnoe.localtest.me:8443/argo-workflows \ No newline at end of file diff --git a/packages/app/package.json b/packages/app/package.json index 72f5395..fcf6b76 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -44,6 +44,7 @@ "@internal/plugin-apache-spark": "^0.1.0", "@internal/plugin-argo-workflows": "^0.1.0", "@internal/plugin-cnoe-ui": "^0.1.0", + "@internal/plugin-terraform": "^0.1.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@roadiehq/backstage-plugin-argo-cd": "^2.5.1", diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 86e0d00..e1d6e3d 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -45,7 +45,7 @@ import { ApacheSparkPage } from '@internal/plugin-apache-spark'; import { UnifiedThemeProvider } from "@backstage/theme"; - +import { TerraformPluginPage } from '@internal/plugin-terraform'; const app = createApp({ apis, @@ -148,6 +148,7 @@ const routes = ( } /> } /> } /> + } /> ); diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index 30e5db9..e6aef17 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -70,6 +70,7 @@ import { isArgoWorkflowsAvailable, } from '@internal/plugin-argo-workflows'; import {ApacheSparkPage, isApacheSparkAvailable} from "@internal/plugin-apache-spark"; +import { isTerraformAvailable, TerraformPluginPage } from '@internal/plugin-terraform'; const techdocsContent = ( @@ -157,6 +158,13 @@ const overviewContent = ( + + isTerraformAvailable(e)}> + + + + + @@ -171,6 +179,10 @@ const overviewContent = ( ); +const terraFormContent = ( + +); + const serviceEntityPage = ( diff --git a/packages/backend/package.json b/packages/backend/package.json index 8f34c0b..03fe694 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -47,6 +47,7 @@ "@backstage/plugin-search-backend-node": "^1.2.21", "@backstage/plugin-techdocs-backend": "^1.10.4", "@backstage/types": "^1.1.1", + "@internal/backstage-plugin-terraformv2-backend": "^0.1.0", "@kubernetes/client-node": "~0.20.0", "@roadiehq/backstage-plugin-argo-cd-backend": "3.0.2", "@roadiehq/scaffolder-backend-module-utils": "^1.17.0", diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 2541a4a..51760aa 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -32,5 +32,6 @@ backend.add(legacyPlugin('argocd', import('./plugins/argocd'))); // cnoe plugins backend.add(authModuleKeycloakOIDCProvider); backend.add(cnoeScaffolderActions); +backend.add(import('@internal/backstage-plugin-terraformv2-backend')); backend.start(); diff --git a/plugins/terraform/.eslintrc.js b/plugins/terraform/.eslintrc.js new file mode 100644 index 0000000..e2a53a6 --- /dev/null +++ b/plugins/terraform/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/terraform/README.md b/plugins/terraform/README.md new file mode 100644 index 0000000..b8424fd --- /dev/null +++ b/plugins/terraform/README.md @@ -0,0 +1,148 @@ +# Terraform Backstage Plugin + +Welcome to the Terraform plugin! This plugin can show Terraform outputs/resources from TFState files associated with a particular Backstage components. It does this by utilizing various annotations which point to where the TFState might be stored. It will then fetch those files, parse them, and display them in a Backstage component. + +## Getting started + +### Terraform State Files +This plugin supports three storage locations for Terraform state files (tfstate): K8s secrets, S3 and local file systems. S3 will require additional configuration for AWS credentials to access S3. To access local file systems, the terraform backend will need proper file permissions to access those files. + +### Configuration - Frontend + +Entities must be annotated with Kubernetes annotations. An example component +would look like the following where you can configure the `spec` to your +liking. Information specific to Terraform goes under `annotations` as +shown below: + +```yaml +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: backstage + annotations: + terraform.cnoe.io/s3-bucket: backstage-terraform-plugin + terraform.cnoe.io/s3-prefix: tfstates/ + terraform.cnoe.io/local-filepath: /var/lib/tfstatefiles + terraform.cnoe.io/secret-name: secret + terraform.cnoe.io/secret-namespace: namespace +spec: + type: service + lifecycle: experimental + owner: user1 + system: system1 +``` + +Update your Entity page. + +For example if you have want to have a Terraform link in the top toolbar to expand to a new page: +```typescript +// in packages/app/src/components/catalog/EntityPage.tsx +import { isTerraformAvailable, TerraformPluginPage } from '@cnoe-io/plugin-terraform'; +... +const terraFormContent = ( + +); +... +const websiteEntityPage = ( + + ... + + {terraFormContent} + + +... +); +``` + +If you want to have the Terraform outputs/resources tables on the overview Entity page: +```typescript +// in packages/app/src/components/catalog/EntityPage.tsx +const overviewContent = ( + + ... + + isTerraformAvailable(e)}> + + + + + + ... + +); +``` + +#### Annotations +As shown in the example above, the following annotations could go under +`annotations` in the backstage `Component` and will be recognized by this plugin. + +- One of the three annotations below are required: +- `terraform.cnoe.io/s3-bucket`: Optional. The S3 bucket where tfstate files would be stored. +- `terraform.cnoe.io/local-filepath`: Optional. The local file system path of where tfstate files would be stored. +- If storing tfstate files in S3, you can optionally define a prefix: +- `terraform.cnoe.io/s3-prefix`: Optional. This is a S3 prefix of where tfstate files would be stored in the S3 bucket. +- `terraform.cnoe.io/secret-name`: Optional. The secret name where the tfstate file would be stored in the K8s cluster. +- `terraform.cnoe.io/secret-namespace`: Optional. The namespace of the secret. + +Note: The plugin only supports using one storage location at a time. It looks at the following annotations in this order: + +- secret-name/secret-namespace +- s3-bucket/s3-prefix +- local-filepath + +### Configuration - Backend + +In `packages/backend/src/index.ts`, import the backend plugin. + +```typescript +... +// cnoe plugins +backend.add(authModuleKeycloakOIDCProvider); +backend.add(cnoeScaffolderActions); +backend.add(import('@internal/backstage-plugin-terraformv2-backend')); + +backend.start(); +... +``` + +### Authentication + +#### AWS Credentails + +By default, the Terraform backend plugin relies on the [default behavior of the AWS SDK for Javascript](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_credential_provider_node.html) to determine the AWS credentials that it uses to authenticate an identity to use with AWS APIs. + +The Terraform backend plugin that runs in your Backstage app searches for credentials in the following order: + +1. Environment variables (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`) +1. SSO credentials from the token cache +1. Web identity token credentials (including running in an Amazon EKS cluster using IAM roles for service accounts) +1. Shared credentials and config ini files (`~/.aws/credentials`, `~/.aws/config`) +1. Amazon Elastic Container Service (Amazon ECS) task metadata service +1. Amazon Elastic Compute Cloud (Amazon EC2) instance metadata service + +We recommend that you don't hard-code long lived AWS credentials in your production Backstage application configuration. Hard-coding credentials is risky and might expose your access key ID and secret access key. + +Instead, we recommend that you use short lived AWS credentials for your production Backstage application by deploying it to Amazon ECS, Amazon Elastic Kubernetes Service (Amazon EKS), or Amazon EC2. For more information about deploying Backstage to Amazon EKS using a Helm chart or to Amazon ECS on AWS Fargate using the AWS Cloud Development Kit (CDK), see [Deploying Backstage](https://backstage.io/docs/deployment/) in the Backstage documentation. + +To use multiple AWS accounts with your Backstage app or to explicitly configure credentials for an AWS account, you can configure AWS accounts in your Backstage app's configuration. +For example, to configure an AWS account to use with the Terraform backend plugin which requires using an IAM role to retrieve credentials, add the following to your Backstage app-config.yaml file. + +```yaml +aws: + accounts: + - accountId: '111111111111' + roleName: 'my-iam-role-name' +``` + +For more account configuration examples, see the [Backstage integration-aws-node package documentation](https://www.npmjs.com/package/@backstage/integration-aws-node). + +## IAM permissions + +The Terraform backend plugin requires the AWS identity that it uses to have the following IAM permissions for getting tfstate files from S3: + +* s3:GetObject +* s3:ListObjectsV2 + +## Diagram + +![details](images/terraform.png) diff --git a/plugins/terraform/dev/index.tsx b/plugins/terraform/dev/index.tsx new file mode 100644 index 0000000..ce55a27 --- /dev/null +++ b/plugins/terraform/dev/index.tsx @@ -0,0 +1,12 @@ +import React from 'react'; +import { createDevApp } from '@backstage/dev-utils'; +import { terraformPlugin, TerraformPage } from '../src/plugin'; + +createDevApp() + .registerPlugin(terraformPlugin) + .addPage({ + element: , + title: 'Root Page', + path: '/terraform' + }) + .render(); diff --git a/plugins/terraform/images/terraform.png b/plugins/terraform/images/terraform.png new file mode 100644 index 0000000..49af18c Binary files /dev/null and b/plugins/terraform/images/terraform.png differ diff --git a/plugins/terraform/package.json b/plugins/terraform/package.json new file mode 100644 index 0000000..f5df163 --- /dev/null +++ b/plugins/terraform/package.json @@ -0,0 +1,51 @@ +{ + "name": "@internal/plugin-terraform", + "version": "0.1.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "private": true, + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "backstage": { + "role": "frontend-plugin" + }, + "sideEffects": false, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/core-components": "~0.13.10", + "@backstage/core-plugin-api": "~1.8.2", + "@backstage/theme": "~0.5.0", + "@material-ui/core": "^4.9.13", + "@material-ui/icons": "^4.9.1", + "@material-ui/lab": "^4.0.0-alpha.61", + "react-use": "^17.2.4" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0" + }, + "devDependencies": { + "@backstage/cli": "~0.25.1", + "@backstage/core-app-api": "~1.11.3", + "@backstage/dev-utils": "^1.0.26", + "@backstage/test-utils": "^1.4.7", + "@testing-library/jest-dom": "^5.10.1", + "@testing-library/react": "^12.1.3", + "@testing-library/user-event": "^14.0.0", + "msw": "^1.0.0" + }, + "files": [ + "dist" + ] +} diff --git a/plugins/terraform/src/api/Terraform.test.ts b/plugins/terraform/src/api/Terraform.test.ts new file mode 100644 index 0000000..319cda1 --- /dev/null +++ b/plugins/terraform/src/api/Terraform.test.ts @@ -0,0 +1,81 @@ +import { Terraform } from "./Terraform"; +import { KubernetesApi } from "@backstage/plugin-kubernetes"; +import { FrontendHostDiscovery } from "@backstage/core-app-api"; +import { UserIdentity } from "@backstage/core-components"; + +describe("TerraformClient", () => { + const mockKClient: jest.Mocked = { + getObjectsByEntity: jest.fn(), + getClusters: jest.fn(), + getWorkloadsByEntity: jest.fn(), + getCustomObjectsByEntity: jest.fn(), + proxy: jest.fn(), + }; + + beforeAll(() => { + jest + .spyOn(FrontendHostDiscovery.prototype, "getBaseUrl") + .mockImplementation((id) => { + return Promise.resolve(`https://backstage.io/${id}`); + }); + jest + .spyOn(UserIdentity.prototype, "getCredentials") + .mockImplementation(() => { + return Promise.resolve({ token: "abc" }); + }); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); + + it("can fetch from k8s", async () => { + mockKClient.proxy.mockResolvedValue({ + status: 200, + ok: true, + text: async () => "teststring", + } as Response); + const a = new Terraform(mockKClient); + const spy = jest.spyOn(mockKClient, "proxy"); + const resp = await a.getSecret("abc", "default", "test"); + expect(resp).toBeDefined(); + expect(spy).toHaveBeenCalledWith({ + clusterName: "abc", + path: "/apis/v1/namespaces/default/secrets/test?timeoutSeconds=30", + }); + }); + it("can fetch from default k8s cluster", async () => { + mockKClient.proxy.mockResolvedValue({ + status: 200, + ok: true, + text: async () => "teststring" + } as Response); + mockKClient.getClusters.mockResolvedValue([ + { + name: "cluster-1", + authProvider: "provider-1", + }, + ]); + + const a = new Terraform(mockKClient); + const spy = jest.spyOn(a, "getFirstCluster"); + const resp = await a.getSecret(undefined, "default", "test"); + expect(resp).toBeDefined(); + expect(spy).toHaveBeenCalled(); + }); + it("rejects when non-ok status returned", async () => { + mockKClient.proxy.mockResolvedValue({ + status: 500, + ok: false, + statusText: "something went wrong", + text: async () => "oh no", + } as Response); + + const a = new Terraform(mockKClient); + await expect( + a.getSecret("abc", "default", "test") + ).rejects.toEqual( + "failed to fetch resources: 500, something went wrong, oh no" + ); + }); +}); diff --git a/plugins/terraform/src/api/Terraform.ts b/plugins/terraform/src/api/Terraform.ts new file mode 100644 index 0000000..5d9943d --- /dev/null +++ b/plugins/terraform/src/api/Terraform.ts @@ -0,0 +1,159 @@ +import { IdentityApi, ConfigApi } from "@backstage/core-plugin-api" +import { KubernetesApi } from "@backstage/plugin-kubernetes"; +import { TerraformApi } from "./index"; + +const API_VERSION = "v1"; +const K8s_API_TIMEOUT = "timeoutSeconds"; + +export class Terraform implements TerraformApi { + private kubernetesApi: KubernetesApi; + private identityApi: IdentityApi; + private configApi: ConfigApi; + + constructor( + kubernetesApi: KubernetesApi, + identityApi: IdentityApi, + configApi: ConfigApi, + ) { + this.kubernetesApi = kubernetesApi; + this.identityApi = identityApi; + this.configApi = configApi; + } + + async fetchURL(url: string, type: string, requestBody: any) { + const { token } = await this.identityApi.getCredentials(); + const backendUrl = this.configApi.getString('backend.baseUrl'); + const response = await fetch(backendUrl+""+url, { + method: type, + body: JSON.stringify(requestBody), + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}`, + } + }); + return response; + } + + async deflate( + tfState:string + ): Promise { + const requestBody = { + tfState + }; + + const response = await this.fetchURL('/api/terraformv2/deflate', 'post', requestBody); + + if (!response.ok) { + return Promise.reject( + `failed to fetch resources: ${response.status}, ${ + response.statusText + }, ${await response.text()}` + ); + } + return response.json(); + } + + async s3GetFileList( + Bucket:string, + Prefix:string + ):Promise { + const requestBody = { + Bucket, + Prefix + }; + + const response = await this.fetchURL('/api/terraformv2/getFileList', 'post', requestBody); + if (!response.ok) { + return Promise.reject( + `failed to fetch resources: ${response.status}, ${ + response.statusText + }, ${await response.text()}` + ); + } + return response.json(); + } + + async localGetFileList( + FileLocation:string + ):Promise { + const requestBody = { + FileLocation, + }; + + const response = await this.fetchURL('/api/terraformv2/getLocalFileList', 'post', requestBody); + if (!response.ok) { + return Promise.reject( + `failed to fetch resources: ${response.status}, ${ + response.statusText + }, ${await response.text()}` + ); + } + return response.json(); + } + + async getTFStateFile( + Bucket:string, + file:any + ):Promise { + let bodyObj:any = { + Key: file.Key + }; + if(Bucket) { + bodyObj.Bucket = Bucket; + } + + const response = await this.fetchURL('/api/terraformv2/getTFStateFile', 'post', bodyObj); + if (!response.ok) { + return Promise.reject( + `failed to fetch resources: ${response.status}, ${ + response.statusText + }, ${await response.text()}` + ); + } + return response.json(); + } + + + + async getSecret( + clusterName: string | undefined, + namespace: string, + secretName: string + ): Promise { + const ns = namespace !== undefined ? namespace : "flux-system"; + const path = `/api/${API_VERSION}/namespaces/${ns}/secrets/${secretName}`; + const query = new URLSearchParams({ + [K8s_API_TIMEOUT]: "30", + }); + // need limits and pagination + const resp = await this.kubernetesApi.proxy({ + clusterName: + clusterName !== undefined ? clusterName : await this.getFirstCluster(), + path: `${path}?${query.toString()}`, + }); + + if (!resp.ok) { + return Promise.reject( + `failed to fetch resources: ${resp.status}, ${ + resp.statusText + }, ${await resp.text()}` + ); + } + // need validation + const responseText = await resp.text() + const secretJSON = JSON.parse(responseText) + return [ + { + "TFStateContents": secretJSON.data.tfstate + } + ] + } + + async getFirstCluster(): Promise { + const clusters = await this.kubernetesApi.getClusters(); + if (clusters.length > 0) { + return Promise.resolve(clusters[0].name); + } + return Promise.reject("no clusters found in configuration"); + } +} \ No newline at end of file diff --git a/plugins/terraform/src/api/index.ts b/plugins/terraform/src/api/index.ts new file mode 100644 index 0000000..0c244ab --- /dev/null +++ b/plugins/terraform/src/api/index.ts @@ -0,0 +1,34 @@ +import { createApiRef } from "@backstage/core-plugin-api"; + +export { Terraform } from "./Terraform"; + +export const TerraformApiRef = createApiRef({ + id: "plugin.terraform", +}); +export interface TerraformApi { + + getSecret( + clusterName: string | undefined, + namespace: string | undefined, + secretName: string, + ): Promise; + + deflate( + tfState:string + ): Promise; + + s3GetFileList( + Bucket:string, + Prefix:string + ): Promise; + + localGetFileList( + FileLocation:string + ): Promise; + + getTFStateFile( + Bucket:string, + file:any + ): Promise; + +} diff --git a/plugins/terraform/src/components/MainPageComponent/MainPageComponent.test.tsx b/plugins/terraform/src/components/MainPageComponent/MainPageComponent.test.tsx new file mode 100644 index 0000000..d35602f --- /dev/null +++ b/plugins/terraform/src/components/MainPageComponent/MainPageComponent.test.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import { MainPageComponent } from './MainPageComponent'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { screen } from '@testing-library/react'; +import { + setupRequestMockHandlers, + renderInTestApp, +} from "@backstage/test-utils"; + +describe('MainPageComponent', () => { + const server = setupServer(); + // Enable sane handlers for network requests + setupRequestMockHandlers(server); + + // setup mock response + beforeEach(() => { + server.use( + rest.get('/*', (_, res, ctx) => res(ctx.status(200), ctx.json({}))), + ); + }); + + it('should render', async () => { + await renderInTestApp(); + expect(screen.getByText('Terraform')).toBeInTheDocument(); + }); +}); \ No newline at end of file diff --git a/plugins/terraform/src/components/MainPageComponent/MainPageComponent.tsx b/plugins/terraform/src/components/MainPageComponent/MainPageComponent.tsx new file mode 100644 index 0000000..8825902 --- /dev/null +++ b/plugins/terraform/src/components/MainPageComponent/MainPageComponent.tsx @@ -0,0 +1,12 @@ +import React from 'react'; + +// import { +// Header, +// Page, +// Content, +// } from '@backstage/core-components'; +import { MainPageFetchComponent } from '../MainPageFetchComponent'; + +export const MainPageComponent = () => ( + +); \ No newline at end of file diff --git a/plugins/terraform/src/components/MainPageComponent/index.ts b/plugins/terraform/src/components/MainPageComponent/index.ts new file mode 100644 index 0000000..4f98e9f --- /dev/null +++ b/plugins/terraform/src/components/MainPageComponent/index.ts @@ -0,0 +1 @@ +export { MainPageComponent } from './MainPageComponent'; \ No newline at end of file diff --git a/plugins/terraform/src/components/MainPageFetchComponent/MainPageFetchComponent.test.tsx b/plugins/terraform/src/components/MainPageFetchComponent/MainPageFetchComponent.test.tsx new file mode 100644 index 0000000..0d33112 --- /dev/null +++ b/plugins/terraform/src/components/MainPageFetchComponent/MainPageFetchComponent.test.tsx @@ -0,0 +1,74 @@ +import React, {Dispatch, SetStateAction} from 'react'; +import { screen } from '@testing-library/react'; +import { OutputTable, ResourceTable } from './MainPageFetchComponent'; +import { + renderInTestApp, +} from "@backstage/test-utils"; + +describe('MainPageFetchComponent', () => { + it('renders the outputs table', async () => { + let fakeOutputs = [{ + "type": "string", + "value": "Hello World!" + }]; + + renderInTestApp(); + + // Wait for the table to render + const table = await screen.findByRole('table'); + // Assert that the table contains the expected output data + expect(table).toBeInTheDocument(); + expect(screen.getByText('Hello World!')).toBeInTheDocument(); + }); + + it('renders the resources table', async () => { + let fakeResources = [ + { + "module": "module.eks", + "mode": "managed", + "type": "aws_cloudwatch_log_group", + "name": "this", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "index_key": 0, + "schema_version": 0, + "attributes": { + "arn": "arn:aws:logs:us-west-2:833162080385:log-group:/aws/eks/emr-eks-fargate/cluster", + "id": "/aws/eks/emr-eks-fargate/cluster", + "kms_key_id": "", + "name": "/aws/eks/emr-eks-fargate/cluster", + "name_prefix": "", + "retention_in_days": 90, + "skip_destroy": false, + "tags": { + "Blueprint": "emr-eks-fargate", + "GithubRepo": "github.com/awslabs/data-on-eks", + "Name": "/aws/eks/emr-eks-fargate/cluster" + }, + "tags_all": { + "Blueprint": "emr-eks-fargate", + "GithubRepo": "github.com/awslabs/data-on-eks", + "Name": "/aws/eks/emr-eks-fargate/cluster" + } + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "create_before_destroy": true + } + ] + } + ]; + + const noop: Dispatch> = () => {}; + renderInTestApp( + + ); + + // Wait for the table to render + const table = await screen.getAllByRole('table'); + // Assert that the table contains the expected resource data + expect(table[0]).toBeInTheDocument(); + expect(screen.getByText('/aws/eks/emr-eks-fargate/cluster')).toBeInTheDocument(); + }); +}); \ No newline at end of file diff --git a/plugins/terraform/src/components/MainPageFetchComponent/MainPageFetchComponent.tsx b/plugins/terraform/src/components/MainPageFetchComponent/MainPageFetchComponent.tsx new file mode 100644 index 0000000..caa6647 --- /dev/null +++ b/plugins/terraform/src/components/MainPageFetchComponent/MainPageFetchComponent.tsx @@ -0,0 +1,341 @@ +import React, { useState, useEffect, Dispatch, SetStateAction } from 'react'; +import { + Table, + TableColumn, + Progress, + ResponseErrorPanel, + Link, + StructuredMetadataTable, + InfoCard, + DependencyGraph, + DependencyGraphTypes, +} from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; +import { useEntity } from '@backstage/plugin-catalog-react'; +import { Grid } from '@material-ui/core'; +import Drawer from '@material-ui/core/Drawer'; + +import { ResponseError } from '@backstage/errors'; +import { + TERRAFORM_S3_BUCKET, + TERRAFORM_S3_PREFIX, + TERRAFORM_LOCAL_PATH, + TERRAFORM_SECRET_NAME, + TERRAFORM_SECRET_NAMESPACE, +} from '../../consts' +import { TerraformApiRef } from '../../api'; + +export const OutputTable = ({ outputs }:any) => { + let data:any = {}; + for(let i in outputs) { + data[Number(i)+1] = outputs[i].value; + } + + return ( + <> + + + + + ); +} + +export const ResourceTable = ({ resources,setResourceDetail }:{resources:any, setResourceDetail:Dispatch>}) => { + const columns: TableColumn[] = [ + { title: 'Name', + render: (row: any) => { + const resourceDetailsObj = { + name: row.name, + displayName: row.displayName, + } + return ( + <> + { + e.preventDefault(); + setResourceDetail(resourceDetailsObj); + }} + >{row.displayName} + + ); + }, + }, + { title: 'Type', field: 'type' }, + ]; + + return ( + <> + + + ); +}; + +export const TerraformTables = ({ resources,outputs,setResourceDetail }: {resources: any[], outputs: any[], setResourceDetail:Dispatch>}) => { + return ( + <> + + + + + + + + + + ); +}; + +export const ResourceDetailComponent = ({resourceDetail,allResources,setResourceDetail}:{resourceDetail:any,allResources:any,setResourceDetail:Dispatch>}) => { + const [details,setDetails] = useState({}); + const [attributes,setAttributes] = useState({}); + const [dependNodes,setDependNodes] = useState([]); + const [dependEdges,setDependEdges] = useState([]); + + const graphStyle = { border: '1px solid grey' }; + + useEffect(()=>{ + const resourceObj = allResources[resourceDetail.name]; + + let newDetails:any = {}; + for(let i in resourceObj) { + if(!Array.isArray(resourceObj[i])) { + newDetails[i] = resourceObj[i]; + } + } + setDetails(newDetails); + + const newAttributes:any = {}; + for(let i in resourceObj?.instances[0]?.attributes) { + let attribute:any = resourceObj?.instances[0]?.attributes[i]; + if(Array.isArray(attribute) || typeof attribute === "object") { + newAttributes[i] = JSON.stringify(attribute); + } else if (!attribute) { + newAttributes[i] = ""; + } else { + newAttributes[i] = attribute; + } + } + setAttributes(newAttributes); + + let newDependNodes:any[] = [{'id': resourceDetail.displayName, 'name': resourceDetail.name}]; + let newDependEdges:any[] = []; + for(let i in resourceObj?.instances[0]?.dependencies) { + newDependNodes.push({ + 'id': resourceObj.instances[0]?.dependencies[i].displayName, 'name': resourceObj.instances[0]?.dependencies[i].name + }); + newDependEdges.push({ + 'from': resourceObj.instances[0]?.dependencies[i].displayName, 'to': resourceDetail.displayName + }); + } + setDependNodes(newDependNodes); + setDependEdges(newDependEdges); + },[resourceDetail,allResources]); + + + return ( +
+ + { } + +   + + { } + + + { + const height = 100; + const width = (props.node.id?.length*12); + const resourceDetailsObj = { + name: props.node.name, + displayName: props.node.id, + }; + return ( + + + + { + e.preventDefault(); + setResourceDetail(resourceDetailsObj); + }} + >{props.node.id} + + + ); + } + } + /> + +
+ ); +} + +export const MainPageFetchComponent = () => { + const apiClient = useApi(TerraformApiRef); + const { entity } = useEntity(); + + const [resourceDetail,setResourceDetail] = useState({}); + const [allResources,setAllResources] = useState({}); + const [resources, setResources] = useState([]); + const [outputs, setOutputs] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(); + + function parseResources(resourcesArr:any[]) { + let resourcesObj:any = {}; + let nameIndex:any = {}; + let data:any[] = resourcesArr.filter((resource:any)=> { + if(resource.mode === "managed") { + return true; + } else { + return false; + } + }).map((resource:any)=> { + let resourceName:string = ""; + if(resource.module) { + resourceName += resource.module.split("[")[0] + "."; + } else { + resourceName += resource.mode + "." + } + resourceName += resource.type + "." + resource.name; + resourcesObj[resourceName] = resource; + let displayName = resourceName; + if(resource.instances[0].attributes.name) { + displayName = resource.instances[0].attributes.name; + } else if(resource.instances[0].attributes.id) { + displayName = resource.instances[0].attributes.id; + } + nameIndex[resourceName] = displayName; + return { + name: resourceName, + displayName: displayName, + type: resource.type, + } + }); + + for(let i in resourcesObj) { + let newDependenciesObj:any[] = []; + if(resourcesObj[i].instances[0].dependencies) { + for(let j in resourcesObj[i].instances[0].dependencies) { + if(nameIndex[resourcesObj[i].instances[0].dependencies[j]]) { + newDependenciesObj.push({name: resourcesObj[i].instances[0].dependencies[j], displayName: nameIndex[resourcesObj[i].instances[0].dependencies[j]]}); + } + } + resourcesObj[i].instances[0].dependencies = newDependenciesObj; + } + } + + setResources(data); + setAllResources(resourcesObj); + } + + useEffect(() => { + const getStateFiles = async() => { + let resourcesArr:any[] = []; + let outputsArr:any[] = []; + let responseJSON:any = {}; + + if(SecretName) { + responseJSON = await apiClient.getSecret(undefined, SecretNamespace, SecretName); + } else if(Bucket) { + responseJSON = await apiClient.s3GetFileList(Bucket,Prefix); + } else if(FileLocation) { + responseJSON = await apiClient.localGetFileList(FileLocation); + } + + for(let i in responseJSON) { + let tfStateJSON:any = {}; + let file = responseJSON[i]; + if(file.TFStateContents) { + tfStateJSON = await apiClient.deflate(file.TFStateContents); + } else if(file.Key && !file.Key?.endsWith("/")) { + tfStateJSON = await apiClient.getTFStateFile(Bucket,file); + } + + if(tfStateJSON.outputs) { + for(let i in tfStateJSON.outputs) { + outputsArr.push(tfStateJSON.outputs[i]); + } + } + if(tfStateJSON.resources) { + for(let i in tfStateJSON.resources) { + resourcesArr.push(tfStateJSON.resources[i]); + } + } + } + + parseResources(resourcesArr); + setOutputs(outputsArr); + setLoading(false); + }; + + let Bucket = ""; + let Prefix = ""; + let FileLocation = ""; + let SecretName = ""; + let SecretNamespace = ""; + + if(entity.metadata.annotations?.[TERRAFORM_SECRET_NAME]) { + SecretName = entity.metadata.annotations?.[TERRAFORM_SECRET_NAME] || ""; + } + + if(entity.metadata.annotations?.[TERRAFORM_SECRET_NAMESPACE]) { + SecretNamespace = entity.metadata.annotations?.[TERRAFORM_SECRET_NAMESPACE] || ""; + } + + if(!SecretName) { + if(entity.metadata.annotations?.[TERRAFORM_S3_BUCKET]) { + Bucket = entity.metadata.annotations?.[TERRAFORM_S3_BUCKET] || ""; + } + + if(entity.metadata.annotations?.[TERRAFORM_S3_PREFIX]) { + Prefix = entity.metadata.annotations?.[TERRAFORM_S3_PREFIX] || ""; + } + + if(!Bucket) { + FileLocation = entity.metadata.annotations?.[TERRAFORM_LOCAL_PATH] || ""; + } + } + + getStateFiles(); + }, []); + + if (loading) { + return ; + } else if (error) { + return ; + } + + return <> + + setResourceDetail({})} + > + + + ; +}; \ No newline at end of file diff --git a/plugins/terraform/src/components/MainPageFetchComponent/index.ts b/plugins/terraform/src/components/MainPageFetchComponent/index.ts new file mode 100644 index 0000000..83fefad --- /dev/null +++ b/plugins/terraform/src/components/MainPageFetchComponent/index.ts @@ -0,0 +1 @@ +export { MainPageFetchComponent } from './MainPageFetchComponent'; \ No newline at end of file diff --git a/plugins/terraform/src/components/RootComponent/RootComponent.tsx b/plugins/terraform/src/components/RootComponent/RootComponent.tsx new file mode 100644 index 0000000..4ba7902 --- /dev/null +++ b/plugins/terraform/src/components/RootComponent/RootComponent.tsx @@ -0,0 +1,12 @@ +import React from 'react'; +import { Routes, Route } from "react-router-dom"; +import { MainPageComponent } from "../MainPageComponent"; + +export const RootComponent = () => { + return ( + + {/* myPlugin.routes.root will take the user to this page */} + } /> + + ); +}; \ No newline at end of file diff --git a/plugins/terraform/src/components/RootComponent/index.ts b/plugins/terraform/src/components/RootComponent/index.ts new file mode 100644 index 0000000..f123790 --- /dev/null +++ b/plugins/terraform/src/components/RootComponent/index.ts @@ -0,0 +1 @@ +export { RootComponent } from './RootComponent'; \ No newline at end of file diff --git a/plugins/terraform/src/consts.ts b/plugins/terraform/src/consts.ts new file mode 100644 index 0000000..54556ae --- /dev/null +++ b/plugins/terraform/src/consts.ts @@ -0,0 +1,5 @@ +export const TERRAFORM_S3_BUCKET = "terraform.cnoe.io/s3-bucket" +export const TERRAFORM_S3_PREFIX = "terraform.cnoe.io/s3-prefix" +export const TERRAFORM_LOCAL_PATH = "terraform.cnoe.io/local-filepath" +export const TERRAFORM_SECRET_NAME = "terraform.cnoe.io/secret-name" +export const TERRAFORM_SECRET_NAMESPACE = "terraform.cnoe.io/secret-namespace" \ No newline at end of file diff --git a/plugins/terraform/src/index.ts b/plugins/terraform/src/index.ts new file mode 100644 index 0000000..8f2ccf2 --- /dev/null +++ b/plugins/terraform/src/index.ts @@ -0,0 +1 @@ +export {isTerraformAvailable, terraformPlugin, TerraformPluginPage} from './plugin'; \ No newline at end of file diff --git a/plugins/terraform/src/plugin.test.ts b/plugins/terraform/src/plugin.test.ts new file mode 100644 index 0000000..9f09638 --- /dev/null +++ b/plugins/terraform/src/plugin.test.ts @@ -0,0 +1,7 @@ +import { terraformPlugin } from './plugin'; + +describe('terraform', () => { + it('should export plugin', () => { + expect(terraformPlugin).toBeDefined(); + }); +}); diff --git a/plugins/terraform/src/plugin.ts b/plugins/terraform/src/plugin.ts new file mode 100644 index 0000000..0f3e194 --- /dev/null +++ b/plugins/terraform/src/plugin.ts @@ -0,0 +1,50 @@ +import { createPlugin, createRoutableExtension, createApiFactory, identityApiRef, configApiRef } from '@backstage/core-plugin-api'; +import { rootRouteRef } from './routes'; +import {Terraform, TerraformApiRef} from "./api"; +import {kubernetesApiRef} from "@backstage/plugin-kubernetes"; + +import { + TERRAFORM_S3_BUCKET, + TERRAFORM_S3_PREFIX, + TERRAFORM_LOCAL_PATH, + TERRAFORM_SECRET_NAME, + TERRAFORM_SECRET_NAMESPACE, +} from './consts'; + +import {Entity} from '@backstage/catalog-model'; + +export const isTerraformAvailable = (entity: Entity) => + ((Boolean(entity.metadata.annotations?.[TERRAFORM_S3_BUCKET]) && + Boolean(entity.metadata.annotations?.[TERRAFORM_S3_PREFIX])) || + Boolean(entity.metadata.annotations?.[TERRAFORM_LOCAL_PATH]) || + (Boolean(entity.metadata.annotations?.[TERRAFORM_SECRET_NAME]) && + Boolean(entity.metadata.annotations?.[TERRAFORM_SECRET_NAMESPACE])) + ); + +export const terraformPlugin = createPlugin({ + id: 'terraform', + routes: { + root: rootRouteRef, + }, + apis: [ + createApiFactory({ + api: TerraformApiRef, + deps: { + kubernetesApi: kubernetesApiRef, + identityApi: identityApiRef, + configApi: configApiRef, + }, + factory: ({kubernetesApi, identityApi, configApi}) => + new Terraform(kubernetesApi, identityApi, configApi), + }), + ], +}); + +export const TerraformPluginPage = terraformPlugin.provide( + createRoutableExtension({ + name: 'TerraformPluginPage', + component: () => + import('./components/RootComponent').then(m => m.RootComponent), + mountPoint: rootRouteRef, + }), +); diff --git a/plugins/terraform/src/routes.ts b/plugins/terraform/src/routes.ts new file mode 100644 index 0000000..ff0c2de --- /dev/null +++ b/plugins/terraform/src/routes.ts @@ -0,0 +1,5 @@ +import { createRouteRef } from '@backstage/core-plugin-api'; + +export const rootRouteRef = createRouteRef({ + id: 'terraform', +}); diff --git a/plugins/terraform/src/setupTests.ts b/plugins/terraform/src/setupTests.ts new file mode 100644 index 0000000..7b0828b --- /dev/null +++ b/plugins/terraform/src/setupTests.ts @@ -0,0 +1 @@ +import '@testing-library/jest-dom'; diff --git a/plugins/terraformv2-backend/.eslintrc.js b/plugins/terraformv2-backend/.eslintrc.js new file mode 100644 index 0000000..e2a53a6 --- /dev/null +++ b/plugins/terraformv2-backend/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/terraformv2-backend/README.md b/plugins/terraformv2-backend/README.md new file mode 100644 index 0000000..06f63a0 --- /dev/null +++ b/plugins/terraformv2-backend/README.md @@ -0,0 +1,14 @@ +# terraformv2 + +Welcome to the terraformv2 backend plugin! + +_This plugin was created through the Backstage CLI_ + +## Getting started + +Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn +start` in the root directory, and then navigating to [/terraformv2Plugin/health](http://localhost:7007/api/terraformv2Plugin/health). + +You can also serve the plugin in isolation by running `yarn start` in the plugin directory. +This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. +It is only meant for local development, and the setup for it can be found inside the [/dev](/dev) directory. diff --git a/plugins/terraformv2-backend/dev/index.ts b/plugins/terraformv2-backend/dev/index.ts new file mode 100644 index 0000000..9d74c82 --- /dev/null +++ b/plugins/terraformv2-backend/dev/index.ts @@ -0,0 +1,9 @@ +import { createBackend } from '@backstage/backend-defaults'; + +const backend = createBackend(); + +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-guest-provider')); +backend.add(import('../src')); + +backend.start(); diff --git a/plugins/terraformv2-backend/package.json b/plugins/terraformv2-backend/package.json new file mode 100644 index 0000000..795b58e --- /dev/null +++ b/plugins/terraformv2-backend/package.json @@ -0,0 +1,49 @@ +{ + "name": "@internal/backstage-plugin-terraformv2-backend", + "version": "0.1.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "private": true, + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts" + }, + "backstage": { + "role": "backend-plugin" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/backend-common": "^0.22.0", + "@backstage/backend-defaults": "^0.2.18", + "@backstage/backend-plugin-api": "^0.6.18", + "@backstage/config": "^1.2.0", + "@types/express": "*", + "express": "^4.17.1", + "express-promise-router": "^4.1.0", + "node-fetch": "^2.6.7", + "pako": "^2.1.0", + "winston": "^3.2.1", + "yn": "^4.0.0" + }, + "devDependencies": { + "@backstage/cli": "^0.26.4", + "@backstage/plugin-auth-backend": "^0.22.5", + "@backstage/plugin-auth-backend-module-guest-provider": "^0.1.4", + "@types/supertest": "^2.0.12", + "msw": "^1.0.0", + "supertest": "^6.2.4" + }, + "files": [ + "dist" + ] +} diff --git a/plugins/terraformv2-backend/src/index.ts b/plugins/terraformv2-backend/src/index.ts new file mode 100644 index 0000000..a44422a --- /dev/null +++ b/plugins/terraformv2-backend/src/index.ts @@ -0,0 +1,2 @@ +export * from './service/router'; +export { terraformv2Plugin as default } from './plugin'; diff --git a/plugins/terraformv2-backend/src/plugin.ts b/plugins/terraformv2-backend/src/plugin.ts new file mode 100644 index 0000000..a47222a --- /dev/null +++ b/plugins/terraformv2-backend/src/plugin.ts @@ -0,0 +1,38 @@ +import { + coreServices, + createBackendPlugin, +} from '@backstage/backend-plugin-api'; +import { createRouter } from './service/router'; + +/** + * terraformv2Plugin backend plugin + * + * @public + */ +export const terraformv2Plugin = createBackendPlugin({ + pluginId: 'terraformv2', + register(env) { + env.registerInit({ + deps: { + httpRouter: coreServices.httpRouter, + logger: coreServices.logger, + config: coreServices.rootConfig, + }, + async init({ + httpRouter, + logger, + config, + }) { + httpRouter.addAuthPolicy({ + path: '/health', + allow: 'unauthenticated', + }); + + httpRouter.use(await createRouter({ + config, + logger, + })); + }, + }); + }, +}); diff --git a/plugins/terraformv2-backend/src/service/router.test.ts b/plugins/terraformv2-backend/src/service/router.test.ts new file mode 100644 index 0000000..4f50797 --- /dev/null +++ b/plugins/terraformv2-backend/src/service/router.test.ts @@ -0,0 +1,29 @@ +import { getVoidLogger } from '@backstage/backend-common'; +import express from 'express'; +import request from 'supertest'; + +import { createRouter } from './router'; + +describe('createRouter', () => { + let app: express.Express; + + beforeAll(async () => { + const router = await createRouter({ + logger: getVoidLogger(), + }); + app = express().use(router); + }); + + beforeEach(() => { + jest.resetAllMocks(); + }); + + describe('GET /health', () => { + it('returns ok', async () => { + const response = await request(app).get('/health'); + + expect(response.status).toEqual(200); + expect(response.body).toEqual({ status: 'ok' }); + }); + }); +}); diff --git a/plugins/terraformv2-backend/src/service/router.ts b/plugins/terraformv2-backend/src/service/router.ts new file mode 100644 index 0000000..db06e5a --- /dev/null +++ b/plugins/terraformv2-backend/src/service/router.ts @@ -0,0 +1,126 @@ +import { errorHandler } from '@backstage/backend-common'; +import { coreServices } from '@backstage/backend-plugin-api'; +import express from 'express'; +import Router from 'express-promise-router'; +import {DefaultAwsCredentialsManager} from '@backstage/integration-aws-node'; +import {S3Client, ListObjectsV2Command, GetObjectCommand} from "@aws-sdk/client-s3"; +import * as fs from 'fs'; +const {inflate} = require('pako'); + +type ListObjectsInput = { + Bucket: string, + Prefix: string, + ContinuationToken?: string, +}; + +export interface RouterOptions { + logger: coreServices.logger; + config: coreServices.rootConfig, +} + +export async function createRouter( + options: RouterOptions, +): Promise { + const {logger, config} = options; + const awsCredentialsManager = DefaultAwsCredentialsManager.fromConfig(config); + const credProvider = await awsCredentialsManager.getCredentialProvider({}); + const client = new S3Client({ + credentialDefaultProvider: () => credProvider.sdkCredentialProvider, + }); + + const router = Router(); + router.use(express.json()); + + router.get('/health', (_, response) => { + logger.info('PONG!'); + response.json({ status: 'ok' }); + }); + + router.post('/deflate', async (req, res) => { + let jsonData:any = {}; + + if(req.body.tfState) { + var bytes = []; + const inputString = atob(req.body.tfState); + for (var i = 0; i < inputString.length; i++) { + var abyte = inputString.charCodeAt(i) & 0xff; + bytes.push(abyte); + } + const binData = new Uint8Array(bytes); + const inflated = inflate(binData,{to:'string'}); + jsonData = JSON.parse(inflated); + } + + res.json(jsonData); + }); + + router.post('/getFileList', async (req, res) => { + let responseObject: any = []; + let token: string | undefined = "1"; + while (token) { + let input: ListObjectsInput = { + Bucket: req.body.Bucket, + Prefix: req.body.Key, + } + if (token != "1" && token) { + input.ContinuationToken = token; + } + const command = new ListObjectsV2Command(input); + const commandResponse = await client.send(command); + responseObject = responseObject.concat(commandResponse.Contents); + logger.debug(JSON.stringify(commandResponse)); + token = commandResponse.NextContinuationToken; + } + res.json(responseObject); + }); + + router.post('/getLocalFileList', async (req, res) => { + let responseObject: any[] = []; + + try { + const fsstat = fs.lstatSync(req.body.FileLocation); + if (fsstat.isDirectory()) { + const filenames = fs.readdirSync(req.body.FileLocation); + for (let i in filenames) { + responseObject.push({ + Key: req.body.FileLocation + "/" + filenames[i] + }); + } + } else if (fsstat.isFile()) { + responseObject.push({ + Key: req.body.FileLocation + }); + } + } catch (e) { + logger.error(e) + } + + res.json(responseObject); + }); + + router.post('/getTFStateFile', async (req, res) => { + if (req.body.Bucket) { + const command = new GetObjectCommand({ + Bucket: req.body.Bucket, + Key: req.body.Key, + }); + const commandResponse = await client.send(command); + const str: any = await commandResponse.Body?.transformToString(); + res.json(JSON.parse(str)); + + } else { + let jsonData: any = {}; + try { + const data = fs.readFileSync(req.body.Key, {encoding: 'utf8', flag: 'r'}); + jsonData = JSON.parse(data); + } catch (e) { + logger.error(e); + } + + res.json(jsonData); + } + }); + + router.use(errorHandler()); + return router; +} diff --git a/plugins/terraformv2-backend/src/setupTests.ts b/plugins/terraformv2-backend/src/setupTests.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/plugins/terraformv2-backend/src/setupTests.ts @@ -0,0 +1 @@ +export {}; diff --git a/yarn.lock b/yarn.lock index 60c1d55..4e1ff15 100644 --- a/yarn.lock +++ b/yarn.lock @@ -421,6 +421,70 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" +"@aws-sdk/client-s3@^3.591.0": + version "3.591.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.591.0.tgz#2e410d33d80d12073b162bc3749cb98ea4af45df" + integrity sha512-YmMQpOdBak+0OZh0LfbK+3u1MA0csAok9yDP5/tD1am7hCg1+zPimHSmpjLBHoKELVpsW5QRuBdCi0dn95uxmg== + dependencies: + "@aws-crypto/sha1-browser" "3.0.0" + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sso-oidc" "3.590.0" + "@aws-sdk/client-sts" "3.590.0" + "@aws-sdk/core" "3.588.0" + "@aws-sdk/credential-provider-node" "3.590.0" + "@aws-sdk/middleware-bucket-endpoint" "3.587.0" + "@aws-sdk/middleware-expect-continue" "3.577.0" + "@aws-sdk/middleware-flexible-checksums" "3.587.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-location-constraint" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-sdk-s3" "3.587.0" + "@aws-sdk/middleware-signing" "3.587.0" + "@aws-sdk/middleware-ssec" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.587.0" + "@aws-sdk/region-config-resolver" "3.587.0" + "@aws-sdk/signature-v4-multi-region" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.587.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.587.0" + "@aws-sdk/xml-builder" "3.575.0" + "@smithy/config-resolver" "^3.0.1" + "@smithy/core" "^2.1.1" + "@smithy/eventstream-serde-browser" "^3.0.0" + "@smithy/eventstream-serde-config-resolver" "^3.0.0" + "@smithy/eventstream-serde-node" "^3.0.0" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/hash-blob-browser" "^3.0.0" + "@smithy/hash-node" "^3.0.0" + "@smithy/hash-stream-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/md5-js" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-retry" "^3.0.3" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.3" + "@smithy/util-defaults-mode-node" "^3.0.3" + "@smithy/util-endpoints" "^2.0.1" + "@smithy/util-retry" "^3.0.0" + "@smithy/util-stream" "^3.0.1" + "@smithy/util-utf8" "^3.0.0" + "@smithy/util-waiter" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/client-sso-oidc@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.502.0.tgz#f3d151a9185baedcb7f511a1149b65cb2973df30" @@ -466,6 +530,52 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/client-sso-oidc@3.590.0": + version "3.590.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.590.0.tgz#9125be2b46e970f8dd8089f2409943122a478c92" + integrity sha512-3yCLPjq6WFfDpdUJKk/gSz4eAPDTjVknXaveMPi2QoVBCshneOnJsV16uNKlpVF1frTHrrDRfKYmbaVh6nFBvQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.590.0" + "@aws-sdk/core" "3.588.0" + "@aws-sdk/credential-provider-node" "3.590.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.587.0" + "@aws-sdk/region-config-resolver" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.587.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.587.0" + "@smithy/config-resolver" "^3.0.1" + "@smithy/core" "^2.1.1" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-retry" "^3.0.3" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.3" + "@smithy/util-defaults-mode-node" "^3.0.3" + "@smithy/util-endpoints" "^2.0.1" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/client-sso-oidc@3.596.0": version "3.596.0" resolved "https://registry.npmmirror.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.596.0.tgz#9d75619043e5f0e3d985d800c3df06d9a8a3bfeb" @@ -555,6 +665,50 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/client-sso@3.590.0": + version "3.590.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.590.0.tgz#d2950bd4358867153680f4c9f1646602e6fe0349" + integrity sha512-6xbC6oQVJKBRTyXyR3C15ksUsPOyW4p+uCj7dlKYWGJvh4vGTV8KhZKS53oPG8t4f1+OMJWjr5wKuXRoaFsmhQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.588.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.587.0" + "@aws-sdk/region-config-resolver" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.587.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.587.0" + "@smithy/config-resolver" "^3.0.1" + "@smithy/core" "^2.1.1" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-retry" "^3.0.3" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.3" + "@smithy/util-defaults-mode-node" "^3.0.3" + "@smithy/util-endpoints" "^2.0.1" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/client-sso@3.592.0": version "3.592.0" resolved "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.592.0.tgz#90462e744998990079c28a083553090af9ac2902" @@ -644,6 +798,52 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" +"@aws-sdk/client-sts@3.590.0": + version "3.590.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.590.0.tgz#d75c59cf0046274651183f05dac19aedd05c76b1" + integrity sha512-f4R1v1LSn4uLYZ5qj4DyL6gp7PXXzJeJsm2seheiJX+53LSF5L7XSDnQVtX1p9Tevv0hp2YUWUTg6QYwIVSuGg== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sso-oidc" "3.590.0" + "@aws-sdk/core" "3.588.0" + "@aws-sdk/credential-provider-node" "3.590.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.587.0" + "@aws-sdk/region-config-resolver" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.587.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.587.0" + "@smithy/config-resolver" "^3.0.1" + "@smithy/core" "^2.1.1" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.1" + "@smithy/middleware-retry" "^3.0.3" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.3" + "@smithy/util-defaults-mode-node" "^3.0.3" + "@smithy/util-endpoints" "^2.0.1" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/client-sts@3.596.0": version "3.596.0" resolved "https://registry.npmmirror.com/@aws-sdk/client-sts/-/client-sts-3.596.0.tgz#236ed4b898265c737f860060adab422ea8ec6383" @@ -702,6 +902,19 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/core@3.588.0": + version "3.588.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.588.0.tgz#44c6659372bdaa61a7c8872ff5af39e0fa71e812" + integrity sha512-O1c2+9ce46Z+iiid+W3iC1IvPbfIo5ev9CBi54GdNB9SaI8/3+f8MJcux0D6c9toCF0ArMersN/gp8ek57e9uQ== + dependencies: + "@smithy/core" "^2.1.1" + "@smithy/protocol-http" "^4.0.0" + "@smithy/signature-v4" "^3.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + fast-xml-parser "4.2.5" + tslib "^2.6.2" + "@aws-sdk/core@3.592.0": version "3.592.0" resolved "https://registry.npmmirror.com/@aws-sdk/core/-/core-3.592.0.tgz#d903a3993f8ba6836480314c2a8af8b7857bb943" @@ -761,6 +974,21 @@ "@smithy/util-stream" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-http@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.587.0.tgz#dc23c6d6708bc67baea54bfab0f256c5fe4df023" + integrity sha512-Su1SRWVRCuR1e32oxX3C1V4c5hpPN20WYcRfdcr2wXwHqSvys5DrnmuCC+JoEnS/zt3adUJhPliTqpfKgSdMrA== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/fetch-http-handler" "^3.0.1" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/util-stream" "^3.0.1" + tslib "^2.6.2" + "@aws-sdk/credential-provider-http@3.596.0": version "3.596.0" resolved "https://registry.npmmirror.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.596.0.tgz#ad81565e37f84c860a7a5f82ff256a962397816c" @@ -793,6 +1021,23 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-ini@3.590.0": + version "3.590.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.590.0.tgz#b49f9f76503c56357fee0c9f0d48e7e0e861061d" + integrity sha512-Y5cFciAK38VIvRgZeND7HvFNR32thGtQb8Xop6cMn33FC78uwcRIu9Hc9699XTclCZqz4+Xl1WU+dZ+rnFn2AA== + dependencies: + "@aws-sdk/credential-provider-env" "3.587.0" + "@aws-sdk/credential-provider-http" "3.587.0" + "@aws-sdk/credential-provider-process" "3.587.0" + "@aws-sdk/credential-provider-sso" "3.590.0" + "@aws-sdk/credential-provider-web-identity" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@smithy/credential-provider-imds" "^3.1.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/shared-ini-file-loader" "^3.1.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-ini@3.596.0": version "3.596.0" resolved "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.596.0.tgz#2e5155b52590dbc768a2775e0b5266287a00d8ca" @@ -827,6 +1072,24 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-node@3.590.0": + version "3.590.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.590.0.tgz#e745d5f5cde0512e9f9ea95b687708948b57a674" + integrity sha512-Ky38mNFoXobGrDQ11P3dU1e+q1nRJ7eZl8l15KUpvZCe/hOudbxQi/epQrCazD/gRYV2fTyczdLlZzB5ZZ8DhQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.587.0" + "@aws-sdk/credential-provider-http" "3.587.0" + "@aws-sdk/credential-provider-ini" "3.590.0" + "@aws-sdk/credential-provider-process" "3.587.0" + "@aws-sdk/credential-provider-sso" "3.590.0" + "@aws-sdk/credential-provider-web-identity" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@smithy/credential-provider-imds" "^3.1.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/shared-ini-file-loader" "^3.1.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-node@3.596.0": version "3.596.0" resolved "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.596.0.tgz#d70bce8de4f1849558215117d73f7433bfdcdc24" @@ -880,6 +1143,19 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/credential-provider-sso@3.590.0": + version "3.590.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.590.0.tgz#1a90cbec9a48bbc07920b3f5a6d04bba891664ed" + integrity sha512-v+0j/I+je9okfwXsgmLppmwIE+TuMp5WqLz7r7PHz9KjzLyKaKTDvfllFD+8oPpBqnmOWiJ9qTGPkrfhB7a/fQ== + dependencies: + "@aws-sdk/client-sso" "3.590.0" + "@aws-sdk/token-providers" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/shared-ini-file-loader" "^3.1.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-sso@3.592.0": version "3.592.0" resolved "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.592.0.tgz#340649b4f5b4fbcb816f248089979d7d38ce96d3" @@ -962,6 +1238,19 @@ "@smithy/util-config-provider" "^2.2.1" tslib "^2.5.0" +"@aws-sdk/middleware-bucket-endpoint@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.587.0.tgz#def5edbadf53bdfe765aa9acf12f119eb208b22f" + integrity sha512-HkFXLPl8pr6BH/Q0JpOESqEKL0ZK3sk7aSZ1S6GE4RXET7H5R94THULXqQFZzD48gZcyFooO/yNKZTqrZFaWKg== + dependencies: + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-arn-parser" "3.568.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" + "@smithy/util-config-provider" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/middleware-expect-continue@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.502.0.tgz#fd265571e1f3a4855714fda34252de751fb054dd" @@ -972,6 +1261,16 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/middleware-expect-continue@3.577.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.577.0.tgz#47add47f17873a6044cb140f17033cb6e1d02744" + integrity sha512-6dPp8Tv4F0of4un5IAyG6q++GrRrNQQ4P2NAMB1W0VO4JoEu1C8GievbbDLi88TFIFmtKpnHB0ODCzwnoe8JsA== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/middleware-flexible-checksums@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.502.0.tgz#e4fa059f3c4603bd815f16d69e1c4277c4c4830a" @@ -986,6 +1285,20 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/middleware-flexible-checksums@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.587.0.tgz#74afe7bd3088adf05b2ed843ad41386e793e0397" + integrity sha512-URMwp/budDvKhIvZ4a6zIBfFTun/iDlPWXqsGKYjEtHt8jz27OSjCZtDtIeqW4WTBdKL8KZgQcl+DdaE5M1qiQ== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-crypto/crc32c" "3.0.0" + "@aws-sdk/types" "3.577.0" + "@smithy/is-array-buffer" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/middleware-host-header@3.502.0": version "3.502.0" resolved "https://registry.npmmirror.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.502.0.tgz#2651fb3509990271c89eb50133fb17cb8ae435f6" @@ -1015,6 +1328,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/middleware-location-constraint@3.577.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.577.0.tgz#9372441a4ac5747b3176ac6378d92866a51de815" + integrity sha512-DKPTD2D2s+t2QUo/IXYtVa/6Un8GZ+phSTBkyBNx2kfZz4Kwavhl/JJzSqTV3GfCXkVdFu7CrjoX7BZ6qWeTUA== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/middleware-logger@3.502.0": version "3.502.0" resolved "https://registry.npmmirror.com/@aws-sdk/middleware-logger/-/middleware-logger-3.502.0.tgz#558cefdd233779f15687957f9f07497199b22d72" @@ -1068,6 +1390,21 @@ "@smithy/util-config-provider" "^2.2.1" tslib "^2.5.0" +"@aws-sdk/middleware-sdk-s3@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.587.0.tgz#720620ccdc2eb6ecab0f3a6adbd28fc27fdc70ce" + integrity sha512-vtXTGEiw1E9Fax4LmcU2Z208gbrC8ShrdsSLmGcRPpu5NPOGBFBSDG5sy5EDNClrFxIl/Le8coQnD0EDBtx+uQ== + dependencies: + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-arn-parser" "3.568.0" + "@smithy/node-config-provider" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/signature-v4" "^3.0.0" + "@smithy/smithy-client" "^3.1.1" + "@smithy/types" "^3.0.0" + "@smithy/util-config-provider" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/middleware-signing@3.502.0": version "3.502.0" resolved "https://registry.npmmirror.com/@aws-sdk/middleware-signing/-/middleware-signing-3.502.0.tgz#48b3503147eecb1a53a63633462de353668f635a" @@ -1081,6 +1418,19 @@ "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" +"@aws-sdk/middleware-signing@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.587.0.tgz#593c418c09c51c0bc55f23a7a6b0fda8502a8103" + integrity sha512-tiZaTDj4RvhXGRAlncFn7CSEfL3iNPO67WSaxAq+Ls5j1VgczPhu5262cWONNoMgth3nXR1hhLC4ITSl/a6AzA== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.1.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/signature-v4" "^3.0.0" + "@smithy/types" "^3.0.0" + "@smithy/util-middleware" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/middleware-ssec@3.502.0": version "3.502.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.502.0.tgz#0abdebedd98b284112c2eda36f707111a8a3cbd5" @@ -1090,6 +1440,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/middleware-ssec@3.577.0": + version "3.577.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.577.0.tgz#9fcd74e8bf2c277b4349c537cbeceba279166f32" + integrity sha512-i2BPJR+rp8xmRVIGc0h1kDRFcM2J9GnClqqpc+NLSjmYadlcg4mPklisz9HzwFVcRPJ5XcGf3U4BYs5G8+iTyg== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/middleware-user-agent@3.502.0": version "3.502.0" resolved "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.502.0.tgz#dd740f150d6f3110cf5b08fedf361d202f899c93" @@ -1148,6 +1507,18 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/signature-v4-multi-region@3.587.0": + version "3.587.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.587.0.tgz#f8bb6de9135f3fafab04b9220409cd0d0549b7d8" + integrity sha512-TR9+ZSjdXvXUz54ayHcCihhcvxI9W7102J1OK6MrLgBlPE7uRhAx42BR9L5lLJ86Xj3LuqPWf//o9d/zR9WVIg== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.587.0" + "@aws-sdk/types" "3.577.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/signature-v4" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@aws-sdk/signature-v4@^3.347.0": version "3.374.0" resolved "https://registry.npmmirror.com/@aws-sdk/signature-v4/-/signature-v4-3.374.0.tgz#bd727f4c392acb81bc667aa4cfceeba608250771" @@ -1202,6 +1573,13 @@ dependencies: tslib "^2.5.0" +"@aws-sdk/util-arn-parser@3.568.0": + version "3.568.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz#6a19a8c6bbaa520b6be1c278b2b8c17875b91527" + integrity sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w== + dependencies: + tslib "^2.6.2" + "@aws-sdk/util-endpoints@3.502.0": version "3.502.0" resolved "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.502.0.tgz#aee818c0c53dfedfd49599fc260cd880faea5e82" @@ -1284,6 +1662,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@aws-sdk/xml-builder@3.575.0": + version "3.575.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.575.0.tgz#233b2aae422dd789a078073032da1bc60317aa1d" + integrity sha512-cWgAwmbFYNCFzPwxL705+lWps0F3ZvOckufd2KKoEZUmtpVw9/txUXNrPySUXSmRTSRhoatIMABNfStWR043bQ== + dependencies: + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@azure/abort-controller@^1.0.0", "@azure/abort-controller@^1.1.0": version "1.1.0" resolved "https://registry.npmmirror.com/@azure/abort-controller/-/abort-controller-1.1.0.tgz#788ee78457a55af8a1ad342acb182383d2119249" @@ -1464,7 +1850,7 @@ "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/code-frame@^7.24.2": +"@babel/code-frame@^7.18.6", "@babel/code-frame@^7.24.2": version "7.24.7" resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== @@ -2526,6 +2912,55 @@ "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" +"@backstage/app-defaults@^1.5.6": + version "1.5.6" + resolved "https://registry.yarnpkg.com/@backstage/app-defaults/-/app-defaults-1.5.6.tgz#688333db87b3ce7d296440f42bf8be874580700b" + integrity sha512-BhwHTURsKK5CXgKh6kgdaw1/PgqjcMCkqsKpDsHVs9xwifpMSNjw1hbZzat0kK4TJGL3m9prewhQ3/UohiiWMQ== + dependencies: + "@backstage/core-app-api" "^1.12.6" + "@backstage/core-components" "^0.14.8" + "@backstage/core-plugin-api" "^1.9.3" + "@backstage/plugin-permission-react" "^0.4.23" + "@backstage/theme" "^0.5.6" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + +"@backstage/backend-app-api@^0.5.10": + version "0.5.14" + resolved "https://registry.yarnpkg.com/@backstage/backend-app-api/-/backend-app-api-0.5.14.tgz#a110bdbebc3b8b1b302b0726b7c92b2742fb5e3f" + integrity sha512-Sqd5WRkp5x0JxK0ms5shes+VXmJ/t9++Z88CR8N3oBtp3H0t+iKewxOlgHhvYZKPyPiVCXZqKu7eCWH9UZ+Gqg== + dependencies: + "@backstage/backend-common" "^0.21.3" + "@backstage/backend-plugin-api" "^0.6.13" + "@backstage/backend-tasks" "^0.5.18" + "@backstage/cli-common" "^0.1.13" + "@backstage/cli-node" "^0.2.3" + "@backstage/config" "^1.1.1" + "@backstage/config-loader" "^1.6.2" + "@backstage/errors" "^1.2.3" + "@backstage/plugin-auth-node" "^0.4.8" + "@backstage/plugin-permission-node" "^0.7.24" + "@backstage/types" "^1.1.1" + "@manypkg/get-packages" "^1.1.3" + "@types/cors" "^2.8.6" + "@types/express" "^4.17.6" + compression "^1.7.4" + cors "^2.8.5" + express "^4.17.1" + express-promise-router "^4.1.0" + fs-extra "^11.2.0" + helmet "^6.0.0" + lodash "^4.17.21" + logform "^2.3.2" + minimatch "^5.0.0" + minimist "^1.2.5" + morgan "^1.10.0" + node-forge "^1.3.1" + selfsigned "^2.0.0" + stoppable "^1.1.0" + winston "^3.2.1" + winston-transport "^4.5.0" + "@backstage/backend-app-api@^0.7.0", "@backstage/backend-app-api@^0.7.3": version "0.7.5" resolved "https://registry.npmmirror.com/@backstage/backend-app-api/-/backend-app-api-0.7.5.tgz#b3a52da8924825f8b132e4b7380e421762e08377" @@ -2569,7 +3004,7 @@ winston "^3.2.1" winston-transport "^4.5.0" -"@backstage/backend-common@^0.21.7": +"@backstage/backend-common@^0.21.3", "@backstage/backend-common@^0.21.7": version "0.21.7" resolved "https://registry.npmmirror.com/@backstage/backend-common/-/backend-common-0.21.7.tgz#5ae796d8adccebc484edeeb2326464c28e14849e" integrity sha512-wWpnjLYxEstFnAherkfwZIlAazdu1dfJ/5KjK1aSeMZYGyRWcelegs+Dz9MLZ53e/5qtSJ5+caltNfiItda86w== @@ -2695,6 +3130,136 @@ yauzl "^3.0.0" yn "^4.0.0" +"@backstage/backend-common@^0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@backstage/backend-common/-/backend-common-0.23.1.tgz#054bd85a8342f85bff5ae43787e4b7131b697d69" + integrity sha512-RptFXEZ9myao7B3ohxdblXPlOZQ+ZLkMBQfCMIa+mb8rL4vHVnJ9CJMWQV584gT/zztiTX2z0p4L7T6y4a1ORQ== + dependencies: + "@aws-sdk/abort-controller" "^3.347.0" + "@aws-sdk/client-codecommit" "^3.350.0" + "@aws-sdk/client-s3" "^3.350.0" + "@aws-sdk/credential-providers" "^3.350.0" + "@aws-sdk/types" "^3.347.0" + "@backstage/backend-dev-utils" "^0.1.4" + "@backstage/backend-plugin-api" "^0.6.20" + "@backstage/cli-common" "^0.1.14" + "@backstage/config" "^1.2.0" + "@backstage/config-loader" "^1.8.1" + "@backstage/errors" "^1.2.4" + "@backstage/integration" "^1.12.0" + "@backstage/integration-aws-node" "^0.1.12" + "@backstage/plugin-auth-node" "^0.4.15" + "@backstage/types" "^1.1.1" + "@google-cloud/storage" "^7.0.0" + "@keyv/memcache" "^1.3.5" + "@keyv/redis" "^2.5.3" + "@kubernetes/client-node" "0.20.0" + "@manypkg/get-packages" "^1.1.3" + "@octokit/rest" "^19.0.3" + "@types/cors" "^2.8.6" + "@types/dockerode" "^3.3.0" + "@types/express" "^4.17.6" + "@types/luxon" "^3.0.0" + "@types/webpack-env" "^1.15.2" + archiver "^6.0.0" + base64-stream "^1.0.0" + compression "^1.7.4" + concat-stream "^2.0.0" + cors "^2.8.5" + dockerode "^4.0.0" + express "^4.17.1" + express-promise-router "^4.1.0" + fs-extra "^11.2.0" + git-url-parse "^14.0.0" + helmet "^6.0.0" + isomorphic-git "^1.23.0" + jose "^5.0.0" + keyv "^4.5.2" + knex "^3.0.0" + lodash "^4.17.21" + logform "^2.3.2" + luxon "^3.0.0" + minimatch "^9.0.0" + minimist "^1.2.5" + morgan "^1.10.0" + mysql2 "^3.0.0" + node-fetch "^2.6.7" + node-forge "^1.3.1" + p-limit "^3.1.0" + path-to-regexp "^6.2.1" + pg "^8.11.3" + raw-body "^2.4.1" + selfsigned "^2.0.0" + stoppable "^1.1.0" + tar "^6.1.12" + triple-beam "^1.4.1" + uuid "^9.0.0" + winston "^3.2.1" + winston-transport "^4.5.0" + yauzl "^3.0.0" + yn "^4.0.0" + +"@backstage/backend-common@~0.20.1": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@backstage/backend-common/-/backend-common-0.20.2.tgz#0ce5b7bfcb91918008c4ec6bb6aede72c4474e20" + integrity sha512-hQazpWVhjcOIic1bDMVKZ2pQn9Th4gKmI+1Q5aT2cls7dnXNF7Mwb3bRgnVQk+18bEn6sxHOUyCAFd8KzYTtLg== + dependencies: + "@aws-sdk/abort-controller" "^3.347.0" + "@aws-sdk/client-s3" "^3.350.0" + "@aws-sdk/credential-providers" "^3.350.0" + "@aws-sdk/types" "^3.347.0" + "@backstage/backend-app-api" "^0.5.10" + "@backstage/backend-dev-utils" "^0.1.3" + "@backstage/backend-plugin-api" "^0.6.9" + "@backstage/cli-common" "^0.1.13" + "@backstage/config" "^1.1.1" + "@backstage/config-loader" "^1.6.1" + "@backstage/errors" "^1.2.3" + "@backstage/integration" "^1.8.0" + "@backstage/integration-aws-node" "^0.1.8" + "@backstage/types" "^1.1.1" + "@google-cloud/storage" "^7.0.0" + "@keyv/memcache" "^1.3.5" + "@keyv/redis" "^2.5.3" + "@kubernetes/client-node" "0.20.0" + "@manypkg/get-packages" "^1.1.3" + "@octokit/rest" "^19.0.3" + "@types/cors" "^2.8.6" + "@types/dockerode" "^3.3.0" + "@types/express" "^4.17.6" + "@types/luxon" "^3.0.0" + "@types/webpack-env" "^1.15.2" + archiver "^6.0.0" + base64-stream "^1.0.0" + compression "^1.7.4" + concat-stream "^2.0.0" + cors "^2.8.5" + dockerode "^3.3.1" + express "^4.17.1" + express-promise-router "^4.1.0" + fs-extra "10.1.0" + git-url-parse "^13.0.0" + helmet "^6.0.0" + isomorphic-git "^1.23.0" + jose "^4.6.0" + keyv "^4.5.2" + knex "^3.0.0" + lodash "^4.17.21" + logform "^2.3.2" + luxon "^3.0.0" + minimatch "^5.0.0" + mysql2 "^2.2.5" + node-fetch "^2.6.7" + p-limit "^3.1.0" + pg "^8.11.3" + raw-body "^2.4.1" + tar "^6.1.12" + uuid "^8.3.2" + winston "^3.2.1" + winston-transport "^4.5.0" + yauzl "^2.10.0" + yn "^4.0.0" + "@backstage/backend-defaults@^0.2.18": version "0.2.18" resolved "https://registry.npmmirror.com/@backstage/backend-defaults/-/backend-defaults-0.2.18.tgz#07055241c38ae19431247dcf453d6e572a482bfd" @@ -2704,7 +3269,7 @@ "@backstage/backend-common" "^0.22.0" "@backstage/plugin-events-node" "^0.3.4" -"@backstage/backend-dev-utils@^0.1.4": +"@backstage/backend-dev-utils@^0.1.3", "@backstage/backend-dev-utils@^0.1.4": version "0.1.4" resolved "https://registry.npmmirror.com/@backstage/backend-dev-utils/-/backend-dev-utils-0.1.4.tgz#65d204939c49b5df6a2148e8ad4dc718ccd1df07" integrity sha512-5YgAPz4CRtnqdaUlYCHwGmXvpkGQ1jaUMoDtiQ81WDxQrf+0iYZCwS4ftVyQmB0Ga6BaGOUf6GG/OuFA56Y5mA== @@ -2726,6 +3291,23 @@ openapi-merge "^1.3.2" openapi3-ts "^3.1.2" +"@backstage/backend-plugin-api@^0.6.13", "@backstage/backend-plugin-api@^0.6.20", "@backstage/backend-plugin-api@^0.6.9": + version "0.6.20" + resolved "https://registry.yarnpkg.com/@backstage/backend-plugin-api/-/backend-plugin-api-0.6.20.tgz#61eedd027bc9342cde243393746f3abdebc30eea" + integrity sha512-nZhnyvKBhn8HKEWV+cbV4mKg4Q2bFwtc0euRkx/qKrhDOAbIBGqADAep1v9LYqCIHq3KuaPaFY0E4if7kwlrhA== + dependencies: + "@backstage/cli-common" "^0.1.14" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-auth-node" "^0.4.15" + "@backstage/plugin-permission-common" "^0.7.14" + "@backstage/types" "^1.1.1" + "@types/express" "^4.17.6" + "@types/luxon" "^3.0.0" + express "^4.17.1" + knex "^3.0.0" + luxon "^3.0.0" + "@backstage/backend-plugin-api@^0.6.17", "@backstage/backend-plugin-api@^0.6.18": version "0.6.18" resolved "https://registry.npmmirror.com/@backstage/backend-plugin-api/-/backend-plugin-api-0.6.18.tgz#0da77be39616ce4bb09c3fc55a3cdf9c973edba4" @@ -2742,6 +3324,25 @@ express "^4.17.1" knex "^3.0.0" +"@backstage/backend-tasks@^0.5.18": + version "0.5.25" + resolved "https://registry.yarnpkg.com/@backstage/backend-tasks/-/backend-tasks-0.5.25.tgz#3fd62b278d68c5a4b8603bddbc4efedcad6923c6" + integrity sha512-UBzFfQ/hN4XIP5uG9mup8zMQPbiA3WxVlRz/g0LqUXL9g8S1eRP9aSGOZzTzgNfJFawFdVf6GdAaLkWBliclfg== + dependencies: + "@backstage/backend-common" "^0.23.1" + "@backstage/backend-plugin-api" "^0.6.20" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/types" "^1.1.1" + "@opentelemetry/api" "^1.3.0" + "@types/luxon" "^3.0.0" + cron "^3.0.0" + knex "^3.0.0" + lodash "^4.17.21" + luxon "^3.0.0" + uuid "^9.0.0" + zod "^3.22.4" + "@backstage/backend-tasks@^0.5.22", "@backstage/backend-tasks@^0.5.23": version "0.5.23" resolved "https://registry.npmmirror.com/@backstage/backend-tasks/-/backend-tasks-0.5.23.tgz#85c14fff99189d0540d6bd5be4cc81faf0617620" @@ -2771,7 +3372,7 @@ cross-fetch "^4.0.0" uri-template "^2.0.0" -"@backstage/catalog-model@^1.4.3", "@backstage/catalog-model@^1.4.5", "@backstage/catalog-model@^1.5.0": +"@backstage/catalog-model@^1.4.3", "@backstage/catalog-model@^1.4.4", "@backstage/catalog-model@^1.4.5", "@backstage/catalog-model@^1.5.0": version "1.5.0" resolved "https://registry.npmmirror.com/@backstage/catalog-model/-/catalog-model-1.5.0.tgz#7f5c4a80a3341555db5209fbc6fc2d25f6500707" integrity sha512-CfLO5/DMGahneuLU4KTQEs1tgNhBciUtyGUDZB4Ii9i1Uha1poWcqp4HKg61lj1hmXNDUHmlbFqY9W7kmzRC0A== @@ -2786,6 +3387,25 @@ resolved "https://registry.npmmirror.com/@backstage/cli-common/-/cli-common-0.1.13.tgz#cbeda6a359ca4437fc782f0ac51bb957e8d49e73" integrity sha512-UMgNAIJSeEPSMkzxiWCP8aFR8APsG21XczDnzwHdL/41F7g2C+KA6UeQc/3tzbe8XQo+PxbNLpReZeKSSnSPSQ== +"@backstage/cli-common@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@backstage/cli-common/-/cli-common-0.1.14.tgz#2291520acfbac860a05dd48fc3b876d5cd789b76" + integrity sha512-4kGWGrFuxoaCne2aHCOVW+vi8y2MLEMEj785SEApMG2J8jXJXUuIOzWw0MrN0pM1FqBXDb6aeQd+bmQMK/Ci+w== + +"@backstage/cli-node@^0.2.3": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@backstage/cli-node/-/cli-node-0.2.6.tgz#307f29eeb70943c6f6b1e8ee7a1da418c7809bf8" + integrity sha512-X9i2tXbwhLMGnOqgCc0O7CO9/lPjiQsPv/a0rv9cRstCqGHUwB0rrCFDVXf3kMRVYitgmJHxIE1L7N/Yg+TH+w== + dependencies: + "@backstage/cli-common" "^0.1.14" + "@backstage/errors" "^1.2.4" + "@backstage/types" "^1.1.1" + "@manypkg/get-packages" "^1.1.3" + "@yarnpkg/parsers" "^3.0.0" + fs-extra "^11.2.0" + semver "^7.5.3" + zod "^3.22.4" + "@backstage/cli-node@^0.2.5": version "0.2.5" resolved "https://registry.npmmirror.com/@backstage/cli-node/-/cli-node-0.2.5.tgz#553257a70cb7bc5c8097ed0c801eb87295164771" @@ -2917,6 +3537,144 @@ yn "^4.0.0" zod "^3.22.4" +"@backstage/cli@~0.25.1": + version "0.25.2" + resolved "https://registry.yarnpkg.com/@backstage/cli/-/cli-0.25.2.tgz#53f27c99c988f17edffb9e77b1864a53bccb3334" + integrity sha512-PljPYaxljPtgrs+wFUSw30UXNq7/lTsMPqC4SgCzPXNCA1XDKGK0mnNkJJJD2r4bYwBXZ9mRdcs+zCf7MBrOmg== + dependencies: + "@backstage/catalog-model" "^1.4.4" + "@backstage/cli-common" "^0.1.13" + "@backstage/cli-node" "^0.2.3" + "@backstage/config" "^1.1.1" + "@backstage/config-loader" "^1.6.2" + "@backstage/errors" "^1.2.3" + "@backstage/eslint-plugin" "^0.1.5" + "@backstage/integration" "^1.9.0" + "@backstage/release-manifests" "^0.0.11" + "@backstage/types" "^1.1.1" + "@manypkg/get-packages" "^1.1.3" + "@octokit/graphql" "^5.0.0" + "@octokit/graphql-schema" "^13.7.0" + "@octokit/oauth-app" "^4.2.0" + "@octokit/request" "^6.0.0" + "@pmmmwh/react-refresh-webpack-plugin" "^0.5.7" + "@rollup/plugin-commonjs" "^25.0.0" + "@rollup/plugin-json" "^6.0.0" + "@rollup/plugin-node-resolve" "^15.0.0" + "@rollup/plugin-yaml" "^4.0.0" + "@spotify/eslint-config-base" "^14.0.0" + "@spotify/eslint-config-react" "^14.0.0" + "@spotify/eslint-config-typescript" "^14.0.0" + "@sucrase/webpack-loader" "^2.0.0" + "@svgr/core" "6.5.x" + "@svgr/plugin-jsx" "6.5.x" + "@svgr/plugin-svgo" "6.5.x" + "@svgr/rollup" "6.5.x" + "@svgr/webpack" "6.5.x" + "@swc/core" "^1.3.46" + "@swc/helpers" "^0.5.0" + "@swc/jest" "^0.2.22" + "@types/jest" "^29.5.11" + "@types/webpack-env" "^1.15.2" + "@typescript-eslint/eslint-plugin" "^6.12.0" + "@typescript-eslint/parser" "^6.7.2" + "@yarnpkg/lockfile" "^1.1.0" + "@yarnpkg/parsers" "^3.0.0-rc.4" + bfj "^8.0.0" + buffer "^6.0.3" + chalk "^4.0.0" + chokidar "^3.3.1" + commander "^12.0.0" + cross-fetch "^4.0.0" + cross-spawn "^7.0.3" + css-loader "^6.5.1" + ctrlc-windows "^2.1.0" + diff "^5.0.0" + esbuild "^0.20.0" + esbuild-loader "^4.0.0" + eslint "^8.6.0" + eslint-config-prettier "^9.0.0" + eslint-formatter-friendly "^7.0.0" + eslint-plugin-deprecation "^2.0.0" + eslint-plugin-import "^2.25.4" + eslint-plugin-jest "^27.0.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.28.0" + eslint-plugin-react-hooks "^4.3.0" + eslint-plugin-unused-imports "^3.0.0" + eslint-webpack-plugin "^4.0.0" + express "^4.17.1" + fork-ts-checker-webpack-plugin "^9.0.0" + fs-extra "^11.2.0" + git-url-parse "^14.0.0" + glob "^7.1.7" + global-agent "^3.0.0" + handlebars "^4.7.3" + html-webpack-plugin "^5.3.1" + inquirer "^8.2.0" + jest "^29.7.0" + jest-css-modules "^2.1.0" + jest-environment-jsdom "^29.0.2" + jest-runtime "^29.0.2" + json-schema "^0.4.0" + lodash "^4.17.21" + mini-css-extract-plugin "^2.4.2" + minimatch "^5.1.1" + node-fetch "^2.6.7" + node-libs-browser "^2.2.1" + npm-packlist "^5.0.0" + ora "^5.3.0" + p-queue "^6.6.2" + postcss "^8.1.0" + process "^0.11.10" + react-dev-utils "^12.0.0-next.60" + react-refresh "^0.14.0" + recursive-readdir "^2.2.2" + replace-in-file "^6.0.0" + rollup "^2.60.2" + rollup-plugin-dts "^4.0.1" + rollup-plugin-esbuild "^4.7.2" + rollup-plugin-postcss "^4.0.0" + rollup-pluginutils "^2.8.2" + run-script-webpack-plugin "^0.2.0" + semver "^7.5.3" + style-loader "^3.3.1" + sucrase "^3.20.2" + swc-loader "^0.2.3" + tar "^6.1.12" + terser-webpack-plugin "^5.1.3" + tsx "^4.0.0" + util "^0.12.3" + webpack "^5.70.0" + webpack-dev-server "^4.7.3" + webpack-node-externals "^3.0.0" + yaml "^2.0.0" + yml-loader "^2.1.0" + yn "^4.0.0" + zod "^3.22.4" + +"@backstage/config-loader@^1.6.1", "@backstage/config-loader@^1.6.2", "@backstage/config-loader@^1.8.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@backstage/config-loader/-/config-loader-1.8.1.tgz#4383309ffe0488fa6c9dac33f3bec96181750e42" + integrity sha512-oPT+TZK1ppBjQXgOJ+pfsfE/Lov596WlBc5po9wElgnbQ720OsyAmystLKecvZ1HAjC/IGLKrPZMh9OAy/k36Q== + dependencies: + "@backstage/cli-common" "^0.1.14" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/types" "^1.1.1" + "@types/json-schema" "^7.0.6" + ajv "^8.10.0" + chokidar "^3.5.2" + fs-extra "^11.2.0" + json-schema "^0.4.0" + json-schema-merge-allof "^0.8.1" + json-schema-traverse "^1.0.0" + lodash "^4.17.21" + minimist "^1.2.5" + node-fetch "^2.6.7" + typescript-json-schema "^0.63.0" + yaml "^2.0.0" + "@backstage/config-loader@^1.8.0": version "1.8.0" resolved "https://registry.npmmirror.com/@backstage/config-loader/-/config-loader-1.8.0.tgz#6b526475c45cd93ee51a0ddcb7e1f5bd49469eeb" @@ -2947,6 +3705,15 @@ "@backstage/errors" "^1.2.4" "@backstage/types" "^1.1.1" +"@backstage/config@~1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@backstage/config/-/config-1.1.1.tgz#824ef3d74b391579060d5646fa1f45fcd553ce02" + integrity sha512-H+xZbIVvstrkVnfxZFH6JB3Gb5qUIb8DjHOakHUlDX7xEIXjQnaM3Kf85RtnHu0uYpFIpB29i8FI68Y/uLeqyw== + dependencies: + "@backstage/errors" "^1.2.3" + "@backstage/types" "^1.1.1" + lodash "^4.17.21" + "@backstage/core-app-api@^1.12.4", "@backstage/core-app-api@^1.12.5": version "1.12.5" resolved "https://registry.npmmirror.com/@backstage/core-app-api/-/core-app-api-1.12.5.tgz#d82396137d80f0b9cc3faa79ad4240faae1566b9" @@ -2966,6 +3733,44 @@ zen-observable "^0.10.0" zod "^3.22.4" +"@backstage/core-app-api@^1.12.6": + version "1.12.6" + resolved "https://registry.yarnpkg.com/@backstage/core-app-api/-/core-app-api-1.12.6.tgz#42ec06430a4055b3ccae70e235797ce5860368d3" + integrity sha512-wgRb254HG+v6ELKb927Bmpvp66eN/ihV0uhPI2qRL5Hua+3xPX30fXxPGWA/ShgeGFozPY+yF/RnOwYeuiDYVg== + dependencies: + "@backstage/config" "^1.2.0" + "@backstage/core-plugin-api" "^1.9.3" + "@backstage/types" "^1.1.1" + "@backstage/version-bridge" "^1.0.8" + "@types/prop-types" "^15.7.3" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" + history "^5.0.0" + i18next "^22.4.15" + lodash "^4.17.21" + prop-types "^15.7.2" + react-use "^17.2.4" + zen-observable "^0.10.0" + zod "^3.22.4" + +"@backstage/core-app-api@~1.11.3": + version "1.11.3" + resolved "https://registry.yarnpkg.com/@backstage/core-app-api/-/core-app-api-1.11.3.tgz#49d97c6fd1ed051b4520e8afb1400951d93d587f" + integrity sha512-GVs4M5SarJXXW4MByqRQIHTb6B3RHsNsdoLVmd9BmdKJ9hoPh+UFQTUoXhQyO9sbbGLutiQEV5L6kZAaXkW9Fw== + dependencies: + "@backstage/config" "^1.1.1" + "@backstage/core-plugin-api" "^1.8.2" + "@backstage/types" "^1.1.1" + "@backstage/version-bridge" "^1.0.7" + "@types/prop-types" "^15.7.3" + "@types/react" "^16.13.1 || ^17.0.0" + history "^5.0.0" + i18next "^22.4.15" + lodash "^4.17.21" + prop-types "^15.7.2" + react-use "^17.2.4" + zen-observable "^0.10.0" + zod "^3.22.4" + "@backstage/core-compat-api@^0.2.4", "@backstage/core-compat-api@^0.2.5": version "0.2.5" resolved "https://registry.npmmirror.com/@backstage/core-compat-api/-/core-compat-api-0.2.5.tgz#bc75a51935f1c6f21393bdc9a54251c0701ed5e3" @@ -2976,7 +3781,7 @@ "@backstage/version-bridge" "^1.0.8" "@types/react" "^16.13.1 || ^17.0.0" -"@backstage/core-components@^0.13.8": +"@backstage/core-components@^0.13.8", "@backstage/core-components@~0.13.10": version "0.13.10" resolved "https://registry.npmmirror.com/@backstage/core-components/-/core-components-0.13.10.tgz#f423b56c81cade3df20ec5eccb209f0315320290" integrity sha512-njqtxt0J4eHBcU+tuZgL0yba8Fhie/OtefVwCx5K6+vPWLGQNMnXzJCX7Q/4iLtwBXoMyP+pk3r90sDja3ZV9Q== @@ -3064,6 +3869,49 @@ zen-observable "^0.10.0" zod "^3.22.4" +"@backstage/core-components@^0.14.8": + version "0.14.8" + resolved "https://registry.yarnpkg.com/@backstage/core-components/-/core-components-0.14.8.tgz#857b1d681421e0912564ee11adb320a280bba8e4" + integrity sha512-CZOoYHewv63n/JyRe1YCZVwuaMZVhQTF8RGahKU4GIAKL8d5rDfd1KlJVEY+5FWuDpOjKAlVr0co3SZsOGqjkQ== + dependencies: + "@backstage/config" "^1.2.0" + "@backstage/core-plugin-api" "^1.9.3" + "@backstage/errors" "^1.2.4" + "@backstage/theme" "^0.5.6" + "@backstage/version-bridge" "^1.0.8" + "@date-io/core" "^1.3.13" + "@material-table/core" "^3.1.0" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.61" + "@react-hookz/web" "^24.0.0" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" + "@types/react-sparklines" "^1.7.0" + ansi-regex "^6.0.1" + classnames "^2.2.6" + d3-selection "^3.0.0" + d3-shape "^3.0.0" + d3-zoom "^3.0.0" + dagre "^0.8.5" + linkify-react "4.1.3" + linkifyjs "4.1.3" + lodash "^4.17.21" + pluralize "^8.0.0" + qs "^6.9.4" + rc-progress "3.5.1" + react-helmet "6.1.0" + react-hook-form "^7.12.2" + react-idle-timer "5.7.2" + react-markdown "^8.0.0" + react-sparklines "^1.7.0" + react-syntax-highlighter "^15.4.5" + react-use "^17.3.2" + react-virtualized-auto-sizer "^1.0.11" + react-window "^1.8.6" + remark-gfm "^3.0.1" + zen-observable "^0.10.0" + zod "^3.22.4" + "@backstage/core-plugin-api@^1.8.0", "@backstage/core-plugin-api@^1.8.2", "@backstage/core-plugin-api@^1.9.2": version "1.9.2" resolved "https://registry.npmmirror.com/@backstage/core-plugin-api/-/core-plugin-api-1.9.2.tgz#1a75865e567708829f5a8056ad23ea94233f4b7f" @@ -3076,6 +3924,47 @@ "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" history "^5.0.0" +"@backstage/core-plugin-api@^1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@backstage/core-plugin-api/-/core-plugin-api-1.9.3.tgz#66b4b7dc620823c66b123c8a2d6db088e2936027" + integrity sha512-MV/RQv8nAPYVkVX926Z+VPW2W4ZzU9VN2s9NhWSWqoYuOzsmA4FgmfNDuwiPEAUKW7AlVCGI4A0deUZ22Orgyw== + dependencies: + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/types" "^1.1.1" + "@backstage/version-bridge" "^1.0.8" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" + history "^5.0.0" + +"@backstage/core-plugin-api@~1.8.2": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@backstage/core-plugin-api/-/core-plugin-api-1.8.2.tgz#1e6f54f0ef1669ffeff56490fbde92c766312230" + integrity sha512-+KvbbMp4L5fz14zhiucG4TevrKcyyS59LjBL7yeoHQO+PdGQFbFaGhispNb/Y+Yjyo/tEuk0+JktRyTBUa1dEg== + dependencies: + "@backstage/config" "^1.1.1" + "@backstage/types" "^1.1.1" + "@backstage/version-bridge" "^1.0.7" + "@types/react" "^16.13.1 || ^17.0.0" + history "^5.0.0" + +"@backstage/dev-utils@^1.0.26": + version "1.0.33" + resolved "https://registry.yarnpkg.com/@backstage/dev-utils/-/dev-utils-1.0.33.tgz#c5417406408b870e6349958ef359004ada0bd3b9" + integrity sha512-Jv8JPyOKzmyDu77cgy/7On8Z1QA3o2N5uxM/kLEPoDoFu9C2bW/p10Kxpnl0EqjjzuXOlNxiMc3FpfKbfFr7Bg== + dependencies: + "@backstage/app-defaults" "^1.5.6" + "@backstage/catalog-model" "^1.5.0" + "@backstage/core-app-api" "^1.12.6" + "@backstage/core-components" "^0.14.8" + "@backstage/core-plugin-api" "^1.9.3" + "@backstage/integration-react" "^1.1.28" + "@backstage/plugin-catalog-react" "^1.12.1" + "@backstage/theme" "^0.5.6" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" + react-use "^17.2.4" + "@backstage/dev-utils@^1.0.31": version "1.0.32" resolved "https://registry.npmmirror.com/@backstage/dev-utils/-/dev-utils-1.0.32.tgz#86464ab2892c1ef7c0aa931ccbf7a40d6dc00a77" @@ -3110,7 +3999,7 @@ "@backstage/types" "^1.1.1" serialize-error "^8.0.1" -"@backstage/eslint-plugin@^0.1.8": +"@backstage/eslint-plugin@^0.1.5", "@backstage/eslint-plugin@^0.1.8": version "0.1.8" resolved "https://registry.npmmirror.com/@backstage/eslint-plugin/-/eslint-plugin-0.1.8.tgz#4c554916ae9bdce17ab7082a5c341646f170c9b7" integrity sha512-pYAGh3LoTlM0JhW+5ujEim+AjGs6xnGJcZAlnQ0jnlqdItSvMklL1mIkpwgY2i9NM6AxYzoYnXF8AQxnz6RSTg== @@ -3133,7 +4022,22 @@ zod "^3.22.4" zod-to-json-schema "^3.21.4" -"@backstage/integration-aws-node@^0.1.12": +"@backstage/frontend-plugin-api@^0.6.6": + version "0.6.6" + resolved "https://registry.yarnpkg.com/@backstage/frontend-plugin-api/-/frontend-plugin-api-0.6.6.tgz#acaad6b5c08a84c6add3e4384e0a901638e20778" + integrity sha512-9SfDjOF9d8hkMCEjiwT5PDgPBjXLgwo5WzmEF1/h3aQ9T7J/ys65sjAgGHmGydfaW/jdWxabsfZeSFfIQly+3g== + dependencies: + "@backstage/core-components" "^0.14.8" + "@backstage/core-plugin-api" "^1.9.3" + "@backstage/types" "^1.1.1" + "@backstage/version-bridge" "^1.0.8" + "@material-ui/core" "^4.12.4" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" + lodash "^4.17.21" + zod "^3.22.4" + zod-to-json-schema "^3.21.4" + +"@backstage/integration-aws-node@^0.1.12", "@backstage/integration-aws-node@^0.1.8": version "0.1.12" resolved "https://registry.npmmirror.com/@backstage/integration-aws-node/-/integration-aws-node-0.1.12.tgz#d2c5ac7c81cd6c2733dcfd24544ad21931ea815d" integrity sha512-bPOBM1a/v3Oo4svOKjQbjvBmaKDqCGfSLBtH2rrp1dj1Mk8Pr+hmvQYQZBHqfc0gTqddRST3gz6GGL2ZKovWUw== @@ -3158,6 +4062,18 @@ "@material-ui/icons" "^4.9.1" "@types/react" "^16.13.1 || ^17.0.0" +"@backstage/integration-react@^1.1.28": + version "1.1.28" + resolved "https://registry.yarnpkg.com/@backstage/integration-react/-/integration-react-1.1.28.tgz#ea9394d0c144cf9d14c94ea81a1187aeb8041360" + integrity sha512-Qo5b2rS9tatuMAgoQTnC1lIBdRMo61gxDSeamq/C8Yu8ytThb1XDGciKP8JHe3pitIVvWXVXGht+EEL+IaPC4Q== + dependencies: + "@backstage/config" "^1.2.0" + "@backstage/core-plugin-api" "^1.9.3" + "@backstage/integration" "^1.12.0" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@types/react" "^16.13.1 || ^17.0.0" + "@backstage/integration@^1.10.0", "@backstage/integration@^1.11.0": version "1.11.0" resolved "https://registry.npmmirror.com/@backstage/integration/-/integration-1.11.0.tgz#0a04b6d3e15569c1074b7f39a7a3a17eefd1b89b" @@ -3173,6 +4089,21 @@ lodash "^4.17.21" luxon "^3.0.0" +"@backstage/integration@^1.12.0", "@backstage/integration@^1.8.0", "@backstage/integration@^1.9.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@backstage/integration/-/integration-1.12.0.tgz#3e65aae7984dfc85de5a42140b8a581d76656459" + integrity sha512-4MpRYuV+IkzZ+BzMIkmtxR1YyhidIq7+JccqXXhorI8BoAQLUmTZqlryTh9uiWIwY4u/GrIUIvZ81fPVxALjCQ== + dependencies: + "@azure/identity" "^4.0.0" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@octokit/auth-app" "^4.0.0" + "@octokit/rest" "^19.0.3" + cross-fetch "^4.0.0" + git-url-parse "^14.0.0" + lodash "^4.17.21" + luxon "^3.0.0" + "@backstage/plugin-api-docs@^0.11.4": version "0.11.5" resolved "https://registry.npmmirror.com/@backstage/plugin-api-docs/-/plugin-api-docs-0.11.5.tgz#8647ba6084f91ca6848a49df94cf2ede2ef98c31" @@ -3493,6 +4424,29 @@ zod "^3.22.4" zod-to-json-schema "^3.21.4" +"@backstage/plugin-auth-node@^0.4.15", "@backstage/plugin-auth-node@^0.4.8": + version "0.4.15" + resolved "https://registry.yarnpkg.com/@backstage/plugin-auth-node/-/plugin-auth-node-0.4.15.tgz#4e7ff16edeea27dd494f99d248f7e2b0f6104736" + integrity sha512-rcplXvoxPtTbHkjIVmANiHcSLE71LFEZHM3No9PLfvp65Ox8WIWB4byHD89G/rHzJr+n277rC8Yv9/lqiL9cUA== + dependencies: + "@backstage/backend-common" "^0.23.1" + "@backstage/backend-plugin-api" "^0.6.20" + "@backstage/catalog-client" "^1.6.5" + "@backstage/catalog-model" "^1.5.0" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/types" "^1.1.1" + "@types/express" "*" + "@types/passport" "^1.0.3" + express "^4.17.1" + jose "^5.0.0" + lodash "^4.17.21" + node-fetch "^2.6.7" + passport "^0.7.0" + winston "^3.2.1" + zod "^3.22.4" + zod-to-json-schema "^3.21.4" + "@backstage/plugin-auth-react@^0.1.2": version "0.1.2" resolved "https://registry.npmmirror.com/@backstage/plugin-auth-react/-/plugin-auth-react-0.1.2.tgz#683a19a555f558f3e0caee124c32f72734416121" @@ -3567,6 +4521,15 @@ "@backstage/plugin-permission-common" "^0.7.13" "@backstage/plugin-search-common" "^1.2.11" +"@backstage/plugin-catalog-common@^1.0.24": + version "1.0.24" + resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.24.tgz#022c408b0e8c6b55e89779c6f4fef5f09e9f8e89" + integrity sha512-LozPOa/HgDdobb4/p54W02+exZfuu0tIdKs3OCdvcd8xRh4Y30Qxqpi/kGwsSXCLCBNZv3ffNRuzmYe58VlX/w== + dependencies: + "@backstage/catalog-model" "^1.5.0" + "@backstage/plugin-permission-common" "^0.7.14" + "@backstage/plugin-search-common" "^1.2.12" + "@backstage/plugin-catalog-graph@^0.4.4": version "0.4.5" resolved "https://registry.npmmirror.com/@backstage/plugin-catalog-graph/-/plugin-catalog-graph-0.4.5.tgz#6a525318f5c1418487adbe6f76a88dad2e8795fb" @@ -3663,6 +4626,36 @@ yaml "^2.0.0" zen-observable "^0.10.0" +"@backstage/plugin-catalog-react@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.12.1.tgz#5d531a2a67cfa8995325d0a7b5778cd85efd3444" + integrity sha512-WKGmLCUNN6DbfUteKKwjfJ2hOpjVU/JT4jmR8PkJBc04s/mk3VWBYbYwtIphoX8oB2bX0r3QfuOqkwn/KhhlMw== + dependencies: + "@backstage/catalog-client" "^1.6.5" + "@backstage/catalog-model" "^1.5.0" + "@backstage/core-components" "^0.14.8" + "@backstage/core-plugin-api" "^1.9.3" + "@backstage/errors" "^1.2.4" + "@backstage/frontend-plugin-api" "^0.6.6" + "@backstage/integration-react" "^1.1.28" + "@backstage/plugin-catalog-common" "^1.0.24" + "@backstage/plugin-permission-common" "^0.7.14" + "@backstage/plugin-permission-react" "^0.4.23" + "@backstage/types" "^1.1.1" + "@backstage/version-bridge" "^1.0.8" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.61" + "@react-hookz/web" "^24.0.0" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" + classnames "^2.2.6" + lodash "^4.17.21" + material-ui-popup-state "^1.9.3" + qs "^6.9.4" + react-use "^17.2.4" + yaml "^2.0.0" + zen-observable "^0.10.0" + "@backstage/plugin-catalog@^1.19.0", "@backstage/plugin-catalog@^1.20.0": version "1.20.0" resolved "https://registry.npmmirror.com/@backstage/plugin-catalog/-/plugin-catalog-1.20.0.tgz#6014e41886fc1a33b6a5de7ce387c0fa52c9f55e" @@ -3923,6 +4916,35 @@ uuid "^9.0.0" zod "^3.22.4" +"@backstage/plugin-permission-common@^0.7.14": + version "0.7.14" + resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-common/-/plugin-permission-common-0.7.14.tgz#ecb12877c412ff271124af54fca46ec06d9c812f" + integrity sha512-fHbxhX9ZoT8bTVuGycfTeU/6TE2yjZ6YNvm/2ko1bcxGnvYe1p5Ug5JW+iWjDZS+F6F152tWzhRcg05wQlPNKQ== + dependencies: + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/types" "^1.1.1" + cross-fetch "^4.0.0" + uuid "^9.0.0" + zod "^3.22.4" + +"@backstage/plugin-permission-node@^0.7.24": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-node/-/plugin-permission-node-0.7.31.tgz#27368010545fad9d1b78ff35ba7aba0364a527bb" + integrity sha512-oHKWspLOHAYeKdogNiR8KgyA4vc+/xXIUbJfGYP6y1je1SN5Myz9R+VSzXq1kl03yIp5Vz8wPlPIq+tB6zTY4Q== + dependencies: + "@backstage/backend-common" "^0.23.1" + "@backstage/backend-plugin-api" "^0.6.20" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" + "@backstage/plugin-auth-node" "^0.4.15" + "@backstage/plugin-permission-common" "^0.7.14" + "@types/express" "^4.17.6" + express "^4.17.1" + express-promise-router "^4.1.0" + zod "^3.22.4" + zod-to-json-schema "^3.20.4" + "@backstage/plugin-permission-node@^0.7.28", "@backstage/plugin-permission-node@^0.7.29": version "0.7.29" resolved "https://registry.npmmirror.com/@backstage/plugin-permission-node/-/plugin-permission-node-0.7.29.tgz#9545fe0fce26ca191beff5e458b920e4445a0a03" @@ -3951,6 +4973,17 @@ "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" swr "^2.0.0" +"@backstage/plugin-permission-react@^0.4.23": + version "0.4.23" + resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-react/-/plugin-permission-react-0.4.23.tgz#3a09d8bd31f10fb46727e3b0468cc322e2a11fcb" + integrity sha512-ERqb9o9Hk+iDyu3krZNCe0OGBUw7ci426WPq76mSCszHbYiOgbdHDmujnEX/qHdbek3MYvf/Z+ZsjGjKiGm6Iw== + dependencies: + "@backstage/config" "^1.2.0" + "@backstage/core-plugin-api" "^1.9.3" + "@backstage/plugin-permission-common" "^0.7.14" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" + swr "^2.0.0" + "@backstage/plugin-proxy-backend@^0.4.15": version "0.4.16" resolved "https://registry.npmmirror.com/@backstage/plugin-proxy-backend/-/plugin-proxy-backend-0.4.16.tgz#8a903d751ae35b4713477cd6a4d98db1ee16544e" @@ -4366,6 +5399,14 @@ "@backstage/plugin-permission-common" "^0.7.13" "@backstage/types" "^1.1.1" +"@backstage/plugin-search-common@^1.2.12": + version "1.2.12" + resolved "https://registry.yarnpkg.com/@backstage/plugin-search-common/-/plugin-search-common-1.2.12.tgz#0575788183ad7a66d6496e2ba765ee11bada4f2d" + integrity sha512-tjRhkgUYenK+dr+PHiS6pnXASGEVmxqjgoWfYoVNlKcwrXYHbddDoUJ1n51P/urhHqGGiz9zJyt8og+gN+TNaQ== + dependencies: + "@backstage/plugin-permission-common" "^0.7.14" + "@backstage/types" "^1.1.1" + "@backstage/plugin-search-react@^1.7.10", "@backstage/plugin-search-react@^1.7.11": version "1.7.11" resolved "https://registry.npmmirror.com/@backstage/plugin-search-react/-/plugin-search-react-1.7.11.tgz#0590bb66647ec5f3470ed84da9bfd84103f2351b" @@ -4618,6 +5659,25 @@ portfinder "^1.0.32" yaml-diff-patch "^2.0.0" +"@backstage/test-utils@^1.4.7": + version "1.5.6" + resolved "https://registry.yarnpkg.com/@backstage/test-utils/-/test-utils-1.5.6.tgz#6d10e2485bc06dc9cdb3f7f7541f8129c7577b6c" + integrity sha512-9s7YPakCnDqWPNl2WKdrsiM9MrdcFmZqrW9WoJCK2/vzDnIE8+P3tYEwqlhA4b+jowy8tWGz1de8Nz/hCwO3jQ== + dependencies: + "@backstage/config" "^1.2.0" + "@backstage/core-app-api" "^1.12.6" + "@backstage/core-plugin-api" "^1.9.3" + "@backstage/plugin-permission-common" "^0.7.14" + "@backstage/plugin-permission-react" "^0.4.23" + "@backstage/theme" "^0.5.6" + "@backstage/types" "^1.1.1" + "@material-ui/core" "^4.12.2" + "@material-ui/icons" "^4.9.1" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" + cross-fetch "^4.0.0" + i18next "^22.4.15" + zen-observable "^0.10.0" + "@backstage/test-utils@^1.5.4": version "1.5.5" resolved "https://registry.npmmirror.com/@backstage/test-utils/-/test-utils-1.5.5.tgz#ef550ca8fa5e55bad8230a619557b578e11810dd" @@ -4655,6 +5715,15 @@ "@emotion/styled" "^11.10.5" "@mui/material" "^5.12.2" +"@backstage/theme@^0.5.6", "@backstage/theme@~0.5.0": + version "0.5.6" + resolved "https://registry.yarnpkg.com/@backstage/theme/-/theme-0.5.6.tgz#18645cbe42fb5667946e0a5dd38f2fb0bb056597" + integrity sha512-7/0sZYAS+2p/eEWC8eBINWHNv4jas6R20e0R5f0fc1YvLnVQ8HhnpZ6+d2vDMe7X2A2TBBcyJbSCybHdRAKpAA== + dependencies: + "@emotion/react" "^11.10.5" + "@emotion/styled" "^11.10.5" + "@mui/material" "^5.12.2" + "@backstage/types@^1.1.1": version "1.1.1" resolved "https://registry.npmmirror.com/@backstage/types/-/types-1.1.1.tgz#c9ccb30357005e7fb5fa2ac140198059976eb076" @@ -4940,116 +6009,231 @@ resolved "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + "@esbuild/android-arm64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + "@esbuild/android-arm@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + "@esbuild/android-x64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + "@esbuild/darwin-arm64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + "@esbuild/darwin-x64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + "@esbuild/freebsd-arm64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + "@esbuild/freebsd-x64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + "@esbuild/linux-arm64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + "@esbuild/linux-arm@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + "@esbuild/linux-ia32@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + "@esbuild/linux-loong64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + "@esbuild/linux-mips64el@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + "@esbuild/linux-ppc64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + "@esbuild/linux-riscv64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + "@esbuild/linux-s390x@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + "@esbuild/linux-x64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + "@esbuild/netbsd-x64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + "@esbuild/openbsd-x64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + "@esbuild/sunos-x64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + "@esbuild/win32-arm64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + "@esbuild/win32-ia32@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + "@esbuild/win32-x64@0.20.2": version "0.20.2" resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -7687,7 +8871,7 @@ js-yaml "^4.1.0" tosource "^2.0.0-alpha.3" -"@rollup/pluginutils@^4.2.1": +"@rollup/pluginutils@^4.1.1", "@rollup/pluginutils@^4.2.1": version "4.2.1" resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== @@ -7914,6 +9098,14 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/abort-controller@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.0.tgz#408fbc0da13c30bc0aac859a44be08a5ba18126a" + integrity sha512-XOm4LkuC0PsK1sf2bBJLIlskn5ghmVxiEBVlo/jg0R8hxASBKYYgOoJEhKWgOr4vWGkN+5rC+oyBAqHYtxjnwQ== + dependencies: + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/chunked-blob-reader-native@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.1.1.tgz#6b98479c8f6ea94832dd6a6e5ca78969a44eafe1" @@ -7922,6 +9114,14 @@ "@smithy/util-base64" "^2.1.1" tslib "^2.5.0" +"@smithy/chunked-blob-reader-native@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz#f1104b30030f76f9aadcbd3cdca4377bd1ba2695" + integrity sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg== + dependencies: + "@smithy/util-base64" "^3.0.0" + tslib "^2.6.2" + "@smithy/chunked-blob-reader@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.1.1.tgz#997faba8e197e0cb9824dad30ae581466e386e57" @@ -7929,6 +9129,13 @@ dependencies: tslib "^2.5.0" +"@smithy/chunked-blob-reader@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz#e5d3b04e9b273ba8b7ede47461e2aa96c8aa49e0" + integrity sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA== + dependencies: + tslib "^2.6.2" + "@smithy/config-resolver@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/config-resolver/-/config-resolver-2.1.1.tgz#fc6b036084b98fd26a8ff01a5d7eb676e41749c7" @@ -7965,6 +9172,20 @@ "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" +"@smithy/core@^2.1.1": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.2.3.tgz#dc6ba7d338a1b35752be274cdaf6fcbcfdb44a70" + integrity sha512-SpyLOL2vgE6sUYM6nQfu82OirCPkCDKctyG3aMgjMlDPTJpUlmlNH0ttu9ZWwzEjrzzr8uABmPjJTRI7gk1HFQ== + dependencies: + "@smithy/middleware-endpoint" "^3.0.3" + "@smithy/middleware-retry" "^3.0.6" + "@smithy/middleware-serde" "^3.0.2" + "@smithy/protocol-http" "^4.0.2" + "@smithy/smithy-client" "^3.1.4" + "@smithy/types" "^3.2.0" + "@smithy/util-middleware" "^3.0.2" + tslib "^2.6.2" + "@smithy/core@^2.2.0": version "2.2.1" resolved "https://registry.npmmirror.com/@smithy/core/-/core-2.2.1.tgz#92ed71eb96ef16d5ac8b23dbdf913bcb225ab875" @@ -8021,6 +9242,16 @@ "@smithy/util-hex-encoding" "^2.1.1" tslib "^2.5.0" +"@smithy/eventstream-codec@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.0.0.tgz#81d30391220f73d41f432f65384b606d67673e46" + integrity sha512-PUtyEA0Oik50SaEFCZ0WPVtF9tz/teze2fDptW6WRXl+RrEenH8UbEjudOz8iakiMl3lE3lCVqYf2Y+znL8QFQ== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^3.0.0" + "@smithy/util-hex-encoding" "^3.0.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-browser@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.1.1.tgz#743a374639e9e2dd858b6fda1fd814eb6c604946" @@ -8030,6 +9261,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/eventstream-serde-browser@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.0.tgz#94721b01f01d8b7eb1db5814275a774ed4d38190" + integrity sha512-NB7AFiPN4NxP/YCAnrvYR18z2/ZsiHiF7VtG30gshO9GbFrIb1rC8ep4NGpJSWrz6P64uhPXeo4M0UsCLnZKqw== + dependencies: + "@smithy/eventstream-serde-universal" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-config-resolver@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.1.1.tgz#0b84d6f8be0836af7b92455c69f7427e4f01e7a2" @@ -8038,6 +9278,14 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/eventstream-serde-config-resolver@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.0.tgz#420447d1d284d41f7f070a5d92fc3686cc922581" + integrity sha512-RUQG3vQ3LX7peqqHAbmayhgrF5aTilPnazinaSGF1P0+tgM3vvIRWPHmlLIz2qFqB9LqFIxditxc8O2Z6psrRw== + dependencies: + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-node@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.1.1.tgz#2e1afa27f9c7eb524c1c53621049c5e4e3cea6a5" @@ -8047,6 +9295,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/eventstream-serde-node@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.0.tgz#6519523fbb429307be29b151b8ba35bcca2b6e64" + integrity sha512-baRPdMBDMBExZXIUAoPGm/hntixjt/VFpU6+VmCyiYJYzRHRxoaI1MN+5XE+hIS8AJ2GCHLMFEIOLzq9xx1EgQ== + dependencies: + "@smithy/eventstream-serde-universal" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-universal@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.1.1.tgz#0f5eec9ad033017973a67bafb5549782499488d2" @@ -8056,6 +9313,15 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/eventstream-serde-universal@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.0.tgz#cb8441a73fbde4cbaa68e4a21236f658d914a073" + integrity sha512-HNFfShmotWGeAoW4ujP8meV9BZavcpmerDbPIjkJbxKbN8RsUcpRQ/2OyIxWNxXNH2GWCAxuSB7ynmIGJlQ3Dw== + dependencies: + "@smithy/eventstream-codec" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@smithy/fetch-http-handler@^2.4.1": version "2.4.1" resolved "https://registry.npmmirror.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.1.tgz#b4d73bbc1449f61234077d58c705b843a8587bf0" @@ -8078,6 +9344,17 @@ "@smithy/util-base64" "^3.0.0" tslib "^2.6.2" +"@smithy/fetch-http-handler@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.1.0.tgz#993d47577c7b86eb5796cd29f8301beafa2cf471" + integrity sha512-s7oQjEOUH9TYjctpITtWF4qxOdg7pBrP9eigEQ8SBsxF3dRFV0S28pGMllC83DUr7ECmErhO/BUwnULfoNhKgQ== + dependencies: + "@smithy/protocol-http" "^4.0.2" + "@smithy/querystring-builder" "^3.0.2" + "@smithy/types" "^3.2.0" + "@smithy/util-base64" "^3.0.0" + tslib "^2.6.2" + "@smithy/hash-blob-browser@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.1.1.tgz#f4571d4e2fbc2cc1869c443850e5409bf541ba25" @@ -8088,6 +9365,16 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/hash-blob-browser@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.0.0.tgz#63ef4c98f74c53cbcad8ec73387c68ec4708f55b" + integrity sha512-/Wbpdg+bwJvW7lxR/zpWAc1/x/YkcqguuF2bAzkJrvXriZu1vm8r+PUdE4syiVwQg7PPR2dXpi3CLBb9qRDaVQ== + dependencies: + "@smithy/chunked-blob-reader" "^3.0.0" + "@smithy/chunked-blob-reader-native" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + "@smithy/hash-node@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/hash-node/-/hash-node-2.1.1.tgz#0f8a22d97565ca948724f72267e4d3a2f33740a8" @@ -8117,6 +9404,15 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@smithy/hash-stream-node@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.0.0.tgz#b395a8a0d2427e4a8effc56135b37cb299339f8f" + integrity sha512-J0i7de+EgXDEGITD4fxzmMX8CyCNETTIRXlxjMiNUvvu76Xn3GJ31wQR85ynlPk2wI1lqoknAFJaD1fiNDlbIA== + dependencies: + "@smithy/types" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@smithy/invalid-dependency@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/invalid-dependency/-/invalid-dependency-2.1.1.tgz#bd69fa24dd35e9bc65a160bd86becdf1399e4463" @@ -8163,6 +9459,15 @@ "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" +"@smithy/md5-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.0.tgz#6a2d1c496f4d4476a0fc84f7724d79b234c3eb13" + integrity sha512-Tm0vrrVzjlD+6RCQTx7D3Ls58S3FUH1ZCtU1MIh/qQmaOo1H9lMN2as6CikcEwgattnA9SURSdoJJ27xMcEfMA== + dependencies: + "@smithy/types" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@smithy/middleware-content-length@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/middleware-content-length/-/middleware-content-length-2.1.1.tgz#df767de12d594bc5622009fb0fc8343522697d8c" @@ -8207,6 +9512,19 @@ "@smithy/util-middleware" "^3.0.1" tslib "^2.6.2" +"@smithy/middleware-endpoint@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.3.tgz#bbfdd0f35668af392c5031ca2735c31760740bc6" + integrity sha512-ARAXHodhj4tttKa9y75zvENdSoHq6VGsSi7XS3+yLutrnxttJs6N10UMInCC1yi3/bopT8xug3iOP/y9R6sKJQ== + dependencies: + "@smithy/middleware-serde" "^3.0.2" + "@smithy/node-config-provider" "^3.1.2" + "@smithy/shared-ini-file-loader" "^3.1.2" + "@smithy/types" "^3.2.0" + "@smithy/url-parser" "^3.0.2" + "@smithy/util-middleware" "^3.0.2" + tslib "^2.6.2" + "@smithy/middleware-retry@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/middleware-retry/-/middleware-retry-2.1.1.tgz#ddc749dd927f136714f76ca5a52dcfb0993ee162" @@ -8237,6 +9555,21 @@ tslib "^2.6.2" uuid "^9.0.1" +"@smithy/middleware-retry@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.6.tgz#ace955263cea4ef6acf1e0e42192be62e20ab558" + integrity sha512-ICsFKp8eAyIMmxN5UT3IU37S6886L879TKtgxPsn/VD/laYNwqTLmJaCAn5//+2fRIrV0dnHp6LFlMwdXlWoUQ== + dependencies: + "@smithy/node-config-provider" "^3.1.2" + "@smithy/protocol-http" "^4.0.2" + "@smithy/service-error-classification" "^3.0.2" + "@smithy/smithy-client" "^3.1.4" + "@smithy/types" "^3.2.0" + "@smithy/util-middleware" "^3.0.2" + "@smithy/util-retry" "^3.0.2" + tslib "^2.6.2" + uuid "^9.0.1" + "@smithy/middleware-serde@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/middleware-serde/-/middleware-serde-2.1.1.tgz#2c5750f76e276a5249720f6c3c24fac29abbee16" @@ -8253,6 +9586,14 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/middleware-serde@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.2.tgz#3ec15a7991c2b066cced5989aba7f81fed4dfb87" + integrity sha512-oT2abV5zLhBucJe1LIIFEcRgIBDbZpziuMPswTMbBQNcaEUycLFvX63zsFmqfwG+/ZQKsNx+BSE8W51CMuK7Yw== + dependencies: + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/middleware-stack@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/middleware-stack/-/middleware-stack-2.1.1.tgz#67f992dc36e8a6861f881f80a81c1c30956a0396" @@ -8269,6 +9610,14 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/middleware-stack@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.2.tgz#82610681a7f5986bfb3229df98ca1e050b667660" + integrity sha512-6fRcxomlNKBPIy/YjcnC7YHpMAjRvGUYlYVJAfELqZjkW0vQegNcImjY7T1HgYA6u3pAcCxKVBLYnkTw8z/l0A== + dependencies: + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/node-config-provider@^2.2.1": version "2.2.1" resolved "https://registry.npmmirror.com/@smithy/node-config-provider/-/node-config-provider-2.2.1.tgz#c440c7948d58d72f0e212aa1967aa12f0729defd" @@ -8289,6 +9638,16 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/node-config-provider@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.2.tgz#3e739ae02520f2249f6c50197feee6e38125fb1d" + integrity sha512-388fEAa7+6ORj/BDC70peg3fyFBTTXJyXfXJ0Bwd6FYsRltePr2oGzIcm5AuC1WUSLtZ/dF+hYOnfTMs04rLvA== + dependencies: + "@smithy/property-provider" "^3.1.2" + "@smithy/shared-ini-file-loader" "^3.1.2" + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/node-http-handler@^2.1.7", "@smithy/node-http-handler@^2.3.1": version "2.3.1" resolved "https://registry.npmmirror.com/@smithy/node-http-handler/-/node-http-handler-2.3.1.tgz#77d23279ff0a12cbe7cde93c5e7c0e86ad56dd20" @@ -8311,6 +9670,17 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/node-http-handler@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.1.0.tgz#0f37b2c379b1cd85be125234575e7c5129dbed67" + integrity sha512-pOpgB6B+VLXLwAyyvRz+ZAVXABlbAsJ2xvn3WZvrppAPImxwQOPFbeSUzWYMhpC8Tr7yQ3R8fG990QDhskkf1Q== + dependencies: + "@smithy/abort-controller" "^3.1.0" + "@smithy/protocol-http" "^4.0.2" + "@smithy/querystring-builder" "^3.0.2" + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/property-provider@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/property-provider/-/property-provider-2.1.1.tgz#0f7ffc5e43829eaca5b2b5aae8554807a52b30f3" @@ -8327,6 +9697,14 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/property-provider@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.2.tgz#3da2802511078eae66240bcbeb8ef6f6102aeabf" + integrity sha512-Hzp32BpeFFexBpO1z+ts8okbq/VLzJBadxanJAo/Wf2CmvXMBp6Q/TLWr7Js6IbMEcr0pDZ02V3u1XZkuQUJaA== + dependencies: + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/protocol-http@^3.1.1": version "3.1.1" resolved "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-3.1.1.tgz#eee522d0ed964a72b735d64925e07bcfb7a7806f" @@ -8343,6 +9721,14 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/protocol-http@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.0.2.tgz#502ed3116cb0f1e3f207881df965bac620ccb2da" + integrity sha512-X/90xNWIOqSR2tLUyWxVIBdatpm35DrL44rI/xoeBWUuanE0iyCXJpTcnqlOpnEzgcu0xCKE06+g70TTu2j7RQ== + dependencies: + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/querystring-builder@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/querystring-builder/-/querystring-builder-2.1.1.tgz#b9693448ad3f8e0767d84cf5cae29f35514591fb" @@ -8361,6 +9747,15 @@ "@smithy/util-uri-escape" "^3.0.0" tslib "^2.6.2" +"@smithy/querystring-builder@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.2.tgz#ea0f9a6e2b85d62465b3cc0214e6b86eb7af7ab4" + integrity sha512-xhv1+HacDYsOLdNt7zW+8Fe779KYAzmWvzs9bC5NlKM8QGYCwwuFwDBynhlU4D5twgi2pZ14Lm4h6RiAazCtmA== + dependencies: + "@smithy/types" "^3.2.0" + "@smithy/util-uri-escape" "^3.0.0" + tslib "^2.6.2" + "@smithy/querystring-parser@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/querystring-parser/-/querystring-parser-2.1.1.tgz#a4282a66cc56844317dbff824e573f469bbfc032" @@ -8377,6 +9772,14 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/querystring-parser@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.2.tgz#7b8edc661d0ee2c2e7e8a39b1022b00dfff2858e" + integrity sha512-C5hyRKgrZGPNh5QqIWzXnW+LXVrPmVQO0iJKjHeb5v3C61ZkP9QhrKmbfchcTyg/VnaE0tMNf/nmLpQlWuiqpg== + dependencies: + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/service-error-classification@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/service-error-classification/-/service-error-classification-2.1.1.tgz#dd24e1ec529ae9ec8e87d8b15f0fc8f7e17f3d02" @@ -8391,6 +9794,13 @@ dependencies: "@smithy/types" "^3.1.0" +"@smithy/service-error-classification@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.2.tgz#ad7a0c8dfd482981a04d42fba24c7ee1ac2eb20b" + integrity sha512-cu0WV2XRttItsuXlcM0kq5MKdphbMMmSd2CXF122dJ75NrFE0o7rruXFGfxAp3BKzgF/DMxX+PllIA/cj4FHMw== + dependencies: + "@smithy/types" "^3.2.0" + "@smithy/shared-ini-file-loader@^2.3.1": version "2.3.1" resolved "https://registry.npmmirror.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.1.tgz#a2e28b4d85f8a8262a84403fa2b74a086b3a7703" @@ -8407,6 +9817,14 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/shared-ini-file-loader@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.2.tgz#b80f8b9b40841447219a95cb47f7a8f3f85b6467" + integrity sha512-tgnXrXbLMO8vo6VeuqabMw/eTzQHlLmZx0TC0TjtjJghnD0Xl4pEnJtBjTJr6XF5fHMNrt5BcczDXHJT9yNQnA== + dependencies: + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/signature-v4@^1.0.1": version "1.1.0" resolved "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-1.1.0.tgz#e85309995c2475d39598a4f56e68b7ed856bdfa6" @@ -8472,6 +9890,18 @@ "@smithy/util-stream" "^3.0.2" tslib "^2.6.2" +"@smithy/smithy-client@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.1.4.tgz#597a4b0d08c71ed7e66707df28871b8a3a707cce" + integrity sha512-y6xJROGrIoitjpwXLY7P9luDHvuT9jWpAluliuSFdBymFxcl6iyQjo9U/JhYfRHFNTruqsvKOrOESVuPGEcRmQ== + dependencies: + "@smithy/middleware-endpoint" "^3.0.3" + "@smithy/middleware-stack" "^3.0.2" + "@smithy/protocol-http" "^4.0.2" + "@smithy/types" "^3.2.0" + "@smithy/util-stream" "^3.0.4" + tslib "^2.6.2" + "@smithy/types@^1.2.0": version "1.2.0" resolved "https://registry.npmmirror.com/@smithy/types/-/types-1.2.0.tgz#9dc65767b0ee3d6681704fcc67665d6fc9b6a34e" @@ -8493,6 +9923,13 @@ dependencies: tslib "^2.6.2" +"@smithy/types@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.2.0.tgz#1350fe8a50d5e35e12ffb34be46d946860b2b5ab" + integrity sha512-cKyeKAPazZRVqm7QPvcPD2jEIt2wqDPAL1KJKb0f/5I7uhollvsWZuZKLclmyP6a+Jwmr3OV3t+X0pZUUHS9BA== + dependencies: + tslib "^2.6.2" + "@smithy/url-parser@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/url-parser/-/url-parser-2.1.1.tgz#a30de227b6734650d740b6dff74d488b874e85e3" @@ -8511,6 +9948,15 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/url-parser@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.2.tgz#a4d6f364a28d2b11c14d9486041ea8eb4572fc66" + integrity sha512-pRiPHrgibeAr4avtXDoBHmTLtthwA4l8jKYRfZjNgp+bBPyxDMPRg2TMJaYxqbKemvrOkHu9MIBTv2RkdNfD6w== + dependencies: + "@smithy/querystring-parser" "^3.0.2" + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/util-base64@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/util-base64/-/util-base64-2.1.1.tgz#af729085cc9d92ebd54a5d2c5d0aa5a0c31f83bf" @@ -8704,6 +10150,14 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/util-middleware@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.2.tgz#6daeb9db060552d851801cd7a0afd68769e2f98b" + integrity sha512-7WW5SD0XVrpfqljBYzS5rLR+EiDzl7wCVJZ9Lo6ChNFV4VYDk37Z1QI5w/LnYtU/QKnSawYoHRd7VjSyC8QRQQ== + dependencies: + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/util-retry@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/util-retry/-/util-retry-2.1.1.tgz#f2d3566b6e5b841028c7240c852007d4037e49b2" @@ -8722,6 +10176,15 @@ "@smithy/types" "^3.1.0" tslib "^2.6.2" +"@smithy/util-retry@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.2.tgz#073b4950f0379307e073a70afe086c52ec2b0329" + integrity sha512-HUVOb1k8p/IH6WFUjsLa+L9H1Zi/FAAB2CDOpWuffI1b2Txi6sknau8kNfC46Xrt39P1j2KDzCE1UlLa2eW5+A== + dependencies: + "@smithy/service-error-classification" "^3.0.2" + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + "@smithy/util-stream@^2.1.1": version "2.1.1" resolved "https://registry.npmmirror.com/@smithy/util-stream/-/util-stream-2.1.1.tgz#3ae0e88c3a1a45899e29c1655d2e5a3865b6c0a6" @@ -8750,6 +10213,20 @@ "@smithy/util-utf8" "^3.0.0" tslib "^2.6.2" +"@smithy/util-stream@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.0.4.tgz#7a33a39754d8a0737f30687953d8dcc05810e907" + integrity sha512-CcMioiaOOsEVdb09pS7ux1ij7QcQ2jE/cE1+iin1DXMeRgAEQN/47m7Xztu7KFQuQsj0A5YwB2UN45q97CqKCg== + dependencies: + "@smithy/fetch-http-handler" "^3.1.0" + "@smithy/node-http-handler" "^3.1.0" + "@smithy/types" "^3.2.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + "@smithy/util-uri-escape@^1.1.0": version "1.1.0" resolved "https://registry.npmmirror.com/@smithy/util-uri-escape/-/util-uri-escape-1.1.0.tgz#a8c5edaf19c0efdb9b51661e840549cf600a1808" @@ -8804,16 +10281,40 @@ "@smithy/types" "^2.9.1" tslib "^2.5.0" +"@smithy/util-waiter@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.1.0.tgz#7fa58fe91ddcf4a8bcf00c3d216f2cc14386da2a" + integrity sha512-5OVcC5ZcmmutY208ADY/l2eB4H4DVXs+hPUo/M1spF4/YEmF9DdLkfwBvohej2dIeVJayKY7hMlD0X8j3F3/Uw== + dependencies: + "@smithy/abort-controller" "^3.1.0" + "@smithy/types" "^3.2.0" + tslib "^2.6.2" + +"@spotify/eslint-config-base@^14.0.0": + version "14.1.6" + resolved "https://registry.yarnpkg.com/@spotify/eslint-config-base/-/eslint-config-base-14.1.6.tgz#249b25ef683884e12aa0d10fc2783d9361e2890a" + integrity sha512-pTctiCA/nrrIoBUd9jk+1AjJ9lqy9f5N85ctbSU5O5HW0/yIqJBUPH0+97+2/AOeSmnO5R2e9vSiwQwCZkXjig== + "@spotify/eslint-config-base@^15.0.0": version "15.0.0" resolved "https://registry.npmmirror.com/@spotify/eslint-config-base/-/eslint-config-base-15.0.0.tgz#fa8a003e656b1c14694528a487bb9e974e013e4d" integrity sha512-7UA5QWbb8xk3Q1665BkRldzieI/Of7ONzjEXZpoyIjrfBDEmlXEDdCmOsv8Pt2aOuzHSTiykMzn7wNF5ymGL/A== +"@spotify/eslint-config-react@^14.0.0": + version "14.1.6" + resolved "https://registry.yarnpkg.com/@spotify/eslint-config-react/-/eslint-config-react-14.1.6.tgz#3aa134e336f1e4cb298a55e4114d5cbd2abd6b46" + integrity sha512-WguVK3HuVy4ZYyN8Gojef34OeTLZwLzd3Dk3kaCbL4pjWJ5fJfT2epe6N4PfC5W358OuPG12X3s3CYVCQsUDfg== + "@spotify/eslint-config-react@^15.0.0": version "15.0.0" resolved "https://registry.npmmirror.com/@spotify/eslint-config-react/-/eslint-config-react-15.0.0.tgz#5f3bba8ea2120eda16eed9f38d093a49e42b7b68" integrity sha512-TgYLvOb0RvniWbJ3dz0Skh/AMRpkJU7aNnUfHIaEvXziVQYUrRAuMwNvCCjeCfR9FkeImuORsyBobZhgsfjrZQ== +"@spotify/eslint-config-typescript@^14.0.0": + version "14.1.6" + resolved "https://registry.yarnpkg.com/@spotify/eslint-config-typescript/-/eslint-config-typescript-14.1.6.tgz#dffaf2eeffd0c879605497c3d6ab275d02053db1" + integrity sha512-7TbP8nywFUMu73nNTv0NzCmmgNFvGWlRMFZ7lCiFS+UOmfyaiYpJXUHLXXmNQ+qB8/PMrtaznvCIYmus9tqI9Q== + "@spotify/eslint-config-typescript@^15.0.0": version "15.0.0" resolved "https://registry.npmmirror.com/@spotify/eslint-config-typescript/-/eslint-config-typescript-15.0.0.tgz#b1857a76951df6e2cc4a1e92d98e7fd4f5a4baec" @@ -9902,7 +11403,7 @@ "@types/connect" "*" "@types/node" "*" -"@types/bonjour@^3.5.13": +"@types/bonjour@^3.5.13", "@types/bonjour@^3.5.9": version "3.5.13" resolved "https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== @@ -9943,7 +11444,7 @@ dependencies: "@types/tern" "*" -"@types/connect-history-api-fallback@^1.5.4": +"@types/connect-history-api-fallback@^1.3.5", "@types/connect-history-api-fallback@^1.5.4": version "1.5.4" resolved "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== @@ -9963,6 +11464,11 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== +"@types/cookiejar@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.5.tgz#14a3e83fa641beb169a2dd8422d91c3c345a9a78" + integrity sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q== + "@types/cors@^2.8.6": version "2.8.17" resolved "https://registry.npmmirror.com/@types/cors/-/cors-2.8.17.tgz#5d718a5e494a8166f569d986794e49c48b216b2b" @@ -10046,7 +11552,7 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@*", "@types/express@^4.17.14", "@types/express@^4.17.17", "@types/express@^4.17.21", "@types/express@^4.17.6": +"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.14", "@types/express@^4.17.17", "@types/express@^4.17.21", "@types/express@^4.17.6": version "4.17.21" resolved "https://registry.npmmirror.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -10232,6 +11738,11 @@ dependencies: "@types/unist" "^2" +"@types/methods@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@types/methods/-/methods-1.1.4.tgz#d3b7ac30ac47c91054ea951ce9eed07b1051e547" + integrity sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ== + "@types/mime@*": version "3.0.4" resolved "https://registry.npmmirror.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" @@ -10373,20 +11884,13 @@ resolved "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-dom@*", "@types/react-dom@^18.0.0": +"@types/react-dom@*", "@types/react-dom@<18.0.0", "@types/react-dom@^18", "@types/react-dom@^18.0.0": version "18.3.0" - resolved "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== dependencies: "@types/react" "*" -"@types/react-dom@<18.0.0": - version "17.0.25" - resolved "https://registry.npmmirror.com/@types/react-dom/-/react-dom-17.0.25.tgz#e0e5b3571e1069625b3a3da2b279379aa33a0cb5" - integrity sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA== - dependencies: - "@types/react" "^17" - "@types/react-redux@^7.1.20": version "7.1.33" resolved "https://registry.npmmirror.com/@types/react-redux/-/react-redux-7.1.33.tgz#53c5564f03f1ded90904e3c90f77e4bd4dc20b15" @@ -10418,23 +11922,14 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.13.1 || ^17.0.0 || ^18.0.0": +"@types/react@*", "@types/react@^16.13.1 || ^17.0.0", "@types/react@^16.13.1 || ^17.0.0 || ^18.0.0", "@types/react@^18": version "18.3.3" - resolved "https://registry.npmmirror.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== dependencies: "@types/prop-types" "*" csstype "^3.0.2" -"@types/react@^16.13.1 || ^17.0.0", "@types/react@^17": - version "17.0.80" - resolved "https://registry.npmmirror.com/@types/react/-/react-17.0.80.tgz#a5dfc351d6a41257eb592d73d3a85d3b7dbcbb41" - integrity sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "^0.16" - csstype "^3.0.2" - "@types/request@^2.47.1", "@types/request@^2.48.8": version "2.48.12" resolved "https://registry.npmmirror.com/@types/request/-/request-2.48.12.tgz#0f590f615a10f87da18e9790ac94c29ec4c5ef30" @@ -10457,6 +11952,11 @@ dependencies: "@types/node" "*" +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + "@types/retry@0.12.2": version "0.12.2" resolved "https://registry.npmmirror.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" @@ -10467,11 +11967,6 @@ resolved "https://registry.npmmirror.com/@types/sarif/-/sarif-2.1.7.tgz#dab4d16ba7568e9846c454a8764f33c5d98e5524" integrity sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ== -"@types/scheduler@^0.16": - version "0.16.8" - resolved "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" - integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== - "@types/semver@^7.3.12", "@types/semver@^7.5.0": version "7.5.6" resolved "https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" @@ -10485,7 +11980,7 @@ "@types/mime" "^1" "@types/node" "*" -"@types/serve-index@^1.9.4": +"@types/serve-index@^1.9.1", "@types/serve-index@^1.9.4": version "1.9.4" resolved "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== @@ -10501,7 +11996,7 @@ "@types/mime" "*" "@types/node" "*" -"@types/serve-static@^1.15.5": +"@types/serve-static@^1.13.10", "@types/serve-static@^1.15.5": version "1.15.7" resolved "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== @@ -10517,7 +12012,7 @@ dependencies: "@types/node" "*" -"@types/sockjs@^0.3.36": +"@types/sockjs@^0.3.33", "@types/sockjs@^0.3.36": version "0.3.36" resolved "https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== @@ -10543,6 +12038,22 @@ dependencies: "@types/react" "*" +"@types/superagent@*": + version "8.1.7" + resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-8.1.7.tgz#1153819ed4db34427409a1cc58f3e2f13eeec862" + integrity sha512-NmIsd0Yj4DDhftfWvvAku482PZum4DBW7U51OvS8gvOkDDY0WT1jsVyDV3hK+vplrsYw8oDwi9QxOM7U68iwww== + dependencies: + "@types/cookiejar" "^2.1.5" + "@types/methods" "^1.1.4" + "@types/node" "*" + +"@types/supertest@^2.0.12": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@types/supertest/-/supertest-2.0.16.tgz#7a1294edebecb960d957bbe9b26002a2b7f21cd7" + integrity sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg== + dependencies: + "@types/superagent" "*" + "@types/tern@*": version "0.23.9" resolved "https://registry.npmmirror.com/@types/tern/-/tern-0.23.9.tgz#6f6093a4a9af3e6bb8dde528e024924d196b367c" @@ -10599,7 +12110,7 @@ resolved "https://registry.npmmirror.com/@types/webpack-env/-/webpack-env-1.18.4.tgz#62879b0a9c653f9b1172d403b882f2045ecce032" integrity sha512-I6e+9+HtWADAWeeJWDFQtdk4EVSAbj6Rtz4q8fJ7mSr1M0jzlFcs8/HZ+Xb5SHzVm1dxH7aUiI+A8kA8Gcrm0A== -"@types/ws@^8.0.0", "@types/ws@^8.5.10", "@types/ws@^8.5.3": +"@types/ws@^8.0.0", "@types/ws@^8.5.10", "@types/ws@^8.5.3", "@types/ws@^8.5.5": version "8.5.10" resolved "https://registry.npmmirror.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== @@ -11013,6 +12524,14 @@ js-yaml "^3.10.0" tslib "^2.4.0" +"@yarnpkg/parsers@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.2.tgz#48a1517a0f49124827f4c37c284a689c607b2f32" + integrity sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA== + dependencies: + js-yaml "^3.10.0" + tslib "^2.4.0" + "@yarnpkg/parsers@^3.0.0-rc.4": version "3.0.0" resolved "https://registry.npmmirror.com/@yarnpkg/parsers/-/parsers-3.0.0.tgz#a43136f094bca5dcc1ae784c296446a85211cc62" @@ -11339,6 +12858,7 @@ anymatch@^3.0.3, anymatch@~3.1.2: "@internal/plugin-apache-spark" "^0.1.0" "@internal/plugin-argo-workflows" "^0.1.0" "@internal/plugin-cnoe-ui" "^0.1.0" + "@internal/plugin-terraform" "^0.1.0" "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" "@roadiehq/backstage-plugin-argo-cd" "^2.5.1" @@ -11544,7 +13064,7 @@ arrify@^2.0.0, arrify@^2.0.1: resolved "https://registry.npmmirror.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asap@^2.0.3: +asap@^2.0.0, asap@^2.0.3: version "2.0.6" resolved "https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== @@ -11990,7 +13510,7 @@ body-parser@1.20.2: type-is "~1.6.18" unpipe "1.0.0" -bonjour-service@^1.2.1: +bonjour-service@^1.0.11, bonjour-service@^1.2.1: version "1.2.1" resolved "https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== @@ -12321,6 +13841,17 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: get-intrinsic "^1.2.1" set-function-length "^1.1.1" +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + call-me-maybe@^1.0.1: version "1.0.2" resolved "https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" @@ -12850,6 +14381,11 @@ compare-versions@4.1.4: resolved "https://registry.npmmirror.com/compare-versions/-/compare-versions-4.1.4.tgz#3571f4d610924d4414846a4183d386c8f3d51112" integrity sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw== +component-emitter@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + compress-commons@^5.0.1: version "5.0.1" resolved "https://registry.npmmirror.com/compress-commons/-/compress-commons-5.0.1.tgz#e46723ebbab41b50309b27a0e0f6f3baed2d6590" @@ -13133,6 +14669,11 @@ cookie@^0.4.2: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookiejar@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" + integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== + copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1: version "3.3.3" resolved "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" @@ -13835,6 +15376,15 @@ define-data-property@^1.0.1, define-data-property@^1.1.0, define-data-property@^ gopd "^1.0.1" has-property-descriptors "^1.0.0" +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@^2.0.0: version "2.0.0" resolved "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -13869,7 +15419,7 @@ delegates@^1.0.0: resolved "https://registry.npmmirror.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -denque@^2.1.0: +denque@^2.0.1, denque@^2.1.0: version "2.1.0" resolved "https://registry.npmmirror.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== @@ -13950,6 +15500,14 @@ detect-port-alt@^1.1.6: address "^1.0.1" debug "^2.6.0" +dezalgo@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== + dependencies: + asap "^2.0.0" + wrappy "1" + diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -14418,6 +15976,18 @@ es-aggregate-error@^1.0.7: has-property-descriptors "^1.0.0" set-function-name "^2.0.1" +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +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.npmmirror.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" @@ -14453,6 +16023,11 @@ es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15: iterator.prototype "^1.1.2" safe-array-concat "^1.0.1" +es-module-lexer@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + es-module-lexer@^1.2.1: version "1.4.1" resolved "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" @@ -14532,6 +16107,35 @@ esbuild@^0.20.0: "@esbuild/win32-ia32" "0.20.2" "@esbuild/win32-x64" "0.20.2" +esbuild@~0.21.4: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -15177,7 +16781,7 @@ fast-redact@^2.0.0: resolved "https://registry.npmmirror.com/fast-redact/-/fast-redact-2.1.0.tgz#dfe3c1ca69367fb226f110aa4ec10ec85462ffdf" integrity sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A== -fast-safe-stringify@2.1.1, fast-safe-stringify@^2.0.6, fast-safe-stringify@^2.0.7: +fast-safe-stringify@2.1.1, fast-safe-stringify@^2.0.6, fast-safe-stringify@^2.0.7, fast-safe-stringify@^2.1.1: version "2.1.1" resolved "https://registry.npmmirror.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== @@ -15234,6 +16838,13 @@ fb-watchman@^2.0.0: 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" + fecha@^4.2.0: version "4.2.3" resolved "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" @@ -15493,6 +17104,16 @@ format@^0.2.0: resolved "https://registry.npmmirror.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== +formidable@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.1.2.tgz#fa973a2bec150e4ce7cac15589d7a25fc30ebd89" + integrity sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g== + dependencies: + dezalgo "^1.0.4" + hexoid "^1.0.0" + once "^1.4.0" + qs "^6.11.0" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -15614,7 +17235,7 @@ fsevents@2.3.2: resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -15710,6 +17331,17 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" +get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-nonce@^1.0.0: version "1.0.1" resolved "https://registry.npmmirror.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" @@ -15760,7 +17392,7 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -get-tsconfig@^4.7.0: +get-tsconfig@^4.7.0, get-tsconfig@^4.7.5: version "4.7.5" resolved "https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.7.5.tgz#5e012498579e9a6947511ed0cd403272c7acbbaf" integrity sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw== @@ -15826,6 +17458,13 @@ git-url-parse@13.1.0: dependencies: git-up "^7.0.0" +git-url-parse@^13.0.0: + version "13.1.1" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.1.tgz#664bddf0857c6a75b3c1f0ae6239abb08a1486d4" + integrity sha512-PCFJyeSSdtnbfhSNRw9Wk96dDCNx+sogTe4YNXeXSJxt7xz5hvXekuRn9JX7m+Mf4OscCu8h+mtAl3+h5Fo8lQ== + dependencies: + git-up "^7.0.0" + git-url-parse@^14.0.0: version "14.0.0" resolved "https://registry.npmmirror.com/git-url-parse/-/git-url-parse-14.0.0.tgz#18ce834726d5fbca0c25a4555101aa277017418f" @@ -15876,7 +17515,7 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.2.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: +glob@7.2.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: version "7.2.3" resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -16198,6 +17837,13 @@ has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: dependencies: get-intrinsic "^1.2.2" +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.0.1: version "1.0.1" resolved "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" @@ -16280,6 +17926,11 @@ helmet@^6.0.0: resolved "https://registry.npmmirror.com/helmet/-/helmet-6.2.0.tgz#c29d62014be4c70b8ef092c9c5e54c8c26b8e16e" integrity sha512-DWlwuXLLqbrIOltR6tFQXShj/+7Cyp0gLi6uAb8qMdFh/YBBFbKSgQ6nbXmScYd8emMctuthmgIa7tUfo9Rtyg== +hexoid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" + integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== + hey-listen@^1.0.8: version "1.0.8" resolved "https://registry.npmmirror.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" @@ -16378,7 +18029,7 @@ html-entities@^2.1.0: resolved "https://registry.npmmirror.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== -html-entities@^2.4.0: +html-entities@^2.3.2, html-entities@^2.4.0: version "2.5.2" resolved "https://registry.npmmirror.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== @@ -16841,7 +18492,7 @@ ipaddr.js@1.9.1: resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.1.0: +ipaddr.js@^2.0.1, ipaddr.js@^2.1.0: version "2.2.0" resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== @@ -17836,11 +19487,21 @@ jose@^4.15.5: resolved "https://registry.npmmirror.com/jose/-/jose-4.15.5.tgz#6475d0f467ecd3c630a1b5dadd2735a7288df706" integrity sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg== +jose@^4.6.0: + version "4.15.7" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.7.tgz#96ad68d786632bd03c9068aa281810dbbe1b60d8" + integrity sha512-L7ioP+JAuZe8v+T5+zVI9Tx8LtU8BL7NxkyDFVMv+Qr3JW0jSoYDedLtodaXwfqMpeCyx4WXFNyu9tJt4WvC1A== + jose@^5.0.0: version "5.4.0" resolved "https://registry.npmmirror.com/jose/-/jose-5.4.0.tgz#4f6c2357e7b3cd4bc10ec65bb29e677d7adfbc84" integrity sha512-6rpxTHPAQyWMb9A35BroFl1Sp0ST3DpPcm5EVIxZxdH+e0Hv9fwhyB3XLKFUcHNpdSDnETmBfuPPTTlYz5+USw== +joycon@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" + integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + js-base64@^3.6.0: version "3.7.6" resolved "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.6.tgz#6ccb5d761b48381fd819f9ce04998866dbcbbc99" @@ -18102,7 +19763,7 @@ jsonc-parser@3.2.0: resolved "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== -jsonc-parser@^3.2.0: +jsonc-parser@^3.0.0, jsonc-parser@^3.2.0: version "3.2.1" resolved "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== @@ -18398,6 +20059,14 @@ language-tags@^1.0.9: dependencies: language-subtag-registry "^0.3.20" +launch-editor@^2.6.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.8.0.tgz#7255d90bdba414448e2138faa770a74f28451305" + integrity sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + launch-editor@^2.6.1: version "2.6.1" resolved "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" @@ -18821,6 +20490,11 @@ logform@^2.3.2, logform@^2.4.0: safe-stable-stringify "^2.3.1" triple-beam "^1.3.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== + long@^5.0.0, long@^5.2.1: version "5.2.3" resolved "https://registry.npmmirror.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" @@ -18912,6 +20586,13 @@ lz-string@^1.5.0: resolved "https://registry.npmmirror.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== +magic-string@^0.26.6: + version "0.26.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" + integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== + dependencies: + sourcemap-codec "^1.4.8" + magic-string@^0.30.10: version "0.30.10" resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" @@ -19223,7 +20904,7 @@ media-typer@^1.1.0: resolved "https://registry.npmmirror.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== -memfs@^3.1.2, memfs@^3.4.1: +memfs@^3.1.2, memfs@^3.4.1, memfs@^3.4.3: version "3.6.0" resolved "https://registry.npmmirror.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== @@ -19287,7 +20968,7 @@ meros@^1.1.4, meros@^1.2.1: resolved "https://registry.npmmirror.com/meros/-/meros-1.3.0.tgz#c617d2092739d55286bf618129280f362e6242f2" integrity sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w== -methods@^1.0.0, methods@~1.1.2: +methods@^1.0.0, methods@^1.1.2, methods@~1.1.2: version "1.1.2" resolved "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== @@ -19598,6 +21279,11 @@ mime@1.6.0: resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + mime@^3.0.0: version "3.0.0" resolved "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" @@ -19675,7 +21361,7 @@ minimatch@^4.2.3: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@^5.1.0: +minimatch@^5.0.0, minimatch@^5.0.1, minimatch@^5.1.0, minimatch@^5.1.1: version "5.1.6" resolved "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== @@ -19959,6 +21645,20 @@ mute-stream@~1.0.0: resolved "https://registry.npmmirror.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== +mysql2@^2.2.5: + version "2.3.3" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.3.3.tgz#944f3deca4b16629052ff8614fbf89d5552545a0" + integrity sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA== + dependencies: + denque "^2.0.1" + generate-function "^2.3.1" + iconv-lite "^0.6.3" + long "^4.0.0" + lru-cache "^6.0.0" + named-placeholders "^1.1.2" + seq-queue "^0.0.5" + sqlstring "^2.3.2" + mysql2@^3.0.0: version "3.10.0" resolved "https://registry.npmmirror.com/mysql2/-/mysql2-3.10.0.tgz#5109449fda3dc03fb7d6bdf2cf91f97477081987" @@ -19982,7 +21682,7 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -named-placeholders@^1.1.3: +named-placeholders@^1.1.2, named-placeholders@^1.1.3: version "1.1.3" resolved "https://registry.npmmirror.com/named-placeholders/-/named-placeholders-1.1.3.tgz#df595799a36654da55dda6152ba7a137ad1d9351" integrity sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w== @@ -20668,7 +22368,7 @@ open@^7.4.2: is-docker "^2.0.0" is-wsl "^2.1.1" -open@^8.0.0, open@^8.4.0: +open@^8.0.0, open@^8.0.9, open@^8.4.0: version "8.4.2" resolved "https://registry.npmmirror.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== @@ -20881,6 +22581,14 @@ p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0: resolved "https://registry.npmmirror.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + p-retry@^6.2.0: version "6.2.0" resolved "https://registry.npmmirror.com/p-retry/-/p-retry-6.2.0.tgz#8d6df01af298750009691ce2f9b3ad2d5968f3bd" @@ -20948,6 +22656,11 @@ pako@^1.0.10, pako@~1.0.2, pako@~1.0.5: resolved "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +pako@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + param-case@^3.0.4: version "3.0.4" resolved "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -22082,6 +23795,13 @@ qs@^6.10.1, qs@^6.10.2, qs@^6.11.2, qs@^6.9.1, qs@^6.9.4: dependencies: side-channel "^1.0.4" +qs@^6.11.0: + version "6.12.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== + dependencies: + side-channel "^1.0.6" + qs@~6.5.2: version "6.5.3" resolved "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" @@ -22906,6 +24626,15 @@ repeat-string@^1.5.2: resolved "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== +replace-in-file@^6.0.0: + version "6.3.5" + resolved "https://registry.yarnpkg.com/replace-in-file/-/replace-in-file-6.3.5.tgz#ff956b0ab5bc96613207d603d197cd209400a654" + integrity sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg== + dependencies: + chalk "^4.1.2" + glob "^7.2.0" + yargs "^17.2.1" + replace-in-file@^7.1.0: version "7.2.0" resolved "https://registry.npmmirror.com/replace-in-file/-/replace-in-file-7.2.0.tgz#bd66f97202ae2196fc9126d3bceab1dda68b7cc2" @@ -23125,6 +24854,15 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" +rollup-plugin-dts@^4.0.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-4.2.3.tgz#04c3615df1ffab4228aa9d540697eaca61e01f47" + integrity sha512-jlcpItqM2efqfIiKzDB/IKOS9E9fDvbkJSGw5GtK/PqPGS9eC3R3JKyw2VvpTktZA+TNgJRMu1NTv244aTUzzQ== + dependencies: + magic-string "^0.26.6" + optionalDependencies: + "@babel/code-frame" "^7.18.6" + rollup-plugin-dts@^6.1.0: version "6.1.1" resolved "https://registry.npmmirror.com/rollup-plugin-dts/-/rollup-plugin-dts-6.1.1.tgz#46b33f4d1d7f4e66f1171ced9b282ac11a15a254" @@ -23134,6 +24872,17 @@ rollup-plugin-dts@^6.1.0: optionalDependencies: "@babel/code-frame" "^7.24.2" +rollup-plugin-esbuild@^4.7.2: + version "4.10.3" + resolved "https://registry.yarnpkg.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.10.3.tgz#caa66a99b53b21d4939beffc611d76f57191c4cb" + integrity sha512-RILwUCgnCL5vo8vyZ/ZpwcqRuE5KmLizEv6BujBQfgXFZ6ggcS0FiYvQN+gsTJfWCMaU37l0Fosh4eEufyO97Q== + dependencies: + "@rollup/pluginutils" "^4.1.1" + debug "^4.3.3" + es-module-lexer "^0.9.3" + joycon "^3.0.1" + jsonc-parser "^3.0.0" + rollup-plugin-esbuild@^6.1.1: version "6.1.1" resolved "https://registry.npmmirror.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.1.1.tgz#ec1dba647dbe1974f76192c75e907aa6eb636399" @@ -23170,6 +24919,13 @@ rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" +rollup@^2.60.2: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + rollup@^4.0.0: version "4.18.0" resolved "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda" @@ -23365,7 +25121,7 @@ select-hose@^2.0.0: resolved "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== -selfsigned@^2.0.0, selfsigned@^2.4.1: +selfsigned@^2.0.0, selfsigned@^2.1.1, selfsigned@^2.4.1: version "2.4.1" resolved "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== @@ -23491,6 +25247,18 @@ set-function-length@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.1" +set-function-length@^1.2.1: + 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.0, set-function-name@^2.0.1: version "2.0.1" resolved "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" @@ -23574,6 +25342,16 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" +side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + signal-exit@3.0.7, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" @@ -23744,6 +25522,11 @@ source-map@^0.7.3: resolved "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + space-separated-tokens@^1.0.0: version "1.1.5" resolved "https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" @@ -24294,6 +26077,30 @@ sucrase@^3.20.2: pirates "^4.0.1" ts-interface-checker "^0.1.9" +superagent@^8.1.2: + version "8.1.2" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-8.1.2.tgz#03cb7da3ec8b32472c9d20f6c2a57c7f3765f30b" + integrity sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA== + dependencies: + component-emitter "^1.3.0" + cookiejar "^2.1.4" + debug "^4.3.4" + fast-safe-stringify "^2.1.1" + form-data "^4.0.0" + formidable "^2.1.2" + methods "^1.1.2" + mime "2.6.0" + qs "^6.11.0" + semver "^7.3.8" + +supertest@^6.2.4: + version "6.3.4" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-6.3.4.tgz#2145c250570c2ea5d337db3552dbfb78a2286218" + integrity sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw== + dependencies: + methods "^1.1.2" + superagent "^8.1.2" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -24901,6 +26708,16 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" +tsx@^4.0.0: + version "4.15.6" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.15.6.tgz#4522ed093f7fa54f031a7a999274e8b35dbf3165" + integrity sha512-is0VQQlfNZRHEuSSTKA6m4xw74IU4AizmuB6lAYLRt9XtuyeQnyJYexhNZOPCB59SqC4JzmSzPnHGBXxf3k0hA== + dependencies: + esbuild "~0.21.4" + get-tsconfig "^4.7.5" + optionalDependencies: + fsevents "~2.3.3" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -25698,6 +27515,17 @@ webidl-conversions@^7.0.0: resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + webpack-dev-middleware@^7.1.0: version "7.2.1" resolved "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-7.2.1.tgz#2af00538b6e4eda05f5afdd5d711dbebc05958f7" @@ -25710,6 +27538,42 @@ webpack-dev-middleware@^7.1.0: range-parser "^1.2.1" schema-utils "^4.0.0" +webpack-dev-server@^4.7.3: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" + webpack-dev-server@^5.0.0: version "5.0.4" resolved "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz#cb6ea47ff796b9251ec49a94f24a425e12e3c9b8" @@ -26247,7 +28111,7 @@ yargs@16.2.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.1.1, yargs@^17.3.1, yargs@^17.6.2, yargs@^17.7.2: +yargs@^17.1.1, yargs@^17.2.1, yargs@^17.3.1, yargs@^17.6.2, yargs@^17.7.2: version "17.7.2" resolved "https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -26260,6 +28124,14 @@ yargs@^17.1.1, yargs@^17.3.1, yargs@^17.6.2, yargs@^17.7.2: 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" + yauzl@^3.0.0: version "3.1.3" resolved "https://registry.npmmirror.com/yauzl/-/yauzl-3.1.3.tgz#f61c17ad1a09403bc7adb01dfb302a9e74bf4a50"