diff --git a/.clabot b/.clabot index 60effe2..4518abe 100644 --- a/.clabot +++ b/.clabot @@ -1,3 +1,3 @@ { - "contributors": ["aarlaud","punkle", "nicolasarnold12321","snyk-bot","erikvanbrakel","lili2311","silthus","nnillni","roshick"] + "contributors": ["aarlaud","punkle", "nicolasarnold12321","snyk-bot","erikvanbrakel","lili2311","silthus","nnillni","roshick","SnykOleg","stefanbuck-snyk"] } diff --git a/backstage.json b/backstage.json index 574f959..61f204c 100644 --- a/backstage.json +++ b/backstage.json @@ -1,3 +1,3 @@ { - "version": "1.22.2" + "version": "1.25.0" } diff --git a/package.json b/package.json index 97d65db..29aaa7c 100644 --- a/package.json +++ b/package.json @@ -10,13 +10,13 @@ }, "scripts": { "build": "yarn tsc", - "test": "snyk test" + "test": "backstage-cli test" }, "dependencies": { - "@backstage/catalog-model": "^1.4.3", - "@backstage/core-components": "^0.13.10", - "@backstage/core-plugin-api": "^1.8.2", - "@backstage/plugin-catalog-react": "^1.9.3", + "@backstage/catalog-model": "^1.4.5", + "@backstage/core-components": "^0.14.3", + "@backstage/core-plugin-api": "^1.9.1", + "@backstage/plugin-catalog-react": "^1.11.2", "@material-ui/icons": "4.11.3", "@material-ui/lab": "4.0.0-alpha.61", "@snyk/dep-graph": "2.8.1", @@ -25,8 +25,9 @@ "react-use": "^17.4.0" }, "devDependencies": { - "@backstage/cli": "^0.25.1", - "@backstage/dev-utils": "^1.0.26", + "@backstage/cli": "^0.26.2", + "@backstage/dev-utils": "^1.0.30", + "@backstage/test-utils": "^1.5.3", "@testing-library/jest-dom": "^6.1.4", "@testing-library/react": "^14.2.0", "@testing-library/user-event": "^14.5.1", diff --git a/src/api/SnykApiClient.test.ts b/src/api/SnykApiClient.test.ts new file mode 100644 index 0000000..e983f9b --- /dev/null +++ b/src/api/SnykApiClient.test.ts @@ -0,0 +1,21 @@ +import { SnykApiClient } from './index'; +import {MockConfigApi, MockFetchApi} from "@backstage/test-utils"; +import { UrlPatternDiscovery } from '@backstage/core-app-api'; + +const EXAMPLE_ORG_ID = '361fd3c0-41d4-4ea4-ba77-09bb17890967'; + +describe('SnykApiClient', () => { + const mockBaseUrl = 'http://localhost:3000'; + const configApi = new MockConfigApi({ 'snyk.mocked': false }); + const discoveryApi = UrlPatternDiscovery.compile(mockBaseUrl); + const fetchApi = new MockFetchApi({}); + const snykApiClient = new SnykApiClient({ discoveryApi, configApi, fetchApi }); + describe('getCompleteProjectsListFromAnnotations', () => { + describe('when there are no annotations', () => { + it('should return an empty array', async () => { + const result = await snykApiClient.getCompleteProjectsListFromAnnotations(EXAMPLE_ORG_ID, {}); + expect(result).toEqual([]); + }); + }); + }); +}); \ No newline at end of file diff --git a/src/api/SnykApiClient.ts b/src/api/SnykApiClient.ts new file mode 100644 index 0000000..1269beb --- /dev/null +++ b/src/api/SnykApiClient.ts @@ -0,0 +1,474 @@ +import { + ApiRef, + ConfigApi, + createApiRef, + DiscoveryApi, + FetchApi +} from "@backstage/core-plugin-api"; +import { ResponseError } from '@backstage/errors'; +import { TargetData } from "../types/targetsTypes"; +import { OrgData } from "../types/orgsTypes"; +import { ProjectsData } from "../types/projectsTypes"; +import { + SNYK_ANNOTATION_TARGETID, + SNYK_ANNOTATION_TARGETNAME, + SNYK_ANNOTATION_TARGETS, + SNYK_ANNOTATION_PROJECTIDS, + SNYK_ANNOTATION_EXCLUDE_PROJECTIDS, + SNYK_ANNOTATION_ORG, + SNYK_ANNOTATION_ORGS, +} from "../config"; +import { mockedProjects } from "../utils/mockedProjects"; +import { mockedIssues } from "../utils/mockedIssues"; +import { Entity } from "@backstage/catalog-model"; +import { mockedDepGraphs } from "../utils/mockedDepGraphs"; +import { mockedProjectDetails } from "../utils/mockedProjectDetails"; +import { IssuesCount } from "../types/types"; +import { Issue } from "../types/unifiedIssuesTypes"; +const DEFAULT_PROXY_PATH_BASE = ""; + +type Options = { + discoveryApi: DiscoveryApi; + /** + * Path to use for requests via the proxy, defaults to '' + */ + proxyPathBase?: string; + configApi: ConfigApi; + fetchApi: FetchApi; +}; +export const snykApiRef: ApiRef = createApiRef({ + id: "plugin.snyk.service", +}); + +export interface SnykApi { + listAllAggregatedIssues(orgName: string, projectId: string): Promise; + + getProjectDetails(orgName: string, projectId: string): Promise; + + getCompleteProjectsListFromAnnotations( + orgId: string, + annotations: Record, + ignoreMissingTargets: boolean + ): Promise; + + getDependencyGraph(orgName: string, projectId: string): Promise; + + getSnykAppHost(): string; + + getSnykApiVersion(): string; + + getSnykIssuesApiVersion(): string; + + getOrgSlug(orgId: string): Promise; + + isMocked(): boolean; + + isAvailableInEntity(entity: Entity): boolean; + + isShowResolvedInGraphs(entity: Entity): boolean; + + getIssuesCount(issues: Array): IssuesCount; + + getIgnoredIssuesCount(issues: Array): IssuesCount; +} + +export class SnykApiClient implements SnykApi { + private readonly discoveryApi: DiscoveryApi; + private readonly proxyPathBase: string; + private readonly configApi: ConfigApi; + private readonly fetchApi: FetchApi; + + private headers = { + "Content-Type": "application/json", + "User-Agent": "tech-services/backstage-plugin/1.0", + }; + + constructor(options: Options) { + this.discoveryApi = options.discoveryApi; + this.configApi = options.configApi; + this.proxyPathBase = options.proxyPathBase ?? DEFAULT_PROXY_PATH_BASE; + this.fetchApi = options.fetchApi; + } + + private async getApiUrl() { + const baseUrl = await this.discoveryApi.getBaseUrl("proxy"); + return `${baseUrl}${this.proxyPathBase}/snyk`; + } + + private async fetch( + path: string, + method: string, + isV3 = true, + ) { + const headers: HeadersInit = this.headers; + if (isV3) { + headers['Content-Type'] = 'application/vnd.api+json'; + } + const requestInit = { + headers, + method, + }; + const resp = await this.fetchApi.fetch(path, requestInit); + if (!resp.ok) { + throw await ResponseError.fromResponse(resp); + } + return resp; + } + + getSnykAppHost() { + const appHost = + this.configApi.getOptionalString("snyk.AppHost") ?? + this.configApi.getOptionalString("snyk.appHost"); + return appHost ?? "app.snyk.io"; + } + + isMocked(): boolean { + return this.configApi.getOptionalBoolean("snyk.mocked") ?? false; + } + + isShowResolvedInGraphs(): boolean { + return ( + this.configApi.getOptionalBoolean("snyk.showResolvedInGraphs") ?? false + ); + } + + getSnykApiVersion(): string { + return ( + this.configApi.getOptionalString("snyk.apiVersion") ?? "2024-02-28" + ); + } + getSnykIssuesApiVersion(): string { + return ( + this.configApi.getOptionalString("snyk.issueApiVersion") ?? "2024-01-23" + ); + } + + isAvailableInEntity(entity: Entity): boolean { + return ( + this.isMocked() || + ((Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_ORG]) || + Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_ORGS])) && + (Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_TARGETNAME]) || + Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_TARGETID]) || + Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_TARGETS]) || + Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_PROJECTIDS]))) + ); + } + + getIssuesCount = (issues: Array): IssuesCount => { + const criticalSevCount = issues.filter( + (issue) => + issue.attributes.effective_severity_level === "critical" && + !issue.attributes.ignored && + (issue.attributes.status !== "resolved" || + this.isShowResolvedInGraphs()) + ).length; + const highSevCount = issues.filter( + (issue) => + issue.attributes.effective_severity_level === "high" && + !issue.attributes.ignored && + (issue.attributes.status !== "resolved" || + this.isShowResolvedInGraphs()) + ).length; + const mediumSevCount = issues.filter( + (issue) => + issue.attributes.effective_severity_level === "medium" && + !issue.attributes.ignored && + (issue.attributes.status !== "resolved" || + this.isShowResolvedInGraphs()) + ).length; + const lowSevCount = issues.filter( + (issue) => + issue.attributes.effective_severity_level === "low" && + !issue.attributes.ignored && + (issue.attributes.status !== "resolved" || + this.isShowResolvedInGraphs()) + ).length; + + return { + critical: criticalSevCount, + high: highSevCount, + medium: mediumSevCount, + low: lowSevCount, + }; + }; + + getIgnoredIssuesCount = (issues: Array): IssuesCount => { + const criticalSevCount = issues.filter( + (issue) => + issue.attributes.effective_severity_level === "critical" && + issue.attributes.ignored && + (issue.attributes.status !== "resolved" || + this.isShowResolvedInGraphs()) + ).length; + const highSevCount = issues.filter( + (issue) => + issue.attributes.effective_severity_level === "high" && + issue.attributes.ignored && + (issue.attributes.status !== "resolved" || + this.isShowResolvedInGraphs()) + ).length; + const mediumSevCount = issues.filter( + (issue) => + issue.attributes.effective_severity_level === "medium" && + issue.attributes.ignored && + (issue.attributes.status !== "resolved" || + this.isShowResolvedInGraphs()) + ).length; + const lowSevCount = issues.filter( + (issue) => + issue.attributes.effective_severity_level === "low" && + issue.attributes.ignored && + (issue.attributes.status !== "resolved" || + this.isShowResolvedInGraphs()) + ).length; + + return { + critical: criticalSevCount, + high: highSevCount, + medium: mediumSevCount, + low: lowSevCount, + }; + }; + + async listAllAggregatedIssues(orgId: string, projectId: string) { + if (this.isMocked()) { + await new Promise((resolve) => setTimeout(resolve, 500)); + return mockedIssues[projectId]; + } + + const backendBaseUrl = await this.getApiUrl(); + const v3Headers = this.headers; + const version = this.getSnykIssuesApiVersion(); + v3Headers["Content-Type"] = "application/vnd.api+json"; + const apiUrl = `${backendBaseUrl}/rest/orgs/${orgId}/issues?version=${version}&scan_item.id=${projectId}&scan_item.type=project&limit=100`; + const response = await this.fetch(`${apiUrl}`, "GET"); + + if (response.status >= 400 && response.status < 600) { + throw new Error( + `Error ${response.status} - Failed fetching Vuln Issues snyk data` + ); + } + return response.json(); + } + + async getProjectDetails(orgName: string, projectId: string) { + if (this.isMocked()) { + await new Promise((resolve) => setTimeout(resolve, 500)); + return mockedProjectDetails[projectId]; + } + const backendBaseUrl = await this.getApiUrl(); + const apiUrl = `${backendBaseUrl}/v1/org/${orgName}/project/${projectId}`; + const response = await this.fetch(`${apiUrl}`, "GET", false); + + if (response.status >= 400 && response.status < 600) { + throw new Error( + `Error ${response.status} - Failed fetching ProjectDetails snyk data` + ); + } + return response.json(); + } + + async getOrgSlug(orgId: string) { + if (this.isMocked()) { + await new Promise((resolve) => setTimeout(resolve, 500)); + return "nnillni"; + } + + const backendBaseUrl = await this.getApiUrl(); + const v3Headers = this.headers; + v3Headers["Content-Type"] = "application/vnd.api+json"; + const version = this.getSnykApiVersion(); + const orgsAPIUrl = `${backendBaseUrl}/rest/orgs/${orgId}?version=${version}`; + const response = await this.fetch(`${orgsAPIUrl}`, "GET"); + if (response.status >= 400 && response.status < 600) { + throw new Error(`Error ${response.status} - Failed fetching Org data`); + } + const orgResponseData = await response.json(); + const orgData = orgResponseData.data as OrgData; + return orgData.attributes.slug; + } + + async getCompleteProjectsListFromAnnotations( + orgId: string, + annotations: Record, + ignoreMissingTargets = false + ): Promise { + let completeProjectsList: ProjectsData[] = []; + + if (this.isMocked()) { + completeProjectsList = mockedProjects; + return completeProjectsList; + } + const targetsArray = annotations?.[SNYK_ANNOTATION_TARGETS] + ? annotations?.[SNYK_ANNOTATION_TARGETS].split(",") + : []; + + if (annotations?.[SNYK_ANNOTATION_TARGETNAME]) { + targetsArray.push(annotations?.[SNYK_ANNOTATION_TARGETNAME]); + } else if (annotations?.[SNYK_ANNOTATION_TARGETID]) { + targetsArray.push(annotations?.[SNYK_ANNOTATION_TARGETID]); + } + if (targetsArray.length > 0) { + const fullProjectByTargetList = await this.getProjectsListByTargets( + orgId, + Array.isArray(targetsArray) ? targetsArray : [...targetsArray], + ignoreMissingTargets + ); + completeProjectsList.push(...fullProjectByTargetList); + } + + if (annotations?.[SNYK_ANNOTATION_PROJECTIDS]) { + const fullProjectByIdList = await this.getProjectsListByProjectIds( + orgId, + annotations?.[SNYK_ANNOTATION_PROJECTIDS].split(",") + ); + completeProjectsList.push(...fullProjectByIdList); + } + + if (annotations?.[SNYK_ANNOTATION_EXCLUDE_PROJECTIDS]) { + let idsToExclude = + annotations?.[SNYK_ANNOTATION_EXCLUDE_PROJECTIDS].split(","); + idsToExclude = idsToExclude.filter((id) => + /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/.test( + id + ) + ); + completeProjectsList = completeProjectsList.filter((project) => { + return !idsToExclude.includes(project.id); + }); + } + return completeProjectsList; + } + + async getProjectsListByTargets( + orgId: string, + repoName: string[], + ignoreMissing = false + ): Promise { + const TargetIdsArray: string[] = []; + for (let i = 0; i < repoName.length; i++) { + try { + TargetIdsArray.push( + `target_id=${await this.getTargetId(orgId, repoName[i])}` + ); + } catch (e) { + if (!ignoreMissing) throw e; + } + } + if (TargetIdsArray.length > 0) { + const backendBaseUrl = await this.getApiUrl(); + const v3Headers = this.headers; + v3Headers["Content-Type"] = "application/vnd.api+json"; + const version = this.getSnykApiVersion(); + const projectsForTargetUrl = `${backendBaseUrl}/rest/orgs/${orgId}/projects?${TargetIdsArray.join( + "&" + )}&limit=100&version=${version}`; + const response = await this.fetch(`${projectsForTargetUrl}`, "GET"); + + if (response.status >= 400 && response.status < 600) { + throw new Error( + `Error ${response.status} - Failed fetching Projects list snyk data` + ); + } + const jsonResponse = await response.json(); + return jsonResponse.data as ProjectsData[]; + } else if (!ignoreMissing) { + throw new Error( + `No target IDs found in org ${orgId} for the targets [${repoName.join( + "," + )}].` + ); + } else { + return []; + } + } + + async getProjectsListByProjectIds( + orgId: string, + projectIdsArray: string[] + ): Promise { + if (projectIdsArray.length > 0) { + const backendBaseUrl = await this.getApiUrl(); + const v3Headers = this.headers; + v3Headers["Content-Type"] = "application/vnd.api+json"; + const version = this.getSnykApiVersion(); + const projectsForProjectIds = `${backendBaseUrl}/rest/orgs/${orgId}/projects?ids=${projectIdsArray.join( + "%2C" + )}&limit=100&version=${version}`; + const response = await this.fetch(projectsForProjectIds, "GET"); + + if (response.status >= 400 && response.status < 600) { + throw new Error( + `Error ${response.status} - Failed fetching Projects list snyk data` + ); + } + const jsonResponse = await response.json(); + return jsonResponse.data as ProjectsData[]; + } else { + throw new Error(`Error loading projects by Project IDs.`); + } + } + + private async getTargetId( + orgId: string, + targetIdentifier: string + ): Promise { + if (targetIdentifier === "") { + throw new Error( + `Error - Unable to find repo name. Please add github.com/project-slug or snyk.io/target-id annotation` + ); + } + const backendBaseUrl = await this.getApiUrl(); + const v3Headers = this.headers; + v3Headers["Content-Type"] = "application/vnd.api+json"; + let targetId; + if ( + /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/.test( + targetIdentifier + ) + ) { + targetId = targetIdentifier; + } else { + const version = this.getSnykApiVersion(); + const targetsAPIUrl = `${backendBaseUrl}/rest/orgs/${orgId}/targets?display_name=${encodeURIComponent( + targetIdentifier + )}&version=${version}`; + const targetResponse = await this.fetch(`${targetsAPIUrl}`, "GET"); + if (targetResponse.status >= 400 && targetResponse.status < 600) { + throw new Error( + `Error ${targetResponse.status} - Failed fetching Targets list snyk data` + ); + } + const targetsList = await targetResponse.json(); + const targetsListData = targetsList.data as TargetData[]; + targetId = targetsListData.find((target) => { + return target.attributes.display_name === targetIdentifier; + })?.id; + if (!targetId) { + throw new Error( + `Error - Failed finding Target snyk data for repo ${targetIdentifier}` + ); + } + } + return targetId; + } + + async getDependencyGraph(orgName: string, projectId: string) { + if (this.isMocked()) { + await new Promise((resolve) => setTimeout(resolve, 500)); + return mockedDepGraphs[projectId]; + } + const backendBaseUrl = await this.getApiUrl(); + const apiUrl = `${backendBaseUrl}/v1/org/${orgName}/project/${projectId}/dep-graph`; + const response = await this.fetch(`${apiUrl}`, "GET", false); + + if (response.status >= 400 && response.status < 600) { + throw new Error( + `Error ${response.status} - Failed fetching DepGraph snyk data` + ); + } + const jsonResponse = await response.json(); + return jsonResponse as ProjectsData[]; + } +} diff --git a/src/api/index.ts b/src/api/index.ts index a120f74..6a665ca 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -14,474 +14,4 @@ * limitations under the License. */ -import { - ApiRef, - ConfigApi, - createApiRef, - DiscoveryApi, -} from "@backstage/core-plugin-api"; -import { TargetData } from "../types/targetsTypes"; -import { OrgData } from "../types/orgsTypes"; -import { ProjectsData } from "../types/projectsTypes"; -import { - SNYK_ANNOTATION_TARGETID, - SNYK_ANNOTATION_TARGETNAME, - SNYK_ANNOTATION_TARGETS, - SNYK_ANNOTATION_PROJECTIDS, - SNYK_ANNOTATION_EXCLUDE_PROJECTIDS, - SNYK_ANNOTATION_ORG, - SNYK_ANNOTATION_ORGS, -} from "../config"; -import { mockedProjects } from "../utils/mockedProjects"; -import { mockedIssues } from "../utils/mockedIssues"; -import { Entity } from "@backstage/catalog-model"; -import { mockedDepGraphs } from "../utils/mockedDepGraphs"; -import { mockedProjectDetails } from "../utils/mockedProjectDetails"; -import { IssuesCount } from "../types/types"; -import { Issue } from "../types/unifiedIssuesTypes"; - -const DEFAULT_PROXY_PATH_BASE = ""; - -type Options = { - discoveryApi: DiscoveryApi; - /** - * Path to use for requests via the proxy, defaults to '' - */ - proxyPathBase?: string; - configApi: ConfigApi; -}; -export const snykApiRef: ApiRef = createApiRef({ - id: "plugin.snyk.service", -}); - -export interface SnykApi { - listAllAggregatedIssues(orgName: string, projectId: string): Promise; - - getProjectDetails(orgName: string, projectId: string): Promise; - - getCompleteProjectsListFromAnnotations( - orgId: string, - annotations: Record, - ignoreMissingTargets: boolean - ): Promise; - - getDependencyGraph(orgName: string, projectId: string): Promise; - - getSnykAppHost(): string; - - getSnykApiVersion(): string; - - getSnykIssuesApiVersion(): string; - - getOrgSlug(orgId: string): Promise; - - isMocked(): boolean; - - isAvailableInEntity(entity: Entity): boolean; - - isShowResolvedInGraphs(entity: Entity): boolean; - - getIssuesCount(issues: Array): IssuesCount; - - getIgnoredIssuesCount(issues: Array): IssuesCount; -} - -export class SnykApiClient implements SnykApi { - private readonly discoveryApi: DiscoveryApi; - private readonly proxyPathBase: string; - private readonly configApi: ConfigApi; - - private headers = { - "Content-Type": "application/json", - "User-Agent": "tech-services/backstage-plugin/1.0", - }; - - constructor(options: Options) { - this.discoveryApi = options.discoveryApi; - this.configApi = options.configApi; - this.proxyPathBase = options.proxyPathBase ?? DEFAULT_PROXY_PATH_BASE; - } - - private async getApiUrl() { - const baseUrl = await this.discoveryApi.getBaseUrl("proxy"); - return `${baseUrl}${this.proxyPathBase}/snyk`; - } - - getSnykAppHost() { - const appHost = - this.configApi.getOptionalString("snyk.AppHost") ?? - this.configApi.getOptionalString("snyk.appHost"); - return appHost ?? "app.snyk.io"; - } - - isMocked(): boolean { - return this.configApi.getOptionalBoolean("snyk.mocked") ?? false; - } - - isShowResolvedInGraphs(): boolean { - return ( - this.configApi.getOptionalBoolean("snyk.showResolvedInGraphs") ?? false - ); - } - - getSnykApiVersion(): string { - return ( - this.configApi.getOptionalString("snyk.apiVersion") ?? "2024-02-28" - ); - } - getSnykIssuesApiVersion(): string { - return ( - this.configApi.getOptionalString("snyk.issueApiVersion") ?? "2024-01-23" - ); - } - - isAvailableInEntity(entity: Entity): boolean { - return ( - this.isMocked() || - ((Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_ORG]) || - Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_ORGS])) && - (Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_TARGETNAME]) || - Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_TARGETID]) || - Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_TARGETS]) || - Boolean(entity.metadata.annotations?.[SNYK_ANNOTATION_PROJECTIDS]))) - ); - } - - getIssuesCount = (issues: Array): IssuesCount => { - const criticalSevCount = issues.filter( - (issue) => - issue.attributes.effective_severity_level === "critical" && - !issue.attributes.ignored && - (issue.attributes.status !== "resolved" || - this.isShowResolvedInGraphs()) - ).length; - const highSevCount = issues.filter( - (issue) => - issue.attributes.effective_severity_level === "high" && - !issue.attributes.ignored && - (issue.attributes.status !== "resolved" || - this.isShowResolvedInGraphs()) - ).length; - const mediumSevCount = issues.filter( - (issue) => - issue.attributes.effective_severity_level === "medium" && - !issue.attributes.ignored && - (issue.attributes.status !== "resolved" || - this.isShowResolvedInGraphs()) - ).length; - const lowSevCount = issues.filter( - (issue) => - issue.attributes.effective_severity_level === "low" && - !issue.attributes.ignored && - (issue.attributes.status !== "resolved" || - this.isShowResolvedInGraphs()) - ).length; - - return { - critical: criticalSevCount, - high: highSevCount, - medium: mediumSevCount, - low: lowSevCount, - }; - }; - - getIgnoredIssuesCount = (issues: Array): IssuesCount => { - const criticalSevCount = issues.filter( - (issue) => - issue.attributes.effective_severity_level === "critical" && - issue.attributes.ignored && - (issue.attributes.status !== "resolved" || - this.isShowResolvedInGraphs()) - ).length; - const highSevCount = issues.filter( - (issue) => - issue.attributes.effective_severity_level === "high" && - issue.attributes.ignored && - (issue.attributes.status !== "resolved" || - this.isShowResolvedInGraphs()) - ).length; - const mediumSevCount = issues.filter( - (issue) => - issue.attributes.effective_severity_level === "medium" && - issue.attributes.ignored && - (issue.attributes.status !== "resolved" || - this.isShowResolvedInGraphs()) - ).length; - const lowSevCount = issues.filter( - (issue) => - issue.attributes.effective_severity_level === "low" && - issue.attributes.ignored && - (issue.attributes.status !== "resolved" || - this.isShowResolvedInGraphs()) - ).length; - - return { - critical: criticalSevCount, - high: highSevCount, - medium: mediumSevCount, - low: lowSevCount, - }; - }; - - async listAllAggregatedIssues(orgId: string, projectId: string) { - if (this.isMocked()) { - await new Promise((resolve) => setTimeout(resolve, 500)); - return mockedIssues[projectId]; - } - - const backendBaseUrl = await this.getApiUrl(); - const v3Headers = this.headers; - const version = this.getSnykIssuesApiVersion(); - v3Headers["Content-Type"] = "application/vnd.api+json"; - const apiUrl = `${backendBaseUrl}/rest/orgs/${orgId}/issues?version=${version}&scan_item.id=${projectId}&scan_item.type=project&limit=100`; - const response = await fetch(`${apiUrl}`, { - method: "GET", - headers: v3Headers, - }); - - if (response.status >= 400 && response.status < 600) { - throw new Error( - `Error ${response.status} - Failed fetching Vuln Issues snyk data` - ); - } - const jsonResponse = await response.json(); - return jsonResponse; - } - - async getProjectDetails(orgName: string, projectId: string) { - if (this.isMocked()) { - await new Promise((resolve) => setTimeout(resolve, 500)); - return mockedProjectDetails[projectId]; - } - const backendBaseUrl = await this.getApiUrl(); - const apiUrl = `${backendBaseUrl}/v1/org/${orgName}/project/${projectId}`; - const response = await fetch(`${apiUrl}`, { - headers: this.headers, - }); - - if (response.status >= 400 && response.status < 600) { - throw new Error( - `Error ${response.status} - Failed fetching ProjectDetails snyk data` - ); - } - const jsonResponse = await response.json(); - return jsonResponse; - } - - async getOrgSlug(orgId: string) { - if (this.isMocked()) { - await new Promise((resolve) => setTimeout(resolve, 500)); - return "nnillni"; - } - - const backendBaseUrl = await this.getApiUrl(); - const v3Headers = this.headers; - v3Headers["Content-Type"] = "application/vnd.api+json"; - const version = this.getSnykApiVersion(); - const orgsAPIUrl = `${backendBaseUrl}/rest/orgs/${orgId}?version=${version}`; - const orgResponse = await fetch(`${orgsAPIUrl}`, { - method: "GET", - headers: v3Headers, - }); - if (orgResponse.status >= 400 && orgResponse.status < 600) { - throw new Error(`Error ${orgResponse.status} - Failed fetching Org data`); - } - const orgResponseData = await orgResponse.json(); - const orgData = orgResponseData.data as OrgData; - return orgData.attributes.slug; - } - - async getCompleteProjectsListFromAnnotations( - orgId: string, - annotations: Record, - ignoreMissingTargets = false - ): Promise { - let completeProjectsList: ProjectsData[] = []; - - if (this.isMocked()) { - completeProjectsList = mockedProjects; - return completeProjectsList; - } - const targetsArray = annotations?.[SNYK_ANNOTATION_TARGETS] - ? annotations?.[SNYK_ANNOTATION_TARGETS].split(",") - : []; - - if (annotations?.[SNYK_ANNOTATION_TARGETNAME]) { - targetsArray.push(annotations?.[SNYK_ANNOTATION_TARGETNAME]); - } else if (annotations?.[SNYK_ANNOTATION_TARGETID]) { - targetsArray.push(annotations?.[SNYK_ANNOTATION_TARGETID]); - } - if (targetsArray.length > 0) { - const fullProjectByTargetList = await this.getProjectsListByTargets( - orgId, - Array.isArray(targetsArray) ? targetsArray : [...targetsArray], - ignoreMissingTargets - ); - completeProjectsList.push(...fullProjectByTargetList); - } - - if (annotations?.[SNYK_ANNOTATION_PROJECTIDS]) { - const fullProjectByIdList = await this.getProjectsListByProjectIds( - orgId, - annotations?.[SNYK_ANNOTATION_PROJECTIDS].split(",") - ); - completeProjectsList.push(...fullProjectByIdList); - } - - if (annotations?.[SNYK_ANNOTATION_EXCLUDE_PROJECTIDS]) { - let idsToExclude = - annotations?.[SNYK_ANNOTATION_EXCLUDE_PROJECTIDS].split(","); - idsToExclude = idsToExclude.filter((id) => - /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/.test( - id - ) - ); - completeProjectsList = completeProjectsList.filter((project) => { - return !idsToExclude.includes(project.id); - }); - } - return completeProjectsList; - } - - async getProjectsListByTargets( - orgId: string, - repoName: string[], - ignoreMissing = false - ): Promise { - const TargetIdsArray: string[] = []; - for (let i = 0; i < repoName.length; i++) { - try { - TargetIdsArray.push( - `target_id=${await this.getTargetId(orgId, repoName[i])}` - ); - } catch (e) { - if (!ignoreMissing) throw e; - } - } - if (TargetIdsArray.length > 0) { - const backendBaseUrl = await this.getApiUrl(); - const v3Headers = this.headers; - v3Headers["Content-Type"] = "application/vnd.api+json"; - const version = this.getSnykApiVersion(); - const projectsForTargetUrl = `${backendBaseUrl}/rest/orgs/${orgId}/projects?${TargetIdsArray.join( - "&" - )}&limit=100&version=${version}`; - const response = await fetch(`${projectsForTargetUrl}`, { - method: "GET", - headers: v3Headers, - }); - - if (response.status >= 400 && response.status < 600) { - throw new Error( - `Error ${response.status} - Failed fetching Projects list snyk data` - ); - } - const jsonResponse = await response.json(); - return jsonResponse.data as ProjectsData[]; - } else if (!ignoreMissing) { - throw new Error( - `No target IDs found in org ${orgId} for the targets [${repoName.join( - "," - )}].` - ); - } else { - return []; - } - } - - async getProjectsListByProjectIds( - orgId: string, - projectIdsArray: string[] - ): Promise { - if (projectIdsArray.length > 0) { - const backendBaseUrl = await this.getApiUrl(); - const v3Headers = this.headers; - v3Headers["Content-Type"] = "application/vnd.api+json"; - const version = this.getSnykApiVersion(); - const projectsForProjectIds = `${backendBaseUrl}/rest/orgs/${orgId}/projects?ids=${projectIdsArray.join( - "%2C" - )}&limit=100&version=${version}`; - const response = await fetch(projectsForProjectIds, { - method: "GET", - headers: v3Headers, - }); - - if (response.status >= 400 && response.status < 600) { - throw new Error( - `Error ${response.status} - Failed fetching Projects list snyk data` - ); - } - const jsonResponse = await response.json(); - return jsonResponse.data as ProjectsData[]; - } else { - throw new Error(`Error loading projects by Project IDs.`); - } - } - - private async getTargetId( - orgId: string, - targetIdentifier: string - ): Promise { - if (targetIdentifier === "") { - throw new Error( - `Error - Unable to find repo name. Please add github.com/project-slug or snyk.io/target-id annotation` - ); - } - const backendBaseUrl = await this.getApiUrl(); - const v3Headers = this.headers; - v3Headers["Content-Type"] = "application/vnd.api+json"; - let targetId; - if ( - /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/.test( - targetIdentifier - ) - ) { - targetId = targetIdentifier; - } else { - const version = this.getSnykApiVersion(); - const targetsAPIUrl = `${backendBaseUrl}/rest/orgs/${orgId}/targets?display_name=${encodeURIComponent( - targetIdentifier - )}&version=${version}`; - const targetResponse = await fetch(`${targetsAPIUrl}`, { - method: "GET", - headers: v3Headers, - }); - if (targetResponse.status >= 400 && targetResponse.status < 600) { - throw new Error( - `Error ${targetResponse.status} - Failed fetching Targets list snyk data` - ); - } - const targetsList = await targetResponse.json(); - const targetsListData = targetsList.data as TargetData[]; - targetId = targetsListData.find((target) => { - return target.attributes.display_name === targetIdentifier; - })?.id; - if (!targetId) { - throw new Error( - `Error - Failed finding Target snyk data for repo ${targetIdentifier}` - ); - } - } - return targetId; - } - - async getDependencyGraph(orgName: string, projectId: string) { - if (this.isMocked()) { - await new Promise((resolve) => setTimeout(resolve, 500)); - return mockedDepGraphs[projectId]; - } - const backendBaseUrl = await this.getApiUrl(); - const apiUrl = `${backendBaseUrl}/v1/org/${orgName}/project/${projectId}/dep-graph`; - const response = await fetch(`${apiUrl}`, { - headers: this.headers, - }); - - if (response.status >= 400 && response.status < 600) { - throw new Error( - `Error ${response.status} - Failed fetching DepGraph snyk data` - ); - } - const jsonResponse = await response.json(); - return jsonResponse as ProjectsData[]; - } -} +export * from './SnykApiClient'; diff --git a/src/plugin.ts b/src/plugin.ts index 394546f..6e30ce3 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -14,12 +14,13 @@ * limitations under the License. */ import { - createPlugin, - createApiFactory, - discoveryApiRef, - createRoutableExtension, - createComponentExtension, - configApiRef, + createPlugin, + createApiFactory, + discoveryApiRef, + createRoutableExtension, + createComponentExtension, + configApiRef, + fetchApiRef, } from "@backstage/core-plugin-api"; import { SnykApiClient, snykApiRef } from "./api"; import { entityContentRouteRef } from "./routes"; @@ -29,9 +30,9 @@ export const backstagePluginSnykPlugin: any = createPlugin({ apis: [ createApiFactory({ api: snykApiRef, - deps: { discoveryApi: discoveryApiRef, configApiRef: configApiRef }, - factory: ({ discoveryApi, configApiRef }) => - new SnykApiClient({ discoveryApi, configApi: configApiRef }), + deps: { discoveryApi: discoveryApiRef, configApiRef: configApiRef, fetchApi: fetchApiRef }, + factory: ({ discoveryApi, configApiRef, fetchApi }) => + new SnykApiClient({ discoveryApi, configApi: configApiRef, fetchApi}), }), ], routes: { diff --git a/yarn.lock b/yarn.lock index 979693d..7b8176f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -145,7 +145,7 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== @@ -1367,35 +1367,35 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@backstage/app-defaults@^1.4.7": - version "1.4.7" - resolved "https://registry.yarnpkg.com/@backstage/app-defaults/-/app-defaults-1.4.7.tgz#9ad472a4db7324040cdd42ed3896b7605c6f7ba8" - integrity sha512-C6T0NGT3DN9IGHrnt5Z/YlS0ysPl2YrgSZuZIJDkkW0oJssnCz07aiLEAXddh3SyKC2v+pNY25NbEJlk/eB52A== +"@backstage/app-defaults@^1.5.3": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@backstage/app-defaults/-/app-defaults-1.5.3.tgz#2120c0e96320867c99f49e1e05dc637dc3aab85b" + integrity sha512-AWiffA0v8uAO4L7S27JZBLjI5kxQWoXmYOXO+/K4648nRf/ftaAWFXWJJoW0SaLW0h/4X7AfA177nDsr9bK3Sw== dependencies: - "@backstage/core-app-api" "^1.11.3" - "@backstage/core-components" "^0.13.10" - "@backstage/core-plugin-api" "^1.8.2" - "@backstage/plugin-permission-react" "^0.4.19" - "@backstage/theme" "^0.5.0" + "@backstage/core-app-api" "^1.12.3" + "@backstage/core-components" "^0.14.3" + "@backstage/core-plugin-api" "^1.9.1" + "@backstage/plugin-permission-react" "^0.4.21" + "@backstage/theme" "^0.5.2" "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" -"@backstage/catalog-client@^1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@backstage/catalog-client/-/catalog-client-1.5.2.tgz#f75e14e4e3aa473fc5db47841f531d1833e611e8" - integrity sha512-hWP1Zb2KZ7owSvHdOhP+VB8eSOYbnsXz+l2OdTgMhKQS8ulGZXUW1SzA+N9PZupnQLYmZP2+2DXTpKhSEzQnnQ== +"@backstage/catalog-client@^1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@backstage/catalog-client/-/catalog-client-1.6.3.tgz#ee09bfc685b7721b4bced2d32b53733c4c16ce48" + integrity sha512-yCgc/vi1eVnQ8cFw4+sVuRCWN69aR2LjAqaq+o4Bcq297mAC88qQOp2CdwQvFVoEGhgdfsZ/4SiGjFj+51tYrA== dependencies: - "@backstage/catalog-model" "^1.4.3" - "@backstage/errors" "^1.2.3" + "@backstage/catalog-model" "^1.4.5" + "@backstage/errors" "^1.2.4" cross-fetch "^4.0.0" uri-template "^2.0.0" -"@backstage/catalog-model@^1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@backstage/catalog-model/-/catalog-model-1.4.3.tgz#64abf34071d1cad6372f905b92e1d831e480750c" - integrity sha512-cfbTPWLVma/ZKxRh76aLWqSFozzXMxHoGK+Tn50dOxHHp2xmdcx5jWBtOszNJs560rR7KScD7YnImUPkNn5DWQ== +"@backstage/catalog-model@^1.4.5": + version "1.4.5" + resolved "https://registry.yarnpkg.com/@backstage/catalog-model/-/catalog-model-1.4.5.tgz#b8f6309ff12b72dffdfe852d615c553ae13452c0" + integrity sha512-I4QOCy0pSXJikQWgC8MWj2zDRCgQnnmvnNOOnPFcg7hIIIzeV0sGp6d3Qi7bc2tvzXt3fT3biSOCgGOWi1IJKA== dependencies: - "@backstage/errors" "^1.2.3" + "@backstage/errors" "^1.2.4" "@backstage/types" "^1.1.1" ajv "^8.10.0" lodash "^4.17.21" @@ -1405,33 +1405,33 @@ resolved "https://registry.yarnpkg.com/@backstage/cli-common/-/cli-common-0.1.13.tgz#cbeda6a359ca4437fc782f0ac51bb957e8d49e73" integrity sha512-UMgNAIJSeEPSMkzxiWCP8aFR8APsG21XczDnzwHdL/41F7g2C+KA6UeQc/3tzbe8XQo+PxbNLpReZeKSSnSPSQ== -"@backstage/cli-node@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@backstage/cli-node/-/cli-node-0.2.2.tgz#f7a6062da90a20ce9d1af161ed841fbeb96337b8" - integrity sha512-YsEeT3sAF2sxNXv7IyI/d73TEZnivSBpyiJ4STnVpFi00woN440NeRWZfqaabS1XiuGbQibxJT3xTxORw1tMFA== +"@backstage/cli-node@^0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@backstage/cli-node/-/cli-node-0.2.4.tgz#8706a113427c8bf4a135095624da69ab2fc7ef79" + integrity sha512-fCsWB5XOwD4ogp5tI14tydEPcvL3HPoXjYaUiNPf1owomzjIwbLpJnMXBp2SNDemLH+ZwnyqDj55hN+U36qQnA== dependencies: "@backstage/cli-common" "^0.1.13" - "@backstage/errors" "^1.2.3" + "@backstage/errors" "^1.2.4" "@backstage/types" "^1.1.1" "@manypkg/get-packages" "^1.1.3" "@yarnpkg/parsers" "^3.0.0-rc.4" - fs-extra "10.1.0" + fs-extra "^11.2.0" semver "^7.5.3" zod "^3.22.4" -"@backstage/cli@^0.25.1": - version "0.25.1" - resolved "https://registry.yarnpkg.com/@backstage/cli/-/cli-0.25.1.tgz#463129d48584bcbc6d953c4ed6f089e97d88c320" - integrity sha512-xx3RHnyqmsaEI7b1gzmRh2wz44e4kWKB/22+UP/ySVlhSxqvfepJjq/cX8sAYycdL/CcL0XkmiStjkShZsHg9g== +"@backstage/cli@^0.26.2": + version "0.26.2" + resolved "https://registry.yarnpkg.com/@backstage/cli/-/cli-0.26.2.tgz#2f7a2c98f3eabaec7afa97bc6d415b7984489111" + integrity sha512-deggMWGKZX7Sm1ZG5ykTBSaVmKyCAFbcZp4gNj5AP29JsPkwBaEpNIG38CXNXW5qqhABjaeVKMk1k4lo4y/8Yw== dependencies: - "@backstage/catalog-model" "^1.4.3" + "@backstage/catalog-model" "^1.4.5" "@backstage/cli-common" "^0.1.13" - "@backstage/cli-node" "^0.2.2" - "@backstage/config" "^1.1.1" - "@backstage/config-loader" "^1.6.1" - "@backstage/errors" "^1.2.3" - "@backstage/eslint-plugin" "^0.1.4" - "@backstage/integration" "^1.8.0" + "@backstage/cli-node" "^0.2.4" + "@backstage/config" "^1.2.0" + "@backstage/config-loader" "^1.7.0" + "@backstage/errors" "^1.2.4" + "@backstage/eslint-plugin" "^0.1.6" + "@backstage/integration" "^1.9.1" "@backstage/release-manifests" "^0.0.11" "@backstage/types" "^1.1.1" "@manypkg/get-packages" "^1.1.3" @@ -1444,9 +1444,9 @@ "@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" + "@spotify/eslint-config-base" "^15.0.0" + "@spotify/eslint-config-react" "^15.0.0" + "@spotify/eslint-config-typescript" "^15.0.0" "@sucrase/webpack-loader" "^2.0.0" "@svgr/core" "6.5.x" "@svgr/plugin-jsx" "6.5.x" @@ -1456,7 +1456,7 @@ "@swc/core" "^1.3.46" "@swc/helpers" "^0.5.0" "@swc/jest" "^0.2.22" - "@types/jest" "^29.0.0" + "@types/jest" "^29.5.11" "@types/webpack-env" "^1.15.2" "@typescript-eslint/eslint-plugin" "^6.12.0" "@typescript-eslint/parser" "^6.7.2" @@ -1466,55 +1466,57 @@ buffer "^6.0.3" chalk "^4.0.0" chokidar "^3.3.1" - commander "^9.1.0" + 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.19.0" - esbuild-loader "^2.18.0" + esbuild "^0.20.0" + esbuild-loader "^4.0.0" eslint "^8.6.0" - eslint-config-prettier "^8.3.0" + eslint-config-prettier "^9.0.0" eslint-formatter-friendly "^7.0.0" - eslint-plugin-deprecation "^1.3.2" + 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 "^3.1.1" + eslint-webpack-plugin "^4.0.0" express "^4.17.1" - fork-ts-checker-webpack-plugin "^7.0.0-alpha.8" - fs-extra "10.1.0" - git-url-parse "^13.0.0" + 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.0.2" + 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" + minimatch "^9.0.0" node-fetch "^2.6.7" node-libs-browser "^2.2.1" npm-packlist "^5.0.0" ora "^5.3.0" + p-limit "^3.1.0" + p-queue "^6.6.2" + pirates "^4.0.6" 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 "^4.0.0" + rollup-plugin-dts "^6.1.0" + rollup-plugin-esbuild "^6.1.1" rollup-plugin-postcss "^4.0.0" rollup-pluginutils "^2.8.2" run-script-webpack-plugin "^0.2.0" @@ -1524,7 +1526,6 @@ 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" @@ -1534,48 +1535,47 @@ yn "^4.0.0" zod "^3.22.4" -"@backstage/config-loader@^1.6.1": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@backstage/config-loader/-/config-loader-1.6.1.tgz#bd5bc282cddc3b26dd0346962f814bad5dbe164b" - integrity sha512-wWbM7LGrN559HPzAKMczpv2mv1OXvhtgBMCgFw0jHZx5IrR3bdRZRapFQ8rmZAtj76vSLZv58qZfpOkSR6cWVQ== +"@backstage/config-loader@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@backstage/config-loader/-/config-loader-1.7.0.tgz#98dee1281ef61d7933087d977f66166b1f136ac1" + integrity sha512-NLZzfo3JnFsKJda99wbhY108TeGDcUAtmXE5q1ITdExHf/EZozVBFp0X/AbJOmUTAYWQgl6W6xSiUzY8Li5NIw== dependencies: "@backstage/cli-common" "^0.1.13" - "@backstage/config" "^1.1.1" - "@backstage/errors" "^1.2.3" + "@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 "10.1.0" + 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.62.0" + typescript-json-schema "^0.63.0" yaml "^2.0.0" -"@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== +"@backstage/config@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@backstage/config/-/config-1.2.0.tgz#6a4d93197d0586ee3a40f9e4877c5cfd76c128f3" + integrity sha512-tW8hNzDTClotYmpOrUrutymzZ0Zimx/WeU2+5tLv+ZI8ssRV64KGRe8hi7PuQz2lARVF1DxjwV//Bq2VjR5veA== dependencies: - "@backstage/errors" "^1.2.3" + "@backstage/errors" "^1.2.4" "@backstage/types" "^1.1.1" - lodash "^4.17.21" -"@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== +"@backstage/core-app-api@^1.12.3": + version "1.12.3" + resolved "https://registry.yarnpkg.com/@backstage/core-app-api/-/core-app-api-1.12.3.tgz#f26de4203034edd4401c0b00bbd978f1bb45520a" + integrity sha512-01Cjg9I8axwXSyKOp/eHTRCug9nBc8YJyJ85gJyKgFnXsMbP1mRCgqduurCUOAVy2St0r3kXbf8DAFqCKUfOKQ== dependencies: - "@backstage/config" "^1.1.1" - "@backstage/core-plugin-api" "^1.8.2" + "@backstage/config" "^1.2.0" + "@backstage/core-plugin-api" "^1.9.1" "@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" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" history "^5.0.0" i18next "^22.4.15" lodash "^4.17.21" @@ -1584,23 +1584,23 @@ zen-observable "^0.10.0" zod "^3.22.4" -"@backstage/core-components@^0.13.10": - version "0.13.10" - resolved "https://registry.yarnpkg.com/@backstage/core-components/-/core-components-0.13.10.tgz#f423b56c81cade3df20ec5eccb209f0315320290" - integrity sha512-njqtxt0J4eHBcU+tuZgL0yba8Fhie/OtefVwCx5K6+vPWLGQNMnXzJCX7Q/4iLtwBXoMyP+pk3r90sDja3ZV9Q== +"@backstage/core-components@^0.14.3": + version "0.14.3" + resolved "https://registry.yarnpkg.com/@backstage/core-components/-/core-components-0.14.3.tgz#3de6ebe04d31ef6dc53b127b12d76490c7bba749" + integrity sha512-2NmGRkvyxJtzPnosfus1gIhP6mqFi9UxeBbjsdpKQTemnSDs6mt52MuGrCgKPvxLAzoLIQz0R4ontQWV045nIA== dependencies: - "@backstage/config" "^1.1.1" - "@backstage/core-plugin-api" "^1.8.2" - "@backstage/errors" "^1.2.3" - "@backstage/theme" "^0.5.0" + "@backstage/config" "^1.2.0" + "@backstage/core-plugin-api" "^1.9.1" + "@backstage/errors" "^1.2.4" + "@backstage/theme" "^0.5.2" "@backstage/version-bridge" "^1.0.7" "@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" "^23.0.0" - "@types/react" "^16.13.1 || ^17.0.0" + "@react-hookz/web" "^24.0.0" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" "@types/react-sparklines" "^1.7.0" "@types/react-text-truncate" "^0.14.0" ansi-regex "^6.0.1" @@ -1617,7 +1617,7 @@ rc-progress "3.5.1" react-helmet "6.1.0" react-hook-form "^7.12.2" - react-idle-timer "5.6.2" + react-idle-timer "5.7.2" react-markdown "^8.0.0" react-sparklines "^1.7.0" react-syntax-highlighter "^15.4.5" @@ -1629,123 +1629,125 @@ zen-observable "^0.10.0" zod "^3.22.4" -"@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== +"@backstage/core-plugin-api@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@backstage/core-plugin-api/-/core-plugin-api-1.9.1.tgz#3ad8b7ee247198bb59fcd3b146092e4f9512a5de" + integrity sha512-hV/U08XkgcEgE8YmwfK/onF2V/BlXaq0GxsalNJ5UarQde1XtRLydCg3NJ6oHTqrmzgcLPBAiOzSs+v5Z/SV5A== dependencies: - "@backstage/config" "^1.1.1" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" "@backstage/types" "^1.1.1" "@backstage/version-bridge" "^1.0.7" - "@types/react" "^16.13.1 || ^17.0.0" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" history "^5.0.0" -"@backstage/dev-utils@^1.0.26": - version "1.0.26" - resolved "https://registry.yarnpkg.com/@backstage/dev-utils/-/dev-utils-1.0.26.tgz#b3ca44a6900cd575cc0f2546b10f9865fa436176" - integrity sha512-65/wEzKzQdiBFlCF+RXM7J+wFURmE1Qubbm4AFxLd8PjI7z28HoFb1BJ6janiiGkeBBfGZwO6Shj+wPK4bmFYw== - dependencies: - "@backstage/app-defaults" "^1.4.7" - "@backstage/catalog-model" "^1.4.3" - "@backstage/core-app-api" "^1.11.3" - "@backstage/core-components" "^0.13.10" - "@backstage/core-plugin-api" "^1.8.2" - "@backstage/integration-react" "^1.1.23" - "@backstage/plugin-catalog-react" "^1.9.3" - "@backstage/theme" "^0.5.0" +"@backstage/dev-utils@^1.0.30": + version "1.0.30" + resolved "https://registry.yarnpkg.com/@backstage/dev-utils/-/dev-utils-1.0.30.tgz#3d11bd7999fea004e9e8e164979e6c3aec6998f4" + integrity sha512-vTrBFjDQLeb9B43qblg8t7HGufZKR6LQcIqbVgSfxXcqXEW2+ro9kWxyutqbCT8TchdHs14GwAGuqsX2m/VCOQ== + dependencies: + "@backstage/app-defaults" "^1.5.3" + "@backstage/catalog-model" "^1.4.5" + "@backstage/core-app-api" "^1.12.3" + "@backstage/core-components" "^0.14.3" + "@backstage/core-plugin-api" "^1.9.1" + "@backstage/integration-react" "^1.1.25" + "@backstage/plugin-catalog-react" "^1.11.2" + "@backstage/theme" "^0.5.2" "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" - "@types/react" "^16.13.1 || ^17.0.0" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" react-use "^17.2.4" -"@backstage/errors@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@backstage/errors/-/errors-1.2.3.tgz#6418d3ece63b13d14e32d44ec4db0f8866b0b1c9" - integrity sha512-3YtYRKLNeRaSCzKSikNFoemesacDoEY0UwZAq7lnzCCpiCpSCfg7UA4y7wfjadFFU9Pd6nckUg2BzOk9keL15w== +"@backstage/errors@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@backstage/errors/-/errors-1.2.4.tgz#2ba79c6308e87b0de99edf499e1c82477d3d6e8a" + integrity sha512-JBhKn9KwZTzp/AaOC0vBncKCM1vI9Z8rKKyr9vj3wt3SSgCnDPxNwVz7SlXa2Rc9TOQq0Yk3olkmQE9U+S5uWg== dependencies: "@backstage/types" "^1.1.1" serialize-error "^8.0.1" -"@backstage/eslint-plugin@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@backstage/eslint-plugin/-/eslint-plugin-0.1.4.tgz#7504ed126fbdb97777c94df5072960470ece2949" - integrity sha512-y2Cu6n+vObrIDWM4mk7+JPQ+Hjv1/60qGoonCrScQEFFQal3nyjSeWFm+V+YlXYhyW65KR8J0rUiyAOLbDzahw== +"@backstage/eslint-plugin@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@backstage/eslint-plugin/-/eslint-plugin-0.1.6.tgz#0c431cee35ebbd7b1dd8daddd53f069aad648d86" + integrity sha512-R33lBEuKbT3X1SPPNtXv2iXKesBS064fTj1l3ecrZNyDf7bZybMccShXok12X2VQKARQv9qkQ1zxtGf+m/oG/Q== dependencies: "@manypkg/get-packages" "^1.1.3" - minimatch "^5.1.2" + minimatch "^9.0.0" -"@backstage/frontend-plugin-api@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@backstage/frontend-plugin-api/-/frontend-plugin-api-0.5.0.tgz#47d84b588cc80f1e16201fe40a7e1a783ba75fcc" - integrity sha512-Mbkev6gy1feZTedcj7CMkaR3kdbqpwPsZNHAqDYLHaruVLTc7IBMNZegqulqINHYgjZumk9hweADbblt+quvcQ== +"@backstage/frontend-plugin-api@^0.6.3": + version "0.6.3" + resolved "https://registry.yarnpkg.com/@backstage/frontend-plugin-api/-/frontend-plugin-api-0.6.3.tgz#12a1909fec657eee8a90534fd0b5e3520d719bdb" + integrity sha512-AxfCcfSRp+mGdss2AEZDg84GTsJhfH1goxBpCrAzAZJa4ymvek0lYiDvTDhVVBHx01wMUoka7OWX2YlBd0MJRg== dependencies: - "@backstage/core-components" "^0.13.10" - "@backstage/core-plugin-api" "^1.8.2" + "@backstage/core-components" "^0.14.3" + "@backstage/core-plugin-api" "^1.9.1" "@backstage/types" "^1.1.1" "@backstage/version-bridge" "^1.0.7" "@material-ui/core" "^4.12.4" - "@types/react" "^16.13.1 || ^17.0.0" + "@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-react@^1.1.23": - version "1.1.23" - resolved "https://registry.yarnpkg.com/@backstage/integration-react/-/integration-react-1.1.23.tgz#259bcfcf450ff5fdb6f51604649e976cb3385db4" - integrity sha512-3cFQyWl6mVH6z1cVTJ8aZZdwk4+wsGZkk6smtOpoamSZ7PtodR+V3ZXU/eeb3Sz2GCMUK/r9XWmOnPF1+nuEpw== +"@backstage/integration-react@^1.1.25": + version "1.1.25" + resolved "https://registry.yarnpkg.com/@backstage/integration-react/-/integration-react-1.1.25.tgz#2849e063799b3c2915809ce9785253aefd4dd471" + integrity sha512-WLpAD66mraSOoT2CBXFjFWxIuYAUz/sVVQUYQbnUKHtTOUjILyBcaDhwVRxYPEFjJH2AgKPwTHzxoNpstH60aw== dependencies: - "@backstage/config" "^1.1.1" - "@backstage/core-plugin-api" "^1.8.2" - "@backstage/integration" "^1.8.0" + "@backstage/config" "^1.2.0" + "@backstage/core-plugin-api" "^1.9.1" + "@backstage/integration" "^1.9.1" "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" "@types/react" "^16.13.1 || ^17.0.0" -"@backstage/integration@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@backstage/integration/-/integration-1.8.0.tgz#affc54e1c12c5a4e68a92de4e42c6cf001bdf6ec" - integrity sha512-FCFOubvpKK2dt38sNATrImHrS0pkmvS2LPzvLQ01JzRy5F/QxsdRGxJmzB9irpLOUh7F3/Ilr7cBdG5nYyYVOA== +"@backstage/integration@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@backstage/integration/-/integration-1.9.1.tgz#31d98720383792a2bfd633274da7d1b49f9f49c4" + integrity sha512-/xPtUvJFcdwDGoa0QRQQG8d7CR/zvwzZaPpjcSmi/qhRtjT5lvNvnQte/kYAi5Rl1tvb+vXoKJSdUDtTdAWprw== dependencies: "@azure/identity" "^4.0.0" - "@backstage/config" "^1.1.1" + "@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 "^13.0.0" + git-url-parse "^14.0.0" lodash "^4.17.21" luxon "^3.0.0" -"@backstage/plugin-catalog-common@^1.0.20": - version "1.0.20" - resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.20.tgz#84050135b29b0690aff613b31a427277a2c18169" - integrity sha512-jHMzUBPDqieri/psW1H0ylR57ofzPLLjlSSVbvzLAVc63DDQMWunb6UdjARAGRceeV4ea+shrhlvEx5tdG9eEQ== - dependencies: - "@backstage/catalog-model" "^1.4.3" - "@backstage/plugin-permission-common" "^0.7.12" - "@backstage/plugin-search-common" "^1.2.10" - -"@backstage/plugin-catalog-react@^1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.9.3.tgz#d5910989bc62e1827be00bc4e9650985f2ea338e" - integrity sha512-JeJp4uGiC4gFmCRV8Pk50rzKxAtvKZFuMZ1N7n7t39NtvcmKJemrYKE+5q9RMGi/hRE5+i2D0tqX90JDKlNdVA== - dependencies: - "@backstage/catalog-client" "^1.5.2" - "@backstage/catalog-model" "^1.4.3" - "@backstage/core-components" "^0.13.10" - "@backstage/core-plugin-api" "^1.8.2" - "@backstage/errors" "^1.2.3" - "@backstage/frontend-plugin-api" "^0.5.0" - "@backstage/integration-react" "^1.1.23" - "@backstage/plugin-catalog-common" "^1.0.20" - "@backstage/plugin-permission-common" "^0.7.12" - "@backstage/plugin-permission-react" "^0.4.19" +"@backstage/plugin-catalog-common@^1.0.22": + version "1.0.22" + resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.22.tgz#a5ceb222f89f31b0ade96a32ff875b63067755be" + integrity sha512-8bYlGF3yLALLL8LcOey5BpZhCCu9JRq45bwsAx9sEaEQenf09hVPta3hHANl4+YBHWBB7l/OanqMp0+SkKQDLw== + dependencies: + "@backstage/catalog-model" "^1.4.5" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-search-common" "^1.2.11" + +"@backstage/plugin-catalog-react@^1.11.2": + version "1.11.2" + resolved "https://registry.yarnpkg.com/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.11.2.tgz#93191f382e47d3a415419e73b579327c3628148f" + integrity sha512-8n4/UrAhXoQol8rje/vaHAnYQrtlSxF2QVNenxWYLXZRr65wbWj5aa45UddkrcfaBOef7CNEDBoqRH+osHHCZQ== + dependencies: + "@backstage/catalog-client" "^1.6.3" + "@backstage/catalog-model" "^1.4.5" + "@backstage/core-components" "^0.14.3" + "@backstage/core-plugin-api" "^1.9.1" + "@backstage/errors" "^1.2.4" + "@backstage/frontend-plugin-api" "^0.6.3" + "@backstage/integration-react" "^1.1.25" + "@backstage/plugin-catalog-common" "^1.0.22" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-permission-react" "^0.4.21" "@backstage/types" "^1.1.1" "@backstage/version-bridge" "^1.0.7" "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" "@material-ui/lab" "4.0.0-alpha.61" - "@react-hookz/web" "^23.0.0" - "@types/react" "^16.13.1 || ^17.0.0" + "@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" @@ -1754,35 +1756,35 @@ yaml "^2.0.0" zen-observable "^0.10.0" -"@backstage/plugin-permission-common@^0.7.12": - version "0.7.12" - resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-common/-/plugin-permission-common-0.7.12.tgz#22cae2c00dc801a7147ab2a0e8c286a21a72f62d" - integrity sha512-uddvojjoD6by8oxkFbGTAsFftL2aHvwVNYvLgTr26RWRmtudVGvhM4lZHzZTkednDR8gc73klT8D6HCi72qS4Q== +"@backstage/plugin-permission-common@^0.7.13": + version "0.7.13" + resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-common/-/plugin-permission-common-0.7.13.tgz#ea8509d2a38063309b8726ee6be8b95e1f99e5b9" + integrity sha512-FGC6qrQc96SuovRCWQARDKss7TRenusMX9i0k0Devx/0+h2jM0TYYtuJ52jAFSAx9Db3BRRSlj9M5AQFgjoNmg== dependencies: - "@backstage/config" "^1.1.1" - "@backstage/errors" "^1.2.3" + "@backstage/config" "^1.2.0" + "@backstage/errors" "^1.2.4" "@backstage/types" "^1.1.1" cross-fetch "^4.0.0" - uuid "^8.0.0" + uuid "^9.0.0" zod "^3.22.4" -"@backstage/plugin-permission-react@^0.4.19": - version "0.4.19" - resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-react/-/plugin-permission-react-0.4.19.tgz#29c49d16db3fd4e5065a8bffbb467ffcfa549816" - integrity sha512-Ec/7Mrsdty92HeOv/99ADpsDSQYQWqCJnYPiuY10vLmEWO8J5VoxJVUl5BqN1n2yDg6QrO/JxR63chI5ccm6RQ== +"@backstage/plugin-permission-react@^0.4.21": + version "0.4.21" + resolved "https://registry.yarnpkg.com/@backstage/plugin-permission-react/-/plugin-permission-react-0.4.21.tgz#bbdc098fa8eee7d99093b811884528aefc1b1d2c" + integrity sha512-bW5jxhIGbI7Iijt7DK8P8Kh9PhE18v0YdkDIUkX0OkpT8mCIgkP2IP7TuRfTU+HJhOcJp5YDdCbnDP/8uCyD1Q== dependencies: - "@backstage/config" "^1.1.1" - "@backstage/core-plugin-api" "^1.8.2" - "@backstage/plugin-permission-common" "^0.7.12" - "@types/react" "^16.13.1 || ^17.0.0" + "@backstage/config" "^1.2.0" + "@backstage/core-plugin-api" "^1.9.1" + "@backstage/plugin-permission-common" "^0.7.13" + "@types/react" "^16.13.1 || ^17.0.0 || ^18.0.0" swr "^2.0.0" -"@backstage/plugin-search-common@^1.2.10": - version "1.2.10" - resolved "https://registry.yarnpkg.com/@backstage/plugin-search-common/-/plugin-search-common-1.2.10.tgz#c9a8294e546a124ff1eca50dbb6d04bbb2143e37" - integrity sha512-yn18Beo+oXocDLfbOoCwFd8p8n7veGyDxKN/8rL6EZjMjNL13ZFvUIAOSrhg7wcx/avLKGwpYoFxMde2LxD/cA== +"@backstage/plugin-search-common@^1.2.11": + version "1.2.11" + resolved "https://registry.yarnpkg.com/@backstage/plugin-search-common/-/plugin-search-common-1.2.11.tgz#5563f9b7b5ff915d1fe0e0e213c9536029dac91c" + integrity sha512-b2gmurxNdgY6LQ4E+BzITVUFF5jCewjlkI4/oppFTsk1IH+VfQyRDoGb8u2wuYKGCwvgVPgP3qUBEo25oGTZfg== dependencies: - "@backstage/plugin-permission-common" "^0.7.12" + "@backstage/plugin-permission-common" "^0.7.13" "@backstage/types" "^1.1.1" "@backstage/release-manifests@^0.0.11": @@ -1792,10 +1794,29 @@ dependencies: cross-fetch "^4.0.0" -"@backstage/theme@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@backstage/theme/-/theme-0.5.0.tgz#4a4d0fa7dcf5335628f6c261e8bc82516327578a" - integrity sha512-lqYzmnNtnv0lkO6XOexUW/wzDFZNMg950WjEi6iTNpFn+D4T1XwC4n+CsF5uAMgYiGAoqZRkRYfGsK+xKciENw== +"@backstage/test-utils@^1.5.3": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@backstage/test-utils/-/test-utils-1.5.3.tgz#1f5bfb0eb6420433dcae400e24df214aba23f4a7" + integrity sha512-L/hjmy8l9wUtiPTx8kssMjH0CJzeqy933gKh3P/scct+6X7VJRrdn03t/FQlipaeWkMJzT9PZ5q9MXWtZ8ubow== + dependencies: + "@backstage/config" "^1.2.0" + "@backstage/core-app-api" "^1.12.3" + "@backstage/core-plugin-api" "^1.9.1" + "@backstage/plugin-permission-common" "^0.7.13" + "@backstage/plugin-permission-react" "^0.4.21" + "@backstage/theme" "^0.5.2" + "@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/theme@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@backstage/theme/-/theme-0.5.2.tgz#7908830507a472fca8d6fa8b76362bdb08797bb7" + integrity sha512-9J+mx254+P0lQ0s//sGcdpoUVsr+WpeDYbqnGHIJxmjFGCCg2h7+255JlA+SE3AHCbpr8CYWI7ZseyzF0r9+BQ== dependencies: "@emotion/react" "^11.10.5" "@emotion/styled" "^11.10.5" @@ -1975,341 +1996,231 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== -"@esbuild/aix-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" - integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== - -"@esbuild/android-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" - integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== - -"@esbuild/android-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" - integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== +"@esbuild/aix-ppc64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz#eafa8775019b3650a77e8310ba4dbd17ca7af6d5" + integrity sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA== "@esbuild/android-arm64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz#276c5f99604054d3dbb733577e09adae944baa90" integrity sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ== -"@esbuild/android-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" - integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== - -"@esbuild/android-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" - integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== +"@esbuild/android-arm64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz#68791afa389550736f682c15b963a4f37ec2f5f6" + integrity sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A== "@esbuild/android-arm@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.5.tgz#4a3cbf14758166abaae8ba9c01a80e68342a4eec" integrity sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA== -"@esbuild/android-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" - integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== - -"@esbuild/android-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" - integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== +"@esbuild/android-arm@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.1.tgz#38c91d8ee8d5196f7fbbdf4f0061415dde3a473a" + integrity sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw== "@esbuild/android-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.5.tgz#21a3d11cd4613d2d3c5ccb9e746c254eb9265b0a" integrity sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA== -"@esbuild/darwin-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" - integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== - -"@esbuild/darwin-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" - integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== +"@esbuild/android-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.1.tgz#93f6190ce997b313669c20edbf3645fc6c8d8f22" + integrity sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA== "@esbuild/darwin-arm64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz#714cb839f467d6a67b151ee8255886498e2b9bf6" integrity sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw== -"@esbuild/darwin-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" - integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== - -"@esbuild/darwin-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" - integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== +"@esbuild/darwin-arm64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz#0d391f2e81fda833fe609182cc2fbb65e03a3c46" + integrity sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA== "@esbuild/darwin-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz#2c553e97a6d2b4ae76a884e35e6cbab85a990bbf" integrity sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA== -"@esbuild/freebsd-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" - integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== - -"@esbuild/freebsd-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" - integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== +"@esbuild/darwin-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz#92504077424584684862f483a2242cfde4055ba2" + integrity sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA== "@esbuild/freebsd-arm64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz#d554f556718adb31917a0da24277bf84b6ee87f3" integrity sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ== -"@esbuild/freebsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" - integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== - -"@esbuild/freebsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" - integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== +"@esbuild/freebsd-arm64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz#a1646fa6ba87029c67ac8a102bb34384b9290774" + integrity sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw== "@esbuild/freebsd-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz#288f7358a3bb15d99e73c65c9adaa3dabb497432" integrity sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ== -"@esbuild/linux-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" - integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== - -"@esbuild/linux-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" - integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== +"@esbuild/freebsd-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz#41c9243ab2b3254ea7fb512f71ffdb341562e951" + integrity sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg== "@esbuild/linux-arm64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz#95933ae86325c93cb6b5e8333d22120ecfdc901b" integrity sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA== -"@esbuild/linux-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" - integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== - -"@esbuild/linux-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" - integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== +"@esbuild/linux-arm64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz#f3c1e1269fbc9eedd9591a5bdd32bf707a883156" + integrity sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w== "@esbuild/linux-arm@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz#0acef93aa3e0579e46d33b666627bddb06636664" integrity sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ== -"@esbuild/linux-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" - integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== - -"@esbuild/linux-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" - integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== +"@esbuild/linux-arm@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz#4503ca7001a8ee99589c072801ce9d7540717a21" + integrity sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw== "@esbuild/linux-ia32@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz#b6e5c9e80b42131cbd6b1ddaa48c92835f1ed67f" integrity sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ== -"@esbuild/linux-loong64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" - integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== - -"@esbuild/linux-loong64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" - integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== +"@esbuild/linux-ia32@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz#98c474e3e0cbb5bcbdd8561a6e65d18f5767ce48" + integrity sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw== "@esbuild/linux-loong64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz#e5f0cf95a180158b01ff5f417da796a1c09dfbea" integrity sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw== -"@esbuild/linux-mips64el@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" - integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== - -"@esbuild/linux-mips64el@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" - integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== +"@esbuild/linux-loong64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz#a8097d28d14b9165c725fe58fc438f80decd2f33" + integrity sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA== "@esbuild/linux-mips64el@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz#ae36fb86c7d5f641f3a0c8472e83dcb6ea36a408" integrity sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg== -"@esbuild/linux-ppc64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" - integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== - -"@esbuild/linux-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" - integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== +"@esbuild/linux-mips64el@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz#c44f6f0d7d017c41ad3bb15bfdb69b690656b5ea" + integrity sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA== "@esbuild/linux-ppc64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz#7960cb1666f0340ddd9eef7b26dcea3835d472d0" integrity sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q== -"@esbuild/linux-riscv64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" - integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== - -"@esbuild/linux-riscv64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" - integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== +"@esbuild/linux-ppc64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz#0765a55389a99237b3c84227948c6e47eba96f0d" + integrity sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw== "@esbuild/linux-riscv64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz#32207df26af60a3a9feea1783fc21b9817bade19" integrity sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag== -"@esbuild/linux-s390x@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" - integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== - -"@esbuild/linux-s390x@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" - integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== +"@esbuild/linux-riscv64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz#e4153b032288e3095ddf4c8be07893781b309a7e" + integrity sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg== "@esbuild/linux-s390x@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz#b38d5681db89a3723862dfa792812397b1510a7d" integrity sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw== -"@esbuild/linux-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" - integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== - -"@esbuild/linux-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" - integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== +"@esbuild/linux-s390x@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz#b9ab8af6e4b73b26d63c1c426d7669a5d53eb5a7" + integrity sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ== "@esbuild/linux-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz#46feba2ad041a241379d150f415b472fe3885075" integrity sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A== -"@esbuild/netbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" - integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== - -"@esbuild/netbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" - integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== +"@esbuild/linux-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz#0b25da17ac38c3e11cdd06ca3691d4d6bef2755f" + integrity sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA== "@esbuild/netbsd-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz#3b5c1fb068f26bfc681d31f682adf1bea4ef0702" integrity sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g== -"@esbuild/openbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" - integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== - -"@esbuild/openbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" - integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== +"@esbuild/netbsd-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz#3148e48406cd0d4f7ba1e0bf3f4d77d548c98407" + integrity sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg== "@esbuild/openbsd-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz#ca6830316ca68056c5c88a875f103ad3235e00db" integrity sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA== -"@esbuild/sunos-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" - integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== - -"@esbuild/sunos-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" - integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== +"@esbuild/openbsd-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz#7b73e852986a9750192626d377ac96ac2b749b76" + integrity sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw== "@esbuild/sunos-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz#9efc4eb9539a7be7d5a05ada52ee43cda0d8e2dd" integrity sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg== -"@esbuild/win32-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" - integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== - -"@esbuild/win32-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" - integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== +"@esbuild/sunos-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz#402a441cdac2eee98d8be378c7bc23e00c1861c5" + integrity sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q== "@esbuild/win32-arm64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz#29f8184afa7a02a956ebda4ed638099f4b8ff198" integrity sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg== -"@esbuild/win32-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" - integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== - -"@esbuild/win32-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" - integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== +"@esbuild/win32-arm64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz#36c4e311085806a6a0c5fc54d1ac4d7b27e94d7b" + integrity sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A== "@esbuild/win32-ia32@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz#f3de07afb292ecad651ae4bb8727789de2d95b05" integrity sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw== -"@esbuild/win32-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" - integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== - -"@esbuild/win32-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" - integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== +"@esbuild/win32-ia32@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz#0cf933be3fb9dc58b45d149559fe03e9e22b54fe" + integrity sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw== "@esbuild/win32-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz#faad84c41ba12e3a0acb52571df9bff37bee75f6" integrity sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw== +"@esbuild/win32-x64@0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz#77583b6ea54cee7c1410ebbd54051b6a3fcbd8ba" + integrity sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA== + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -3203,10 +3114,10 @@ resolved "https://registry.yarnpkg.com/@react-hookz/deep-equal/-/deep-equal-1.0.4.tgz#68a71f36cbc88724b3ce6f4036183778b6e7f282" integrity sha512-N56fTrAPUDz/R423pag+n6TXWbvlBZDtTehaGFjK0InmN+V2OFWLE/WmORhmn6Ce7dlwH5+tQN1LJFw3ngTJVg== -"@react-hookz/web@^23.0.0": - version "23.0.1" - resolved "https://registry.yarnpkg.com/@react-hookz/web/-/web-23.0.1.tgz#768f49f8a5ef117738259a307906cb738c2679c8" - integrity sha512-YZR/Zh5un5c7Nfch2iSRdBn91jTiByyzd2HY+HsFX8UQcN+xurfamKKWg9+/cudY9azcH3Y/f6Hi+Rm0m7LhHg== +"@react-hookz/web@^24.0.0": + version "24.0.4" + resolved "https://registry.yarnpkg.com/@react-hookz/web/-/web-24.0.4.tgz#7a13d4c2cc65861b926ef6c4452fba00408c8778" + integrity sha512-DcIM6JiZklDyHF6CRD1FTXzuggAkQ+3Ncq2Wln7Kdih8GV6ZIeN9JfS6ZaQxpQUxan8/4n0J2V/R7nMeiSrb2Q== dependencies: "@react-hookz/deep-equal" "^1.0.4" @@ -3250,7 +3161,7 @@ js-yaml "^4.1.0" tosource "^2.0.0-alpha.3" -"@rollup/pluginutils@^4.1.1", "@rollup/pluginutils@^4.2.1": +"@rollup/pluginutils@^4.2.1": version "4.2.1" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== @@ -3267,7 +3178,7 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/pluginutils@^5.1.0": +"@rollup/pluginutils@^5.0.5", "@rollup/pluginutils@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== @@ -3276,6 +3187,76 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@rollup/rollup-android-arm-eabi@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.1.tgz#88ba199f996e0000689130ed69e47df8b0dfbc70" + integrity sha512-4C4UERETjXpC4WpBXDbkgNVgHyWfG3B/NKY46e7w5H134UDOFqUJKpsLm0UYmuupW+aJmRgeScrDNfvZ5WV80A== + +"@rollup/rollup-android-arm64@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.1.tgz#c89a55670e1179ed7ba3db06cee0d7da7b3d35ce" + integrity sha512-TrTaFJ9pXgfXEiJKQ3yQRelpQFqgRzVR9it8DbeRzG0RX7mKUy0bqhCFsgevwXLJepQKTnLl95TnPGf9T9AMOA== + +"@rollup/rollup-darwin-arm64@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.1.tgz#52e3496fa66d761833df23a9b4860e517efc7d1d" + integrity sha512-fz7jN6ahTI3cKzDO2otQuybts5cyu0feymg0bjvYCBrZQ8tSgE8pc0sSNEuGvifrQJWiwx9F05BowihmLxeQKw== + +"@rollup/rollup-darwin-x64@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.1.tgz#7678922773a8b53d8b4b3c3cc3e77b65fc71b489" + integrity sha512-WTvdz7SLMlJpektdrnWRUN9C0N2qNHwNbWpNo0a3Tod3gb9leX+yrYdCeB7VV36OtoyiPAivl7/xZ3G1z5h20g== + +"@rollup/rollup-linux-arm-gnueabihf@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.1.tgz#69c3b896e3ee1c3487492323a02c2a3ae0d4b2e7" + integrity sha512-dBHQl+7wZzBYcIF6o4k2XkAfwP2ks1mYW2q/Gzv9n39uDcDiAGDqEyml08OdY0BIct0yLSPkDTqn4i6czpBLLw== + +"@rollup/rollup-linux-arm64-gnu@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.1.tgz#13353f0ab65f4add0241f97f7ccc640b3a2b5cf2" + integrity sha512-bur4JOxvYxfrAmocRJIW0SADs3QdEYK6TQ7dTNz6Z4/lySeu3Z1H/+tl0a4qDYv0bCdBpUYM0sYa/X+9ZqgfSQ== + +"@rollup/rollup-linux-arm64-musl@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.1.tgz#bf64eaa29b2b1e6bc9195f04bb30b2a4ffdc25ae" + integrity sha512-ssp77SjcDIUSoUyj7DU7/5iwM4ZEluY+N8umtCT9nBRs3u045t0KkW02LTyHouHDomnMXaXSZcCSr2bdMK63kA== + +"@rollup/rollup-linux-riscv64-gnu@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.1.tgz#ec05966a4ed1b3338c8842108353ac6d3443dc6a" + integrity sha512-Jv1DkIvwEPAb+v25/Unrnnq9BO3F5cbFPT821n3S5litkz+O5NuXuNhqtPx5KtcwOTtaqkTsO+IVzJOsxd11aQ== + +"@rollup/rollup-linux-s390x-gnu@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.13.1.tgz#c10a1f1522f0c9191ee45f677bd08763ddfdc039" + integrity sha512-U564BrhEfaNChdATQaEODtquCC7Ez+8Hxz1h5MAdMYj0AqD0GA9rHCpElajb/sQcaFL6NXmHc5O+7FXpWMa73Q== + +"@rollup/rollup-linux-x64-gnu@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.1.tgz#836f948b6efc53f05f57d1d9ba92e90d629b3f22" + integrity sha512-zGRDulLTeDemR8DFYyFIQ8kMP02xpUsX4IBikc7lwL9PrwR3gWmX2NopqiGlI2ZVWMl15qZeUjumTwpv18N7sQ== + +"@rollup/rollup-linux-x64-musl@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.1.tgz#07e0351cc18eeef026f903189d8312833cb6bd1f" + integrity sha512-VTk/MveyPdMFkYJJPCkYBw07KcTkGU2hLEyqYMsU4NjiOfzoaDTW9PWGRsNwiOA3qI0k/JQPjkl/4FCK1smskQ== + +"@rollup/rollup-win32-arm64-msvc@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.1.tgz#6f9359bbec6cb4a2c002642c63e3704b0b5e68b7" + integrity sha512-L+hX8Dtibb02r/OYCsp4sQQIi3ldZkFI0EUkMTDwRfFykXBPptoz/tuuGqEd3bThBSLRWPR6wsixDSgOx/U3Zw== + +"@rollup/rollup-win32-ia32-msvc@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.1.tgz#d6545a29ac9dd8b39a9161b87924f13471eb992e" + integrity sha512-+dI2jVPfM5A8zme8riEoNC7UKk0Lzc7jCj/U89cQIrOjrZTCWZl/+IXUeRT2rEZ5j25lnSA9G9H1Ob9azaF/KQ== + +"@rollup/rollup-win32-x64-msvc@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.1.tgz#d1b221daca9afca1885b91a311c6f4a04b0deeb5" + integrity sha512-YY1Exxo2viZ/O2dMHuwQvimJ0SqvL+OAWQLLY6rvXavgQKjhQUzn7nc1Dd29gjB5Fqi00nrBWctJBOyfVMIVxw== + "@sentry-internal/tracing@7.56.0": version "7.56.0" resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.56.0.tgz#ba709258f2f0f3d8a36f9740403088b39212b843" @@ -3371,20 +3352,20 @@ semver "^7.0.0" tslib "^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.yarnpkg.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.yarnpkg.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.yarnpkg.com/@spotify/eslint-config-typescript/-/eslint-config-typescript-15.0.0.tgz#b1857a76951df6e2cc4a1e92d98e7fd4f5a4baec" + integrity sha512-70nKh2v6So0MddkEfKj4xgAcqs1VmR0AS2yb62XYetZ1Ep3AmhYDl/5CYtU5pbAQS4zCap8rd/EYdmVEHXiS6g== "@sucrase/webpack-loader@^2.0.0": version "2.0.0" @@ -3786,10 +3767,10 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/eslint@^7.29.0 || ^8.4.1": - version "8.44.7" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.7.tgz#430b3cc96db70c81f405e6a08aebdb13869198f5" - integrity sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ== +"@types/eslint@^8.37.0": + version "8.56.5" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.5.tgz#94b88cab77588fcecdd0771a6d576fa1c0af9d02" + integrity sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -3799,6 +3780,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": version "4.17.35" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" @@ -3877,7 +3863,15 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.0.0", "@types/jest@^29.5.8": +"@types/jest@^29.5.11": + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/jest@^29.5.8": version "29.5.8" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.8.tgz#ed5c256fe2bc7c38b1915ee5ef1ff24a3427e120" integrity sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g== @@ -4053,6 +4047,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^16.13.1 || ^17.0.0 || ^18.0.0": + version "18.2.61" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.61.tgz#5607308495037436779939ec0348a5816c08799d" + integrity sha512-NURTN0qNnJa7O/k4XUkEW2yfygA+NxS0V5h1+kp9jPwhzZy95q3ADoGMP0+JypMhrZBTTgjKAUlTctde1zzeQA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/resolve@1.20.2": version "1.20.2" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" @@ -5453,6 +5456,11 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== +commander@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" + integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -5473,11 +5481,6 @@ commander@^8.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -commander@^9.1.0: - version "9.5.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" - integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== - common-path-prefix@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" @@ -5637,6 +5640,16 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@^8.2.0: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -6002,7 +6015,7 @@ debug@2.6.9, debug@^2.6.0: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -6434,16 +6447,16 @@ es-get-iterator@^1.1.3: isarray "^2.0.5" stop-iteration-iterator "^1.0.0" -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.3.0" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== +es-module-lexer@^1.3.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.0.tgz#4878fee3789ad99e065f975fdd3c645529ff0236" + integrity sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw== + es-set-tostringtag@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" @@ -6474,46 +6487,16 @@ es6-error@^4.1.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -esbuild-loader@^2.18.0: - version "2.21.0" - resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.21.0.tgz#2698a3e565b0db2bb19a3dd91c2b6c9aad526c80" - integrity sha512-k7ijTkCT43YBSZ6+fBCW1Gin7s46RrJ0VQaM8qA7lq7W+OLsGgtLyFV8470FzYi/4TeDexniTBTPTwZUnXXR5g== +esbuild-loader@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-4.0.3.tgz#113568ea94e23ec176dd02d30adb0d461f7504a8" + integrity sha512-YpaSRisj7TSg6maKKKG9OJGGm0BZ7EXeov8J8cXEYdugjlAJ0wL7aj2JactoQvPJ113v2Ar204pdJWrZsAQc8Q== dependencies: - esbuild "^0.16.17" - joycon "^3.0.1" - json5 "^2.2.0" - loader-utils "^2.0.0" - tapable "^2.2.0" + esbuild "^0.19.0" + get-tsconfig "^4.7.0" + loader-utils "^2.0.4" webpack-sources "^1.4.3" -esbuild@^0.16.17: - version "0.16.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" - integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== - optionalDependencies: - "@esbuild/android-arm" "0.16.17" - "@esbuild/android-arm64" "0.16.17" - "@esbuild/android-x64" "0.16.17" - "@esbuild/darwin-arm64" "0.16.17" - "@esbuild/darwin-x64" "0.16.17" - "@esbuild/freebsd-arm64" "0.16.17" - "@esbuild/freebsd-x64" "0.16.17" - "@esbuild/linux-arm" "0.16.17" - "@esbuild/linux-arm64" "0.16.17" - "@esbuild/linux-ia32" "0.16.17" - "@esbuild/linux-loong64" "0.16.17" - "@esbuild/linux-mips64el" "0.16.17" - "@esbuild/linux-ppc64" "0.16.17" - "@esbuild/linux-riscv64" "0.16.17" - "@esbuild/linux-s390x" "0.16.17" - "@esbuild/linux-x64" "0.16.17" - "@esbuild/netbsd-x64" "0.16.17" - "@esbuild/openbsd-x64" "0.16.17" - "@esbuild/sunos-x64" "0.16.17" - "@esbuild/win32-arm64" "0.16.17" - "@esbuild/win32-ia32" "0.16.17" - "@esbuild/win32-x64" "0.16.17" - esbuild@^0.19.0: version "0.19.5" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.5.tgz#53a0e19dfbf61ba6c827d51a80813cf071239a8c" @@ -6542,34 +6525,34 @@ esbuild@^0.19.0: "@esbuild/win32-ia32" "0.19.5" "@esbuild/win32-x64" "0.19.5" -esbuild@~0.19.10: - version "0.19.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" - integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== +esbuild@^0.20.0: + version "0.20.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.1.tgz#1e4cbb380ad1959db7609cb9573ee77257724a3e" + integrity sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA== optionalDependencies: - "@esbuild/aix-ppc64" "0.19.12" - "@esbuild/android-arm" "0.19.12" - "@esbuild/android-arm64" "0.19.12" - "@esbuild/android-x64" "0.19.12" - "@esbuild/darwin-arm64" "0.19.12" - "@esbuild/darwin-x64" "0.19.12" - "@esbuild/freebsd-arm64" "0.19.12" - "@esbuild/freebsd-x64" "0.19.12" - "@esbuild/linux-arm" "0.19.12" - "@esbuild/linux-arm64" "0.19.12" - "@esbuild/linux-ia32" "0.19.12" - "@esbuild/linux-loong64" "0.19.12" - "@esbuild/linux-mips64el" "0.19.12" - "@esbuild/linux-ppc64" "0.19.12" - "@esbuild/linux-riscv64" "0.19.12" - "@esbuild/linux-s390x" "0.19.12" - "@esbuild/linux-x64" "0.19.12" - "@esbuild/netbsd-x64" "0.19.12" - "@esbuild/openbsd-x64" "0.19.12" - "@esbuild/sunos-x64" "0.19.12" - "@esbuild/win32-arm64" "0.19.12" - "@esbuild/win32-ia32" "0.19.12" - "@esbuild/win32-x64" "0.19.12" + "@esbuild/aix-ppc64" "0.20.1" + "@esbuild/android-arm" "0.20.1" + "@esbuild/android-arm64" "0.20.1" + "@esbuild/android-x64" "0.20.1" + "@esbuild/darwin-arm64" "0.20.1" + "@esbuild/darwin-x64" "0.20.1" + "@esbuild/freebsd-arm64" "0.20.1" + "@esbuild/freebsd-x64" "0.20.1" + "@esbuild/linux-arm" "0.20.1" + "@esbuild/linux-arm64" "0.20.1" + "@esbuild/linux-ia32" "0.20.1" + "@esbuild/linux-loong64" "0.20.1" + "@esbuild/linux-mips64el" "0.20.1" + "@esbuild/linux-ppc64" "0.20.1" + "@esbuild/linux-riscv64" "0.20.1" + "@esbuild/linux-s390x" "0.20.1" + "@esbuild/linux-x64" "0.20.1" + "@esbuild/netbsd-x64" "0.20.1" + "@esbuild/openbsd-x64" "0.20.1" + "@esbuild/sunos-x64" "0.20.1" + "@esbuild/win32-arm64" "0.20.1" + "@esbuild/win32-ia32" "0.20.1" + "@esbuild/win32-x64" "0.20.1" escalade@^3.1.1: version "3.1.1" @@ -6625,10 +6608,10 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^8.3.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== +eslint-config-prettier@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-formatter-friendly@^7.0.0: version "7.0.0" @@ -6657,10 +6640,10 @@ eslint-module-utils@^2.7.4: dependencies: debug "^3.2.7" -eslint-plugin-deprecation@^1.3.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-deprecation/-/eslint-plugin-deprecation-1.6.0.tgz#b12d0c5a9baf3bcde0752ff6337703c059a4ae23" - integrity sha512-rld+Vrneh/NXRtDB0vQifOvgUy0HJYoejaxWlVnsk/LK7iij2tCWQIFcCKG4uzQb+Ef86bDke39w1lh4wnon4Q== +eslint-plugin-deprecation@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-deprecation/-/eslint-plugin-deprecation-2.0.0.tgz#9804707a4c19f3a53615c6babc0ced3d429d69cf" + integrity sha512-OAm9Ohzbj11/ZFyICyR5N6LbOIvQMp7ZU2zI7Ej0jIc8kiGUERXPNMfw2QqqHD1ZHtjMub3yPZILovYEYucgoQ== dependencies: "@typescript-eslint/utils" "^6.0.0" tslib "^2.3.1" @@ -6775,13 +6758,13 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== -eslint-webpack-plugin@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c" - integrity sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w== +eslint-webpack-plugin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-4.0.1.tgz#f0f0e9afff2801d8bd41eac88e5409821ecbaccb" + integrity sha512-fUFcXpui/FftGx3NzvWgLZXlLbu+m74sUxGEgxgoxYcUtkIQbS6SdNNZkS99m5ycb23TfoNYrDpp1k/CK5j6Hw== dependencies: - "@types/eslint" "^7.29.0 || ^8.4.1" - jest-worker "^28.0.2" + "@types/eslint" "^8.37.0" + jest-worker "^29.5.0" micromatch "^4.0.5" normalize-path "^3.0.0" schema-utils "^4.0.0" @@ -7200,15 +7183,15 @@ fork-ts-checker-webpack-plugin@^6.5.0: semver "^7.3.2" tapable "^1.0.0" -fork-ts-checker-webpack-plugin@^7.0.0-alpha.8: - version "7.3.0" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.3.0.tgz#a9c984a018493962360d7c7e77a67b44a2d5f3aa" - integrity sha512-IN+XTzusCjR5VgntYFgxbxVx3WraPRnKehBFrf00cMSrtUuW9MsG9dhL6MWpY6MkjC3wVwoujfCDgZZCQwbswA== +fork-ts-checker-webpack-plugin@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.0.2.tgz#c12c590957837eb02b02916902dcf3e675fd2b1e" + integrity sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg== dependencies: "@babel/code-frame" "^7.16.7" chalk "^4.1.2" chokidar "^3.5.3" - cosmiconfig "^7.0.1" + cosmiconfig "^8.2.0" deepmerge "^4.2.2" fs-extra "^10.0.0" memfs "^3.4.1" @@ -7254,7 +7237,7 @@ fromentries@^1.3.1: resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== -fs-extra@10.1.0, fs-extra@^10.0.0: +fs-extra@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -7263,6 +7246,15 @@ fs-extra@10.1.0, fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -7299,7 +7291,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.3: +fsevents@^2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -7379,7 +7371,7 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -get-tsconfig@^4.7.2: +get-tsconfig@^4.7.0, get-tsconfig@^4.7.2: version "4.7.2" resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== @@ -7394,10 +7386,10 @@ git-up@^7.0.0: is-ssh "^1.4.0" parse-url "^8.1.0" -git-url-parse@^13.0.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" - integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== +git-url-parse@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-14.0.0.tgz#18ce834726d5fbca0c25a4555101aa277017418f" + integrity sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ== dependencies: git-up "^7.0.0" @@ -7432,7 +7424,7 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -7929,7 +7921,7 @@ import-cwd@^3.0.0: dependencies: import-from "^3.0.0" -import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -8838,16 +8830,7 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^28.0.2: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" - integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^29.7.0: +jest-worker@^29.5.0, jest-worker@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== @@ -8857,7 +8840,7 @@ jest-worker@^29.7.0: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.0.2: +jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== @@ -8867,11 +8850,6 @@ jest@^29.0.2: import-local "^3.0.2" jest-cli "^29.7.0" -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-cookie@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" @@ -8997,12 +8975,12 @@ json5@^1.0.1, json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.0, json5@^2.2.2, json5@^2.2.3: +json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonc-parser@^3.0.0, jsonc-parser@^3.2.0: +jsonc-parser@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== @@ -9244,7 +9222,7 @@ loader-utils@^1.1.0: emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^2.0.0, loader-utils@^2.0.4: +loader-utils@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== @@ -9449,13 +9427,6 @@ lz-string@^1.5.0: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== -magic-string@^0.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.3: version "0.30.6" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.6.tgz#996e21b42f944e45591a68f0905d6a740a12506c" @@ -9463,6 +9434,13 @@ magic-string@^0.30.3: dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" +magic-string@^0.30.4: + version "0.30.8" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.8.tgz#14e8624246d2bedba70d5462aa99ac9681844613" + integrity sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -10026,7 +10004,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@9.0.3: +minimatch@9.0.3, minimatch@^9.0.0: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== @@ -10040,7 +10018,7 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@^5.1.1, minimatch@^5.1.2: +minimatch@^5.0.1: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== @@ -10735,7 +10713,7 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== -pirates@^4.0.1, pirates@^4.0.4: +pirates@^4.0.1, pirates@^4.0.4, pirates@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== @@ -11336,10 +11314,10 @@ react-hook-form@^7.12.2: resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.45.0.tgz#df2bbc8cee598855a63ba446e0bb06f7c8120ccf" integrity sha512-AbHeZ4ad+0dEIknSW9dBgIwcvRDfZ1O97sgj75WaMdOX0eg8TBiUf9wxzVkIjZbk76BBIE9lmFOzyD4PN80ZQg== -react-idle-timer@5.6.2: - version "5.6.2" - resolved "https://registry.yarnpkg.com/react-idle-timer/-/react-idle-timer-5.6.2.tgz#0342b381ca26ea46e8232dbdc7f2b948bc4ddb0d" - integrity sha512-X7zjDv7duCopQ4v3X2Gun8QunvYplPWkvW2y7suDSREu1vQRQ0mr1ESv325QoJuvSIE5QCSbLaJlrbbooNaUNg== +react-idle-timer@5.7.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/react-idle-timer/-/react-idle-timer-5.7.2.tgz#f506db28a86645dd1b87987116501703e512142b" + integrity sha512-+BaPfc7XEUU5JFkwZCx6fO1bLVK+RBlFH+iY4X34urvIzZiZINP6v2orePx3E6pAztJGE7t4DzvL7if2SL/0GQ== react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" @@ -11644,15 +11622,6 @@ renderkid@^3.0.0: lodash "^4.17.21" strip-ansi "^6.0.1" -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" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -11779,25 +11748,24 @@ 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== +rollup-plugin-dts@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-6.1.0.tgz#56e9c5548dac717213c6a4aa9df523faf04f75ae" + integrity sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw== dependencies: - magic-string "^0.26.6" + magic-string "^0.30.4" optionalDependencies: - "@babel/code-frame" "^7.18.6" + "@babel/code-frame" "^7.22.13" -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== +rollup-plugin-esbuild@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.1.1.tgz#ec1dba647dbe1974f76192c75e907aa6eb636399" + integrity sha512-CehMY9FAqJD5OUaE/Mi1r5z0kNeYxItmRO2zG4Qnv2qWKF09J2lTy5GUzjJR354ZPrLkCj4fiBN41lo8PzBUhw== 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/pluginutils" "^5.0.5" + debug "^4.3.4" + es-module-lexer "^1.3.1" + get-tsconfig "^4.7.2" rollup-plugin-postcss@^4.0.0: version "4.0.2" @@ -11825,11 +11793,27 @@ 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== +rollup@^4.0.0: + version "4.13.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.13.1.tgz#5bd6d84eafd60280487085b8bf9c91679571005a" + integrity sha512-hFi+fU132IvJ2ZuihN56dwgpltpmLZHZWsx27rMCTZ2sYwrqlgL5sECGy1eeV2lAihD8EzChBVVhsXci0wD4Tg== + dependencies: + "@types/estree" "1.0.5" optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.13.1" + "@rollup/rollup-android-arm64" "4.13.1" + "@rollup/rollup-darwin-arm64" "4.13.1" + "@rollup/rollup-darwin-x64" "4.13.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.13.1" + "@rollup/rollup-linux-arm64-gnu" "4.13.1" + "@rollup/rollup-linux-arm64-musl" "4.13.1" + "@rollup/rollup-linux-riscv64-gnu" "4.13.1" + "@rollup/rollup-linux-s390x-gnu" "4.13.1" + "@rollup/rollup-linux-x64-gnu" "4.13.1" + "@rollup/rollup-linux-x64-musl" "4.13.1" + "@rollup/rollup-win32-arm64-msvc" "4.13.1" + "@rollup/rollup-win32-ia32-msvc" "4.13.1" + "@rollup/rollup-win32-x64-msvc" "4.13.1" fsevents "~2.3.2" rtl-css-js@^1.14.0: @@ -12794,16 +12778,6 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" -tsx@^4.0.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.7.0.tgz#1689cfe7dda495ca1f9a66d4cad79cb57b9f6f4a" - integrity sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg== - dependencies: - esbuild "~0.19.10" - get-tsconfig "^4.7.2" - optionalDependencies: - fsevents "~2.3.3" - tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -12865,10 +12839,10 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typescript-json-schema@^0.62.0: - version "0.62.0" - resolved "https://registry.yarnpkg.com/typescript-json-schema/-/typescript-json-schema-0.62.0.tgz#774b06b0c9d86d7f3580ea9136363a6eafae1470" - integrity sha512-qRO6pCgyjKJ230QYdOxDRpdQrBeeino4v5p2rYmSD72Jf4rD3O+cJcROv46sQukm46CLWoeusqvBgKpynEv25g== +typescript-json-schema@^0.63.0: + version "0.63.0" + resolved "https://registry.yarnpkg.com/typescript-json-schema/-/typescript-json-schema-0.63.0.tgz#55ef6c4dde71625425b169d37e0de3d2ea14e093" + integrity sha512-vBfMBq4U/rZ5FIRi7u4o/YAdeRHsSabdGHogUlCPi0cYU0CGvS4Bdu8bSzyUsF+Kf5PTQUGh2TictJuQTDK6eQ== dependencies: "@types/json-schema" "^7.0.9" "@types/node" "^16.9.2" @@ -13122,11 +13096,16 @@ uuid@^3.4.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.0.0, uuid@^8.3.0, uuid@^8.3.2: +uuid@^8.3.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + uvu@^0.5.0: version "0.5.6" resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" @@ -13531,7 +13510,7 @@ yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.1.1, yargs@^17.2.1, yargs@^17.3.1: +yargs@^17.1.1, yargs@^17.3.1: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==